Wikikato minwiktionary https://min.wiktionary.org/wiki/Wikikato:Laman_Utamo MediaWiki 1.47.0-wmf.7 case-sensitive Media Istimewa Rundiang Pangguno Rundiang Pangguno Wikikato Rundiang Wikikato Berkas Rundiang Berkas MediaWiki Rundiang MediaWiki Templat Rundiang Templat Bantuan Rundiang Bantuan Kategori Rundiang Kategori TimedText TimedText talk Modul Rundiang Modul Acara Pembicaraan Acara sipadeh 0 26093 119311 110554 2026-06-19T09:30:57Z Swarabakti 228 /* Bahaso Minangkabau */ 119311 wikitext text/x-wiki [[Berkas:Ginger (Zingiber officinale).jpg|jmpl|sipadeh]] =={{bahasa|min}}== {{kepala|min}} :{{suara|min|LL-Q13324 (min)-Zhilal Darma-sipadeh.wav}} {{-ragam-}} * {{ragam|min|sipodeh|sipode}} {{-n-|min}} # tumbuahan baurek tunggang (umbinyo padeh, dipakai sabagai aromatik, bumbu dapua, atau ubek), badaun lonjoang jo marunciang, bungonyo babulia; ''[[:species:Zingiber officinale|Zingiber officinale]]'' #:''Kalincauan '''sipadeh''' jo bawang putiah bia indak anyia ikan tu.'' {{-terjemahan-}} {{t-atas}} * {{bahasa|id}} : {{t|id|jahe}} * {{bahasa|en}} : {{t|en|ginger}} * {{bahasa|mnw}} : {{t|mnw|လ္ဂဝ်}} {{t-bawah}} g7n0goa76p8nxszdce17cxflsbn4cjj Wikikato:Kadai kopi 4 27494 119316 119236 2026-06-19T10:04:17Z Ardzun 48 119316 wikitext text/x-wiki __NEWSECTIONLINK__ {{untuak|arsip jo kaba teknis|Wikikato:Kadai kopi/Arsip|Wikikato:Kadai kopi/Kaba teknis}} {{Wikikato:Portal komunitas/Kapalo}} [[File:WikiKemah Minang 2018 agenda (3).jpg|500px|center|thumb|Salamaik datang!]] '''Salam!''' Iko adolah laman nan dipagunoan untuak barundiang jo batuka pikiran soal apo sajo ka sasamo pangguno Wikikato Minangkabau. Untuak mamulai rundiang, mulai paragraf baru dan jan lupo tandotangan komentar Sanak jo ampek galombang <nowiki>(~~~~)</nowiki>. '''''Welcome!''' This is a place for discussion among Wikikato Minangkabau users. To start a discussion, please start a paragraph and do not forget to sign your comment with four tiles <nowiki>(~~~~)</nowiki>.'' * '''en:''' Requests for the [[m:bot|bot]] flag should be made on this page. This wiki uses the [[m:bot policy|standard bot policy]], and allows [[m:bot policy#Global_bots|global bots]] and [[m:bot policy#Automatic_approval|automatic approval of certain types of bots]]. Other bots should apply below, and then [[m:Steward requests/Bot status|request access]] from a steward if there is no objection. == Tambah Panguruih Wikikato == Sanak Wikikato! Untuak kamajuan Wikikato iko ka muko, ambo mangusuaan ditambahnyo panguruih. Ambo usua untuak diangkeknyo sanak kito [[Pangguno:Ardzun|Ardzun]]. Sajauah ko dek kasibukan, agak tatingga Wikikato ko. Ambo arokan Uda Juna bisa mampakayo situs awak ko jo aplikasi lainnyo saroman caro panyabuikan kato pakai Lingua Libre jo katatapan lainnyo. Sila Sanak agiah pandapek jo suaro pakai tando tangan di bawah iko. Tarimo kasih banyak jo jari nan sapuluah [[Pangguno:Harditaher|Harditaher]] ([[Rundiang Pangguno:Harditaher|maota]]) 17 Desember 2023 19.44 (WIB) # '''Suai!''' [[Pangguno:Onyaso|Onyaso]] ([[Rundiang Pangguno:Onyaso|maota]]) 18 Desember 2023 10.05 (WIB) # {{setuju}}! [[Pangguno:Bennylin|Bennylin]] ([[Rundiang Pangguno:Bennylin|maota]]) 22 Desember 2023 10.33 (WIB) # {{satuju}} [[Pangguno:David Wadie Fisher-Freberg|dwadieff]] [[Rundiang Pangguno:David Wadie Fisher-Freberg|✉]] 22 Desember 2023 10.40 (WIB) # {{satuju}} [[Pangguno:Zhilal Darma|Zhilal Darma]] ([[Rundiang Pangguno:Zhilal Darma|maota]]) 22 Desember 2023 15.41 (WIB) # '''Ambo sangaik''' {{satuju}} [[Pangguno:Adhmi|Adhmi]] ([[Rundiang Pangguno:Adhmi|maota]]) 23 Desember 2023 19.13 (WIB) # {{satuju}} [[Pangguno:Sathira15|Sathira15]] ([[Rundiang Pangguno:Sathira15|maota]]) 4 Januari 2024 10.52 (WIB) # {{satuju}} [[Pangguno:Rahmatdenas|Rahmatdenas]] ([[Rundiang Pangguno:Rahmatdenas|maota]]) 4 Januari 2024 10.53 (WIB) # {{satuju}} [[Pangguno:Lim Natee|Lim Natee]] ([[Rundiang Pangguno:Lim Natee|maota]]) 4 Januari 2024 10.56 (WIB) # {{satuju}} '''bana'''[[Pangguno: Taufik Hadris|Taufik Hadris]] ([[Rundiang Pangguno:Taufik Hadris|maota]]) 9 Januari 2024 11.44 (WIB) #Setuju [[Pangguno:Mery Nurfa Dilla|Mery Nurfa Dilla]] ([[Rundiang Pangguno:Mery Nurfa Dilla|maota]]) 15 Maret 2024 16.37 (WIB) == <span lang="id" dir="ltr" class="mw-content-ltr">Pemungutan Suara untuk Piagam Komite Pengarah Kode Etik Universal</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting opens|Anda bisa membaca pengumuman berikut dalam bahasa lain di situs Meta-Wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting opens}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Saya ingin memberitahukan kepada Anda bahwa tahap pemungutan suara untuk Piagam [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Komite Pengarah Kode Etik Universal]] (U4C) telah resmi dibuka. Semua anggota komunitas bisa [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter/Voter_information|memberikan suara dan mengirimkan komentar tentang piagam ini melalui SecurePoll]] dari sekarang hingga tanggal '''2 Februari 2024'''. Bagi Anda yang pernah mengikuti proses pemungutan suara selama proses pengembangan [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Pedoman Penegakan UCoC]] akan menemukan kemiripan proses pemungutan untuk kali ini. [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|Versi terkini Piagam U4C]] dan juga terjemahannya sudah tersedia di halaman Meta-Wiki Baca informasi tentang piagam, pilih, dan bagikan pengumuman ini ke kawan-kawan komunitas Anda. Saya ingin menginformasikan bahwa Panitia Persiapan U4C juga mengharapkan keikutsertaan Anda. Atas nama tim proyek UCoC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 20 Januari 2024 01.09 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25853527 --> == <span lang="id" dir="ltr" class="mw-content-ltr">Hari terakhir untuk memberikan suara pada Piagam Komite Pengarah Kode Etik Universal</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting reminder|Anda bisa membaca pengumuman berikut dalam bahasa lain di situs Meta-Wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - voting reminder}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Saya ingin mengingatkan kepada Anda bahwa tahap pemungutan suara untuk Piagam [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Komite Pengarah Kode Etik Universal]] (U4C) akan segera ditutup pada '''2 Februari 2024'''. Semua anggota komunitas dapat [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter/Voter_information|memberikan suara dan mengirimkan komentar tentang piagam ini melalui SecurePoll]]. Bagi Anda yang pernah mengikuti proses pemungutan suara selama proses pengembangan [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Pedoman Penegakan UCoC]] akan menemukan kemiripan proses pemungutan untuk kali ini. [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|Versi terkini Piagam U4C]] dan juga terjemahannya sudah tersedia di halaman Meta-Wiki Baca informasi tentang piagam, pilih, dan bagikan pengumuman ini ke kawan-kawan komunitas Anda. Saya ingin menginformasikan bahwa Panitia Persiapan U4C juga mengharapkan keikutsertaan Anda. Atas nama tim proyek UCoC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 1 Pebruari 2024 00.01 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=25853527 --> == <span lang="id" dir="ltr" class="mw-content-ltr">Hasil pemungutan suara ratifikasi Piagam Komite Pengarah UCoC</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - results|Anda dapat menemukan pesan ini dalam bahasa lain di Meta-Wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:wiki/Universal Code of Conduct/Coordinating Committee/Charter/Announcement - results}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semuanya, Terima kasih atas atensi Anda terhadap perkembangan proses Kode Etik Universal. Bersama pesan ini, saya mengabarkan hasil [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter/Voter_information|pemungutan suara ratifikasi]] [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|Komite Pengarah Kode Etik Universal]]. 1746 kontributor memberikan suara mereka pada pemungutan suara kali ini; 1249 orang mendukung pemberlakuan Piagam sementara 420 menolak. Pada proses ratifikasi ini, para pemilih dapat memberikan komentar mereka tentang isi Piagam. Laporan statistik pemungutan suara dan ringkasan komentar dari seluruh pemilih akan diterbitkan di Meta dalam beberapa pekan ke depan. Anda dapat mendengar lebih lanjut mengenai langkah selanjutnya dalam proses ini segera. Atas nama tim proyek UCoC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 13 Pebruari 2024 01.24 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26160150 --> == <span lang="id" dir="ltr" class="mw-content-ltr"> Laporan pengesahan Piagam U4C dan Pembukaan Pendaftaran Calon U4C kini tersedia</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – call for candidates| Anda dapat menemukan pesan ini dalam bahasa lain di Meta-Wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – call for candidates}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Saya menulis pesan ini kepada Anda hari ini dengan dua informasi penting. Pertama, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter/Vote results|report of the comments from the Universal Code of Conduct Coordinating Committee (U4C) Charter ratification]] kini telah tersedia. Kedua, pendaftaran calon U4C telah dibuka hingga tanggal 1 April 2024. [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) merupakan sebuah komunitas global yang berdedikasi untuk memastikan penerapan UCoC yang adil dan konsisten. Para anggota komunitas diundang untuk mengajukan lamarannya untuk menjadi bagian dari U4C. Untuk informasi lengkap dan tanggung jawab dari U4C, silakan [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]]. Berdasarkan piagam, terdapat 16 kursi untuk posisi U4C yang terdiri atas: delapan kursi dari komunitas umum dan delapan kursi dari komunitas berbasis wilayah untuk memastikan bahwa U4C mewakili keberagaman gerakan. Baca lebih lanjut dan kirimkan lamaran Anda di [[m:Special:MyLanguage/Kode Etik Universal/Komite Pengarah/Pemilihan/2024|Meta-wiki]]. Atas nama tim proyek UCoC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 5 Maret 2024 23.26 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26276337 --> == Tambah Panguruih Wikikato (bagian duo alias diulang) == Sanak Wikikato! Maaf, kalau suaro awak nan patang indak bisa diproses dek alah lamo bana baru ambo proses ka Meta. Dek karanonyo, Mohon sanak untuak maagiah baliak suaronyo untuak sdaro Juna ditambah sabagai panguruih Wikikato. Sila Sanak agiah pandapek jo suaro pakai tando tangan di bawah iko. Kami tunggu sampai tanggal 17 Maret ko yo Sanak! Tarimo kasih banyak. [[Pangguno:Harditaher|Harditaher]] ([[Rundiang Pangguno:Harditaher|maota]]) 10 Maret 2024 15.36 (WIB) # {{satuju}} [[Pangguno:Lim Natee|Lim Natee]] ([[Rundiang Pangguno:Lim Natee|maota]]) 10 Maret 2024 22.58 (WIB) # {{satuju}} [[Pangguno:Onyaso|Onyaso]] ([[Rundiang Pangguno:Onyaso|maota]]) 15 Maret 2024 14.06 (WIB) # {{satuju}} [[Pangguno:Adhmi|Adhmi]] ([[Rundiang Pangguno:Adhmi|maota]]) 15 Maret 2024 14.42 (WIB) # {{Satuju}} [[Pangguno:Zhilal Darma|Zhilal Darma]] ([[Rundiang Pangguno:Zhilal Darma|maota]]) 15 Maret 2024 14.44 (WIB) # {{satuju}} [[Pangguno:Sathira15|Sathira15]] ([[Rundiang Pangguno:Sathira15|maota]]) 15 Maret 2024 14.49 (WIB) # {{Satuju}} [[Pangguno:Fuadi Zikri|Fuadi Zikri]] ([[Rundiang Pangguno:Fuadi Zikri|maota]]) 15 Maret 2024 16.34 (WIB) # {{satuju}} [[Pangguno:Bennylin|Bennylin]] ([[Rundiang Pangguno:Bennylin|maota]]) 1 April 2024 21.43 (WIB) == <span lang="id" dir="ltr" class="mw-content-ltr"> Pemilihan Dewan Pengawas Yayasan Wikimedia 2024</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> : ''[[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Announcement/Selection announcement| Anda bisa membaca terjemahan pesan ini ke bahasa lain di Meta-Wiki.]]'' : ''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Announcement/Selection announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2024/Announcement/Selection announcement}}&language=&action=page&filter= {{int:please-translate}}]</div>'' Halo semua, Tahun ini, periode 4 (empat) tahun jabatan Dewan Pengawas Yayasan Wikimedia untuk kursi perwakilan Komunitas dan Mitra Lokal akan berakhir. [1] Dewan Pengawas mengundang seluruh anggota Gerakan untuk ikut serta dalam proses pemilihan tahun ini serta memberikan suaranya supaya jabatan yang kosong bisa terisi. [[m:Special:MyLanguage/Wikimedia Foundation elections committee|Komite Pemilihan]] akan mengawasi proses pemilihan dengan dukungan dari staf Yayasan Wikimedia. [2] Komite Tata Kelola Dewan telah membuat Kelompok Kerja Pemilihan Dewan Pengawas yang terdiri atas anggota-anggota Dewan Pengawas yang tidak bisa mencalonkan diri pada proses pemilihan Dewan Pengawas yang dipilih oleh komunitas dan mitra lokal tahun 2024. Kelompok kerja tersebut terdiri dari Dariusz Jemielniak, Nataliia Tymkiv, Esra'a Al Shafei, Kathy Collins, dan Shani Evenstein Sigalov. [3] Mereka bertugas untuk mengawasi proses pemilihan 2024 serta memberikan informasi kepada Dewan Pengawas. Untuk informasi lebih lanjut tentang peran Komite Pemilihan, Dewan Pengawas, dan staf, silakan kunjungi pranala pada catatan kaki di bawah ini. [4] Berikut merupakan garis waktu proses pemilihan yang direncanakan: * Mei 2024: Undangan pencalonan dan pengajuan pertanyaan * Juni 2024: Mitra lokal memberikan suara untuk memilih 12 calon teratas Dewan Pengawas (proses pengerucutan calon tidak akan dilakukan jika hanya ada 15 calon atau kurang) [5] * Juni--Agustus 2024: Kampanye * Akhir Agustus/awal September 2024: tahap pemungutan suara komunitas selama dua minggu * Oktober--November 2024: Pemeriksaan latar belakang dari calon terpilih * Rapat Dewan Pengawas pada bulan Desember 2024: anggota Dewan Pengawas baru ditetapkan Silakan pelajari proses pemilihan 2024 lebih mendalam, termasuk rincian lini masa, proses pencalonan, peraturan kampanye, dan syarat kelayakan pemilih pada [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|halaman Meta-Wiki]] dan rencanakan keikutsertaan Anda. '''Sukarelawan Pemilihan''' Cara lain untuk terlibat dalam proses pemilihan 2024 yaitu dengan menjadi Sukarelawan Pemilihan. Sukarelawan Pemilihan akan menjembatani komunikasi antara Komite Pemilihan dan komunitas terkait. Mereka akan membantu untuk memastikan agar komunitas mereka terwakili dan mengajak anggota komunitas untuk ikut serta memberikan suaranya. Pelajari lebih lanjut tentang program ini dan cara bergabung melalui halaman [[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Election Volunteers|Meta Wiki]]. Salam hangat, [[m:Special:MyLanguage/User:Pundit|Dariusz Jemielniak]] (Ketua Komite Tata Kelola, Kelompok Kerja Pemilihan Dewan Pengawas) [1] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2021/Results#Elected [2] https://foundation.wikimedia.org/wiki/Committee:Elections_Committee_Charter [3] https://foundation.wikimedia.org/wiki/Minutes:2023-08-15#Governance_Committee [4] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections_committee/Roles [5] Walaupun jumlah ideal sebanyak 12 calon untuk memperebutkan 4 kursi, proses pengerucutan calon akan dilakukan jika ada lebih dari 15 calon. Sebab, jika hanya 1-3 calon yang dihapus maka akan menimbulkan rasa peliyanan serta memberikan beban kerja bagi organisasi afiliasi dalam proses proses pengerucutan calon karena hanya untuk mengurangi 1-3 calon supaya bisa mendapatkan 12 calon teratas.<section end="announcement-content" /> </div> [[User:MPossoupe_(WMF)|MPossoupe_(WMF)]]13 Maret 2024 02.57 (WIB) <!-- Pesan dikirim oleh Pengguna:MPossoupe (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26349432 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Rancangan Piagam Gerakan Wikimedia akan segera dibagikan</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> Halo semua, Komite Perumus Piagam Gerakan dengan senang hati mengumumkan bahwa rancangan lengkap Piagam Gerakan akan diterbitkan pada tanggal 2 April 2024. Dengan penerbitan rancangan ini, '''masa permohonan pendapat komunitas akan dimulai sampai 22 April 2024'''. [[Movement Charter|'''Piagam Gerakan''']] merupakan dokumen yang menjelaskan peran dan tanggung jawab untuk semua anggota serta entitas dalam Gerakan Wikimedia, termasuk rencana persiapan untuk Dewan Global yang baru untuk tata kelola Gerakan kita. Semua orang yang terlibat di Gerakan Wikimedia kami undang untuk membagikan pendapat mereka terkait dengan versi lengkap dari rancangan Piagam Gerakan tersebut. Ini merupakan kesempatan terakhir bagi semua anggota komunitas Wikimedia untuk bisa memberikan masukan, sebelum rancangan Piagam tersebut diajukan dalam pemungutan suara untuk ratifikasinya pada bulan Juni 2024. '''Bagaimana cara memberikan masukan?''' * Bagikan pesan atau pertanyaan melalui [[Talk:Movement Charter|'''halaman pembicaraan Piagam Gerakan''']]; * Hadir dalam [[Movement Charter/Community Consultation#Upcoming drop-in session|'''sesi pertemuan komunitas''']] pada tanggal '''4''' '''April''' pukul [https://zonestamp.toolforge.org/1712242800 15.00-17.00 UTC]; * Kirim surel ke [mailto:movementcharter@wikimedia.org '''movementcharter@wikimedia.org''']. Silakan baca [[Movement Charter/Drafting Committee/Updates|halaman ini untuk mengetahui informasi terbaru dari Komite Perumus]].<section end="announcement-content" /> </div> Atas nama Komite Perumus Piagam Gerakan,<br> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 25 Maret 2024 19.48 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/Indonesia&oldid=25569967 --> == <span lang="id" dir="ltr" class="mw-content-ltr">Mohon tinjau rancangan lengkap Piagam Gerakan di Meta</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Start of community engagement period 2024-04-02|<span lang="en" dir="ltr" class="mw-content-ltr">You can find this message translated into additional languages on Meta-wiki.</span>]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Start of community engagement period 2024-04-02}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Rancangan lengkap [[m:Special:MyLanguage/Movement Charter|Piagam Gerakan]] sudah diterbitkan di Meta dan menunggu tinjauan Anda. Anda bisa membaca rancangan tersebut dalam bahasa Indonesia. '''Mengapa saya perlu peduli dengan Piagam Gerakan?''' Piagam Gerakan merupakan dokumen yang penting dalam menerapkan rekomendasi Strategi 2030. Dengan ikut serta dalam diskusi terkait Piagam ini, maka bisa dipastikan bahwa pendapat yang Anda ajukan bisa didengar serta Anda terlibat dalam pembentukan masa depan Gerakan kita. '''Permohonan pendapat komunitas: 2 April hingga 30 April 2024''' Komite Perumus Piagam Gerakan (MCDC) mengundang semua anggota komunitas Wikimedia untuk memberikan masukan mengenai rancangan lengkap Piagam Gerakan. Beri masukan dalam bahasa yang Anda kuasai supaya orang lain mengetahuinya melalui [[m:Special:MyLanguage/Talk:Movement Charter|halaman pembicaraan Piagam Gerakan]], menghadiri [[m:Special:MyLanguage/Movement Charter/Community Consultation#Upcoming drop-in session|sesi acara komunitas]], atau dengan mengirimkan surel ke [mailto:movementcharter@wikimedia.org movementcharter@wikimedia.org]. Silakan baca [[m:Special:MyLanguage/Movement Charter/Drafting Committee/Updates|halaman ini]] untuk mengetahui informasi terbaru dari Komite Perumus. Terima kasih! Atas nama Komite Perumus Piagam Gerakan,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 3 April 2024 20.10 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Movement_Strategy_and_Governance/Delivery/Indonesia&oldid=25569967 --> == <span lang="id" dir="ltr" class="mw-content-ltr">Berikan suara Anda dalam pemilihan anggota U4C yang pertama</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens|Anda dapat menemukan pesan ini dalam bahasa lain di Meta-Wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – vote opens}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Saya ingin menginformasikan bahwa masa pemilihan untuk Komite Pengarah Kode Etik Universal (U4C) telah dibuka saat ini sampai tanggal 9 Mei 2024. Silakan baca informasi pada [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|halaman pemilihan di Meta Wiki]] untuk mempelajari tentang pemilihan ini serta syarat kelayakan pemilih. Komite Pengarah Kode Etik Universal (U4C) merupakan sebuah komite global yang berdedikasi untuk memastikan penerapan UCoC yang adil dan konsisten. Para anggota komunitas Wikimedia diundang untuk mengajukan pencalonan dan menjadi bagian dari U4C. Untuk informasi lengkap dan tanggung jawab dari U4C, silakan [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|tinjau Piagam U4C]]. Mohon bagikan pesan ini kepada anggota komunitas Anda, sehingga mereka juga dapat ikut serta dalam pemilihan kali ini. Atas nama tim proyek UCoC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 26 April 2024 03.21 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == Tambah Panguruih Wikikato (bagian tigo alias diulang) == Sanak Wikikato! Maaf pulo baliak, kalau suaro awak nan patang masih indak bisa diproses dek namo Uda Juna indak tasabuik jaleh samo diparaluan kato satuju dari Uda Juna surang. Dek karanonyo, Mohon sanak untuak maagiah baliak suaronyo untuak dunsanak awak [[Pangguno:Ardzun|Ardzun]] ditambah sabagai panguruih Wikikato. Sila Sanak agiah pandapek jo suaro pakai tando tangan di bawah iko. Kami tunggu sampai tanggal 20 Mai ko yo Sanak! Tarimo kasih banyak. [[Pangguno:Harditaher|Harditaher]] ([[Rundiang Pangguno:Harditaher|maota]]) 5 Mai 2024 07.01 (WIB) ===Kato satuju dari calon [[Pangguno:Ardzun|Ardzun]]=== :Tarimo kasih ateh dukuangan jo kapicayoannyo dari Sanak sakalian ka diri Ambo. Lai Ambo {{satuju}} [[Pangguno:Ardzun|Ardzun]] ([[Rundiang Pangguno:Ardzun|maota]]) 5 Mai 2024 07.12 (WIB) ===Pandapek komunitas=== #{{satuju}} [[Pangguno:Boesenbergia|Boesenbergia]] ([[Rundiang Pangguno:Boesenbergia|maota]]) 5 Mai 2024 09.12 (WIB) #{{satuju}} '''100%!''' [[Pangguno:Naval Scene|Naval Scene]] ([[Rundiang Pangguno:Naval Scene|maota]]) 5 Mai 2024 10.14 (WIB) #{{satuju}} '''Bana''' [[Pangguno:Sathira15|Sathira15]] ([[Rundiang Pangguno:Sathira15|maota]]) 5 Mai 2024 10.57 (WIB) #{{satuju}} [[Pangguno:Mrifqis713|Mrifqis713]] ([[Rundiang Pangguno:Mrifqis713|maota]]) 5 Mai 2024 11.15 (WIB) #{{satuju}} [[Pangguno:Arcuscloud|Arcuscloud]] ([[Rundiang Pangguno:Arcuscloud|maota]]) 5 Mai 2024 11.39 (WIB) #{{satuju}} [[Pangguno:Lim Natee|Lim Natee]] ([[Rundiang Pangguno:Lim Natee|maota]]) 5 Mai 2024 12.20 (WIB) #{{satuju}} [[Pangguno:Mery Nurfa Dilla|Mery Nurfa Dilla]] ([[Rundiang Pangguno:Mery Nurfa Dilla|maota]]) 5 Mai 2024 15.03 (WIB) #{{satuju}} [[Pangguno:Rahmatdenas|Rahmatdenas]] ([[Rundiang Pangguno:Rahmatdenas|maota]]) 5 Mai 2024 15.45 (WIB) #{{satuju}} [[Pangguno:Taufik Hadris|Taufik Hadris]] ([[Rundiang Pangguno:Taufik Hadris|maota]]) #{{satuju}} [[Pangguno:Zhilal Darma|Zhilal Darma]] ([[Rundiang Pangguno:Zhilal Darma|maota]]) 5 Mai 2024 17.22 (WIB) #{{satuju}} [[Pangguno:DinaMardiati|DinaMardiati]] ([[Rundiang Pangguno:DinaMardiati|maota]]) #{{satuju}} [[Pangguno:Onyaso|Onyaso]] ([[Rundiang Pangguno:Onyaso|maota]]) 6 Mai 2024 09.13 (WIB) #{{satuju}} [[Pangguno:Adhmi|Adhmi]] ([[Rundiang Pangguno:Adhmi|maota]]) 6 Mai 2024 10.07 (WIB) == <span lang="en" dir="ltr" class="mw-content-ltr">Sign up for the language community meeting on May 31st, 16:00 UTC</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="message"/>Hello all, The next language community meeting is scheduled in a few weeks - May 31st at 16:00 UTC. If you're interested, you can [https://www.mediawiki.org/w/index.php?title=Wikimedia_Language_engineering/Community_meetings#31_May_2024 sign up on this wiki page]. This is a participant-driven meeting, where we share language-specific updates related to various projects, collectively discuss technical issues related to language wikis, and work together to find possible solutions. For example, in the last meeting, the topics included the machine translation service (MinT) and the languages and models it currently supports, localization efforts from the Kiwix team, and technical challenges with numerical sorting in files used on Bengali Wikisource. Do you have any ideas for topics to share technical updates related to your project? Any problems that you would like to bring for discussion during the meeting? Do you need interpretation support from English to another language? Please reach out to me at ssethi(__AT__)wikimedia.org and [[etherpad:p/language-community-meeting-may-2024|add agenda items to the document here]]. We look forward to your participation! <section end="message"/> </div> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 15 Mai 2024 04.23 (WIB) <!-- Pesan dikirim oleh Pengguna:SSethi (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == <span lang="id" dir="ltr" class="mw-content-ltr"> Permintaan umpan balik mengenai Prosedur Siklus Hidup Proyek Saudari</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle/Invitation for feedback (MM)|Anda dapat membaca pesan ini yang telah diterjemahkan ke dalam bahasa-bahasa lain di Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle/Invitation for feedback (MM)}}&language=&action=page&filter= {{int:please-translate}}]'' [[File:Sibling Project Lifecycle Conversation 3.png|150px|right|link=:m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle]] Anggota komunitas yang terhormat, [[:m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee|Komite Hubungan Komunitas]] (''Community Affairs Committee''; CAC) dari [[:m:Special:MyLanguage/Wikimedia Foundation Board of Trustees|Dewan Pengawas Wikimedia Foundation]] mengajak Anda untuk memberikan umpan balik terhadap draf '''[[:m:Special:MyLanguage/Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle|Prosedur Siklus Hidup Proyek Saudari]]'''. Draf ini menguraikan langkah-langkah yang ditawarkan dan persyaratan untuk meluncurkan dan menutup Proyek-proyek Saudari Wikimedia, dan untuk memastikan setiap proyek yang baru disetujui dapat berjalan dengan baik. Hal ini terlepas dari tata cara pembukaan atau penutupan versi-versi bahasa proyek, yang ditangani oleh [[:m:Special:MyLanguage/Language committee|Komite Bahasa]] atau [[m:Special:MyLanguage/Closing_projects_policy|kebijakan penutupan proyek]]. Anda dapat menemukan informasi lengkapnya di [[:m:Special:MyLanguage/Talk:Wikimedia Foundation Community Affairs Committee/Procedure for Sibling Project Lifecycle#Review|halaman ini]], termasuk tata cara menyampaikan tanggapan Anda mulai hari ini hingga '''23 Juni 2024''', di mana pun di seluruh dunia. Anda dapat membagikan informasi mengenai hal ini kepada komunitas proyek yang berminat untuk bekerja sama dengan Anda. Anda juga dapat membantu kami menerjemahkan prosedur ini ke dalam berbagai bahasa, sehingga orang-orang dapat bergabung dalam diskusi dalam bahasa mereka. Atas nama CAC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 22 Mai 2024 09.26 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == <span lang="id" dir="ltr" class="mw-content-ltr">Mengumumkan Komite Koordinasi Kode Etik Universal pertama</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – results|Pesan ini telah diterjemahkan ke berbagai bahasa di Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024/Announcement – results}}&language=&action=page&filter= {{int:please-translate}}]'' Halo, Tim pengawas telah selesai meninjau hasil pemungutan suara. Kami sedang menindaklanjuti hasil pemilihan [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024|Komite Koordinasi Kode Etik Universal (U4C)]] yang pertama. Melalui pengumuman ini, kami dengan bangga menyampaikan nama-nama berikut ini sebagai anggota regional U4C, dan akan bertugas selama dua tahun: * Amerika Utara (Amerika Serikat dan Kanada) ** – * Eropa Utara dan Eropa Barat ** [[m:Special:MyLanguage/User:Ghilt|Ghilt]] * Amerika Latin dan Kepulauan Karibia ** – * Eropa Tengah dan Eropa Timur (CEE) ** — * Afrika Sub-Sahara ** – * Timur Tengah dan Afrika Utara ** [[m:Special:MyLanguage/User:Ibrahim.ID|Ibrahim.ID]] * Asia Timur, Asia Tenggara, dan Pasifik (ESEAP) ** [[m:Special:MyLanguage/User:0xDeadbeef|0xDeadbeef]] * Asia Selatan ** – Para individu berikut ini telah terpilih sebagai anggota U4C untuk masa tugas satu tahun: * [[m:Special:MyLanguage/User:Barkeep49|Barkeep49]] * [[m:Special:MyLanguage/User:Superpes15|Superpes15]] * [[m:Special:MyLanguage/User:Civvì|Civvì]] * [[m:Special:MyLanguage/User:Luke081515|Luke081515]] * – * – * – * – Kepada semua orang yang telah berpartisipasi dalam proses ini, kami ucapkan terima kasih dan penghargaan yang setinggi-tingginya kepada para kandidat atas segala kontribusi dan dedikasi Anda kepada gerakan dan komunitas Wikimedia. Selanjutnya, U4C akan segera mengadakan pertemuan dan menyusun agenda untuk tahun 2024-25, tepatnya dalam empat minggu ke depan, guna menyukseskan pelaksanaan dan peninjauan ulang UCoC dan Pedoman Penegakan. Pantau kegiatan mereka di [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Meta-wiki]]. Mewakili tim proyek UCoC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 3 Juni 2024 15.15 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == <span lang="id" dir="ltr" class="mw-content-ltr">Naskah akhir Piagam Gerakan Wikimedia sudah tersedia di Meta.</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Final draft available|Anda dapat membaca pesan ini dalam bahasa lain di situs Meta.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Final draft available}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Naskah akhir [[m:Special:MyLanguage/Movement Charter|Piagam Gerakan Wikimedia]] sudah tersedia dalam 20 bahasa dan Anda bisa membacanya di Meta. '''Apa itu Piagam Gerakan Wikimedia?''' Piagam Gerakan Wikimedia merupakan dokumen yang diajukan untuk menjabarkan peran dan tanggung jawab untuk seluruh anggota dan entitas yang ada di Gerakan Wikimedia, termasuk pendirian badan baru untuk tata kelola gerakan yang disebut Dewan Global. '''Mari bergabung ke dalam "Acara Peluncuran" Piagam Gerakan Wikimedia''' Silakan bergabung ke dalam [[m:Special:MyLanguage/Event:Movement Charter Launch Party|"Acara Peluncuran"]] pada pukul '''14.00=15.00 UTC'' ([https://zonestamp.toolforge.org/1718892000 waktu setempat Anda]), tanggal '''20 Juni 2024'''. Selama acara ini, kami akan merayakan peluncuran versi akhir Piagam ini serta menjelaskan isi yang terkandung di dalamnya. Mari bergabung dan pelajari Piagam ini sebelum Anda memberikan suara Anda. '''Pemungutan suara ratifikasi Piagam Gerakan''' Pemungutan Suara akan dimulai pada pukul '''00:01 UTC''', '''25 Juni 2024''' dan akan berakhir pada pukul '''23:59 UTC''', '''9 Juli 2024''' melalui SecurePoll. Silakan baca informasi lebih lanjut mengenai [[m:Special:MyLanguage/Movement Charter/Ratification/Voting|proses pemungutan suara, syarat kelayakan, dan juga hal lainnya]] pada halaman Meta. Jika Anda memiliki pertanyaan, silakan ajukan dalam [[m:Special:MyLanguage/Talk:Movement Charter|halaman pembicaraan di Meta]] atau kirimkan surel ke tim Komite Perumus Piagam Gerakan (MCDC) melalui [mailto:mcdc@wikimedia.org mcdc@wikimedia.org]. Atas nama Komite Perumus Piagam Gerakan,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 11 Juni 2024 15.45 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26390244 --> == <span lang="id" dir="ltr" class="mw-content-ltr">Pemungutan suara untuk ratifikasi Piagam Gerakan Wikimedia sekarang sudah dibuka. Mari, berikan suara Anda!</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Ratification vote opens|Anda dapat membaca pesan ini dalam bahasa lain di situs Meta.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Ratification vote opens}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Saat ini, pemungutan suara untuk ratifikasi [[m:Special:MyLanguage/Movement Charter|'''Piagam Gerakan Wikimedia''']] sudah dibuka. Piagam Gerakan Wikimedia merupakan dokumen untuk menjabarkan peran dan tanggung jawab untuk seluruh anggota dan entitas yang ada di Gerakan Wikimedia, termasuk pendirian badan baru untuk tata kelola gerakan yang disebut Dewan Global. Versi akhir Piagam Gerakan Wikimedia juga tersedia dalam [[m:Special:MyLanguage/Movement Charter|berbagai bahasa di Meta]]. Anda juga bisa membacanya dalam [https://commons.wikimedia.org/wiki/File:Wikimedia_Movement_Charter_(June_2024).pdf versi PDF]. Pemungutan suara dimulai pada pukul '''00:01 UTC''', '''25 Juni 2024''' dan akan berakhir pada pukul '''23:59 UTC''', '''9 Juli 2024''' melalui SecurePoll. Silakan baca informasi lebih lanjut tentang [[m:Special:MyLanguage/Movement Charter/Ratification/Voting|informasi pemilih dan syarat kelayakan]]. Setelah membaca Piagam ini, silakan [[Special:SecurePoll/vote/398|'''berikan suara Anda di sini''']] dan sebarkan informasi ini ke orang lain. Jika Anda memiliki pertanyaan tentang proses pemungutan suara, silakan hubungi Panitia Pemungutan Suara untuk Piagam Gerakan (CEC) melalui [mailto:cec@wikimedia.org '''cec@wikimedia.org''']. Atas nama CEC,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 25 Juni 2024 17.52 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == <span lang="id" dir="ltr" class="mw-content-ltr">Pemungutan suara untuk ratifikasi Piagam Gerakan Wikimedia akan segera berakhir</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Final reminder|Anda dapat membaca pesan ini dalam bahasa lain di situs Meta.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Final reminder}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Pesan ini merupakan pengingat bahwa masa pemungutan suara untuk ratifikasi [[m:Special:MyLanguage/Movement Charter|Piagam Gerakan Wikimedia]] akan ditutup pada pukul '''23:59 UTC, 9 Juli 2024'''. Jika Anda belum memberikan suara, mohon lakukan segera melalui [[m:Special:SecurePoll/vote/398|SecurePoll]]. Atas nama [[m:Special:MyLanguage/Movement_Charter/Ratification/Voting#Electoral_Commission|Panitia Pemungutan Suara untuk Piagam Gerakan]],<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 8 Juli 2024 10.46 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == <span lang="en" dir="ltr" class="mw-content-ltr">U4C Special Election - Call for Candidates</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – call for candidates|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – call for candidates}}&language=&action=page&filter= {{int:please-translate}}]'' Hello all, A special election has been called to fill additional vacancies on the U4C. The call for candidates phase is open from now through July 19, 2024. The [[:m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the [[:foundation:Wikimedia Foundation Universal Code of Conduct|UCoC]]. Community members are invited to submit their applications in the special election for the U4C. For more information and the responsibilities of the U4C, please review the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|U4C Charter]]. In this special election, according to [[Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter#2. Elections and Terms|chapter 2 of the U4C charter]], there are 9 seats available on the U4C: '''four''' community-at-large seats and '''five''' regional seats to ensure the U4C represents the diversity of the movement. [[Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter#5. Glossary|No more than two members of the U4C can be elected from the same home wiki]]. Therefore, candidates must not have English Wikipedia, German Wikipedia, or Italian Wikipedia as their home wiki. Read more and submit your application on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election|Meta-wiki]]. In cooperation with the U4C,<section end="announcement-content" /> </div> -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 10 Juli 2024 07.03 (WIB) <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == <span lang="id" dir="ltr" class="mw-content-ltr">Hasil ratifikasi Piagam Gerakan Wikimedia</span> == <div lang="id" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Movement Charter/Drafting Committee/Announcement - Results of the ratification vote|Anda dapat menemukan pesan ini dalam bahasa lain di Meta-Wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Movement Charter/Drafting Committee/Announcement - Results of the ratification vote}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Menyusul proses penghitungan suara individu dan organisasi mitra lokal Wikimedia, [[m:Special:MyLanguage/Movement Charter/Ratification/Voting#Electoral Commission|Panitia Pemungutan Suara]] dengan ini mengumumkan hasil pemungutan suara ratifikasi Piagam Gerakan Wikimedia. Sebagaimana yang [[m:Special:MyLanguage/Talk:Movement Charter#Thank you for your participation in the Movement Charter ratification vote!|telah diumumkan]] oleh Panitia sebelumnya, pemungutan suara ini mencapai kuorum sah untuk proses pemungutan suara individu maupun organisasi mitra lokal pada saat ditutup pada tanggal '''9 Juli''' pukul '''23:59 UTC'''. Kami mengucapkan terima kasih sebesar-besarnya kepada 2.451 pemilih individu dan 129 perwakilan organisasi mitra lokal Wikimedia yang telah memberikan suaranya. Suara dan komentar Anda amat berharga untuk menentukan masa depan Strategi Gerakan. Hasil akhir dari pemungutan suara ratifikasi [[m:Special:MyLanguage/Movement Charter|Piagam Gerakan Wikimedia]] yang diselenggarakan antara tanggal 25 Juni hingga 9 Juli 2024 adalah sebagai berikut: '''Pemungutan suara individu:''' Dari 2.451 suara yang diterima sebelum pukul 23:59 UTC tanggal 9 Juli, 2.446 suara dinyatakan sah. Tercatat '''1.710''' suara "ya"; '''623''' suara "tidak"; dan '''113''' suara memilih "-" (netral). Oleh karena suara netral tidak dihitung, 73.30% pemilih memberikan suara untuk mendukung ratifikasi Piagam (1710/2333), sedangkan 26.70% memilih untuk menolak ratifikasi piagam (623/2333). '''Pemungutan suara organisasi mitra lokal:''' Dari 129 perwakilan organisasi mitra lokal yang memberikan suara sebelum pukul 23:59 UTC tanggal 9 Juli, 129 suara dinyatakan sah. Tercatat '''93''' suara "ya"; '''18''' suara "tidak"; dan '''18''' suara memilih "-" (netral). Oleh karena suara netral tidak dihitung, 83.78% organisasi mitra lokal memberikan suara untuk mendukung ratifikasi Piagam (93/111), sedangkan 16.22% memilih untuk menolak ratifikasi Piagam (18/111). '''Dewan Pengawas Yayasan Wikimedia:''' Dewan Pengawas Yayasan Wikimedia telah memutuskan untuk '''tidak meratifikasi''' Piagam Gerakan pada rapat khusus tanggal 8 Juli 2024. Ketua Dewan Pengawas Nataliia Tymkiv [[m:Special:MyLanguage/Wikimedia_Foundation_Board_noticeboard/Board_resolution_and_vote_on_the_proposed_Movement_Charter|membagikan hasil, resolusi dan catatan rapat tersebut]], beserta langkah selanjutnya yang akan diambil. Dengan ini, naskah Piagam Gerakan Wikimedia dalam bentuk saat ini '''tidak berhasil diratifikasi'''. Kami mengucapkan terima kasih atas partisipasi Anda dalam momen yang penting ini dalam riwayat tata kelola gerakan Wikimedia. Panitia Pemungutan Suara untuk Piagam Gerakan, [[m:User:Abhinav619|Abhinav619]], [[m:User:Borschts|Borschts]], [[m:User:Iwuala Lucy|Iwuala Lucy]], [[m:User:Tochiprecious|Tochiprecious]], [[m:User:Der-Wir-Ing|Der-Wir-Ing]]<section end="announcement-content" /> </div> [[Pangguno:MediaWiki message delivery|MediaWiki message delivery]] ([[Rundiang Pangguno:MediaWiki message delivery|maota]]) 19 Juli 2024 00.53 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Vote now to fill vacancies of the first U4C</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – voting opens|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – voting opens}}&language=&action=page&filter= {{int:please-translate}}]'' Dear all, I am writing to you to let you know the voting period for the Universal Code of Conduct Coordinating Committee (U4C) is open now through '''August 10, 2024'''. Read the information on the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election|voting page on Meta-wiki]] to learn more about voting and voter eligibility. The Universal Code of Conduct Coordinating Committee (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community members were invited to submit their applications for the U4C. For more information and the responsibilities of the U4C, please [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]]. Please share this message with members of your community so they can participate as well. In cooperation with the U4C,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 27 Juli 2024 09.47 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=26989444 --> == <span lang="en" dir="ltr" class="mw-content-ltr">Reminder! Vote closing soon to fill vacancies of the first U4C</span> == <div lang="en" dir="ltr" class="mw-content-ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – reminder to vote|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement – reminder to vote}}&language=&action=page&filter= {{int:please-translate}}]'' Dear all, The voting period for the Universal Code of Conduct Coordinating Committee (U4C) is closing soon. It is open through 10 August 2024. Read the information on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2024_Special_Election#Voting|the voting page on Meta-wiki to learn more about voting and voter eligibility]]. If you are eligible to vote and have not voted in this special election, it is important that you vote now. '''Why should you vote?''' The U4C is a global group dedicated to providing an equitable and consistent implementation of the UCoC. Community input into the committee membership is critical to the success of the UCoC. Please share this message with members of your community so they can participate as well. In cooperation with the U4C,<section end="announcement-content" /> </div> -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 6 Agustus 2024 22.31 (WIB) <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == <span lang="id" dir="ltr">Segera hadir: Fitur sub-referensi baru – cobalah!</span> == <div lang="id" dir="ltr"> <section begin="Sub-referencing"/> [[File:Sub-referencing reuse visual.png|{{#ifeq:{{#dir}}|ltr|right|left}}|400px]] Halo. Selama bertahun-tahun, anggota komunitas telah meminta cara mudah untuk menggunakan kembali referensi dengan detail yang berbeda. Kini, solusi MediaWiki akan hadir: Fitur sub-referensi baru akan berfungsi untuk wikitext dan Visual Editor dan akan menyempurnakan sistem referensi yang ada. Anda dapat terus menggunakan cara referensi yang berbeda, tetapi Anda mungkin akan menemukan sub-referensi dalam artikel yang ditulis oleh pengguna lain. Informasi selengkapnya di [[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing|halaman proyek]]. <span lang="en" dir="ltr" class="mw-content-ltr">'''We want your feedback''' to make sure this feature works well for you:</span> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/WMDE Technical Wishes/Sub-referencing#Test|Please try]] the current state of development on beta wiki and [[m:Talk:WMDE Technical Wishes/Sub-referencing|let us know what you think]].</span> * <span lang="en" dir="ltr" class="mw-content-ltr">[[m:WMDE Technical Wishes/Sub-referencing/Sign-up|Sign up here]] to get updates and/or invites to participate in user research activities.</span> <span lang="en" dir="ltr" class="mw-content-ltr">[[m:Special:MyLanguage/Wikimedia Deutschland|Wikimedia Deutschland]]’s [[m:Special:MyLanguage/WMDE Technical Wishes|Technical Wishes]] team is planning to bring this feature to Wikimedia wikis later this year. We will reach out to creators/maintainers of tools and templates related to references beforehand.</span> <span lang="en" dir="ltr" class="mw-content-ltr">Please help us spread the message.</span> --[[m:User:Johannes Richter (WMDE)|Johannes Richter (WMDE)]] ([[m:User talk:Johannes Richter (WMDE)|talk]]) 10:36, 19 August 2024 (UTC) <section end="Sub-referencing"/> </div> <!-- Pesan dikirim oleh Pengguna:Johannes Richter (WMDE)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Johannes_Richter_(WMDE)/Sub-referencing/massmessage_list&oldid=27309345 --> == Sign up for the language community meeting on August 30th, 15:00 UTC == Hi all, The next language community meeting is scheduled in a few weeks—on August 30th at 15:00 UTC. If you're interested in joining, you can [https://www.mediawiki.org/wiki/Wikimedia_Language_and_Product_Localization/Community_meetings#30_August_2024 sign up on this wiki page]. This participant-driven meeting will focus on sharing language-specific updates related to various projects, discussing technical issues related to language wikis, and working together to find possible solutions. For example, in the last meeting, topics included the Language Converter, the state of language research, updates on the Incubator conversations, and technical challenges around external links not working with special characters on Bengali sites. Do you have any ideas for topics to share technical updates or discuss challenges? Please add agenda items to the document [https://etherpad.wikimedia.org/p/language-community-meeting-aug-2024 here] and reach out to ssethi(__AT__)wikimedia.org. We look forward to your participation! [[Pangguno:MediaWiki message delivery|MediaWiki message delivery]] ([[Rundiang Pangguno:MediaWiki message delivery|maota]]) 23 Agustus 2024 06.20 (WIB) <!-- Pesan dikirim oleh Pengguna:SSethi (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == <span lang="en" dir="ltr">Announcing the Universal Code of Conduct Coordinating Committee</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> :''[https://lists.wikimedia.org/hyperkitty/list/board-elections@lists.wikimedia.org/thread/OKCCN2CANIH2K7DXJOL2GPVDFWL27R7C/ Original message at wikimedia-l]. [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement - results|You can find this message translated into additional languages on Meta-wiki.]] [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Announcement - results}}&language=&action=page&filter= {{int:please-translate}}]'' Hello all, The scrutineers have finished reviewing the vote and the [[m:Special:MyLanguage/Elections Committee|Elections Committee]] have certified the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election/Results|results]] for the [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2024 Special Election|Universal Code of Conduct Coordinating Committee (U4C) special election]]. I am pleased to announce the following individual as regional members of the U4C, who will fulfill a term until 15 June 2026: * North America (USA and Canada) ** Ajraddatz The following seats were not filled during this special election: * Latin America and Caribbean * Central and East Europe (CEE) * Sub-Saharan Africa * South Asia * The four remaining Community-At-Large seats Thank you again to everyone who participated in this process and much appreciation to the candidates for your leadership and dedication to the Wikimedia movement and community. Over the next few weeks, the U4C will begin meeting and planning the 2024-25 year in supporting the implementation and review of the UCoC and Enforcement Guidelines. You can follow their work on [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Meta-Wiki]]. On behalf of the U4C and the Elections Committee,<section end="announcement-content" /> </div> [[m:User:RamzyM (WMF)|RamzyM (WMF)]] 2 September 2024 21.07 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == <span lang="id" dir="ltr">Berikan suara Anda: Ikuti pemilihan Dewan Pengawas 2024!</span> == <div lang="id" dir="ltr"> <section begin="announcement-content" /> Halo semua, Masa pemungutan suara untuk [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|pemilihan Dewan Pengawas 2024]] sekarang sudah dimulai. Saat ini ada dua belas (12) calon yang akan memperebutkan empat (4) kursi Dewan Pengawas. Silakan pelajari [[m:Special:MyLanguage/Wikimedia Foundation elections/2024/Candidates|pernyataan para calon]] dan [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2024/Questions_for_candidates|jawaban mereka untuk pertanyaan komunitas]]. Kalau sudah siap, silakan berikan suara Anda melalui [[Special:SecurePoll/vote/400|SecurePoll]]. '''Pemungutan suara akan dimulai dari pukul 00:00 UTC, 3 September hingga 23:59 UTC, 17 September 2024. Jangan lupa, periksa kelayakan Anda melalui [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2024/Voter_eligibility_guidelines|halaman kelayakan pemilih]]. Salam hangat, Komite Pemilihan dan Kelompok Kerja Pemilihan Dewan<section end="announcement-content" /> </div> [[Pangguno:MediaWiki message delivery|MediaWiki message delivery]] ([[Rundiang Pangguno:MediaWiki message delivery|maota]]) 3 September 2024 19.15 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == 'Wikidata item' link is moving. Find out where... == <div lang="en" dir="ltr" class="mw-content-ltr"><i>Apologies for cross-posting in English. Please consider translating this message.</i>{{tracked|T66315}} Hello everyone, a small change will soon be coming to the user-interface of your Wikimedia project. The [[d:Q16222597|Wikidata item]] [[w:|sitelink]] currently found under the <span style="color: #54595d;"><u>''General''</u></span> section of the '''Tools''' sidebar menu will move into the <span style="color: #54595d;"><u>''In Other Projects''</u></span> section. We would like the Wiki communities feedback so please let us know or ask questions on the [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Discussion page]] before we enable the change which can take place October 4 2024, circa 15:00 UTC+2. More information can be found on [[m:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|the project page]].<br><br>We welcome your feedback and questions.<br> [[Pangguno:MediaWiki message delivery|MediaWiki message delivery]] ([[Rundiang Pangguno:MediaWiki message delivery|maota]]) 28 September 2024 01.58 (WIB) </div> <!-- Pesan dikirim oleh Pengguna:Danny Benjafield (WMDE)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=27524260 --> == <span lang="id" dir="ltr">Hasil awal pemilihan Dewan Pengawas Yayasan Wikimedia 2024</span> == <div lang="id" dir="ltr"> <section begin="announcement-content" /> Halo semua, Terima kasih kepada semua pihak yang telah ikut serta dalam proses [[m:Special:MyLanguage/Wikimedia Foundation elections/2024|pemilihan Dewan Pengawas Yayasan Wikimedia 2024]]. Hampir 6000 anggota komunitas dari 180 proyek wiki sudah ikut serta dalam pemilihan kali ini. Empat calon berikut mendapatkan jumlah suara tertinggi: # [[User:Kritzolina|Christel Steigenberger]] # [[User:Nadzik|Maciej Artur Nadzikiewicz]] # [[User:Victoria|Victoria Doronina]] # [[User:Laurentius|Lorenzo Losa]] Walaupun data di atas diurutkan berdasarkan hasil pemilihan, tetapi para calon tetap harus diangkat oleh Dewan Pengawas. Mereka perlu lolos dari proses pengecekan latar belakang dan juga memenuhi persyaratan yang dijabarkan dalam Anggaran Rumah Tangga. Dewan Pengawas yang baru akan diangkat saat rapat dewan pada bulan Desember 2024. [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2024/Results|Silakan baca hasil lengkap pemilihan kali ini melalui situs Meta-Wiki.]] Salam hangat, Komite Pemilihan dan Kelompok Kerja Pemilihan Dewan <section end="announcement-content" /> </div> [[User:MPossoupe_(WMF)|MPossoupe_(WMF)]] 14 Oktober 2024 15.27 (WIB) <!-- Pesan dikirim oleh Pengguna:MPossoupe (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27183190 --> == <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Each year, typically from October through December, several of the movement’s committees seek new volunteers. Read more about the committees on their Meta-wiki pages: * [[m:Special:MyLanguage/Affiliations_Committee|Affiliations Committee (AffCom)]] * [[m:Special:MyLanguage/Ombuds_commission|Ombuds commission (OC)]] * [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]] Applications for the committees open on 16 October 2024. Applications for the Affiliations Committee close on 18 November 2024, and applications for the Ombuds commission and the Case Review Committee close on 2 December 2024. Learn how to apply by [[m:Special:MyLanguage/Wikimedia_Foundation/Legal/Committee_appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email [mailto:cst@wikimedia.org cst@wikimedia.org] with any questions you may have. For the Committee Support team, <section end="announcement-content" /> </div> -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 17 Oktober 2024 06.09 (WIB) <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27601062 --> == 'Wikidata item' link is moving, finally. == Hello everyone, I previously wrote on the 27th September to advise that the ''Wikidata item'' sitelink will change places in the sidebar menu, moving from the '''General''' section into the '''In Other Projects''' section. The scheduled rollout date of 04.10.2024 was delayed due to a necessary request for Mobile/MinervaNeue skin. I am happy to inform that the global rollout can now proceed and will occur later today, 22.10.2024 at 15:00 UTC-2. [[m:Talk:Wikidata_For_Wikimedia_Projects/Projects/Move_Wikidata_item_link|Please let us know]] if you notice any problems or bugs after this change. There should be no need for null-edits or purging cache for the changes to occur. Kind regards, -[[m:User:Danny Benjafield (WMDE)|Danny Benjafield (WMDE)]] 22 Oktober 2024 18.30 (WIB) <!-- Pesan dikirim oleh Pengguna:Danny Benjafield (WMDE)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Danny_Benjafield_(WMDE)/MassMessage_Test_List&oldid=27535421 --> == Sign up for the language community meeting on November 29th, 16:00 UTC == Hello everyone, The next language community meeting is coming up next week, on November 29th, at 16:00 UTC (Zonestamp! For your timezone <https://zonestamp.toolforge.org/1732896000>). If you're interested in joining, you can sign up on this wiki page: <https://www.mediawiki.org/wiki/Wikimedia_Language_and_Product_Localization/Community_meetings#29_November_2024>. This participant-driven meeting will be organized by the Wikimedia Foundation’s Language Product Localization team and the Language Diversity Hub. There will be presentations on topics like developing language keyboards, the creation of the Moore Wikipedia, and the language support track at Wiki Indaba. We will also have members from the Wayuunaiki community joining us to share their experiences with the Incubator and as a new community within our movement. This meeting will have a Spanish interpretation. Looking forward to seeing you at the language community meeting! Cheers, [[User:SSethi (WMF)|Srishti]] 22 Nopember 2024 02.55 (WIB) <!-- Pesan dikirim oleh Pengguna:SSethi (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27746256 --> == Universal Code of Conduct annual review: provide your comments on the UCoC and Enforcement Guidelines == <div lang="en" dir="ltr" class="mw-content-ltr"> My apologies for writing in English. {{Int:Please-translate}}. I am writing to you to let you know the annual review period for the Universal Code of Conduct and Enforcement Guidelines is open now. You can make suggestions for changes through 3 February 2025. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]]. The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 24 Januari 2025 08.12 (WIB) </div> <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=27746256 --> == Reminder: first part of the annual UCoC review closes soon == <div lang="en" dir="ltr" class="mw-content-ltr"> My apologies for writing in English. {{Int:Please-translate}}. This is a reminder that the first phase of the annual review period for the Universal Code of Conduct and Enforcement Guidelines will be closing soon. You can make suggestions for changes through [[d:Q614092|the end of day]], 3 February 2025. This is the first step of several to be taken for the annual review. [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find a conversation to join on the UCoC page on Meta]]. After review of the feedback, proposals for updated text will be published on Meta in March for another round of community review. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 3 Pebruari 2025 07.49 (WIB) </div> <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28198931 --> == <span lang="en" dir="ltr">Migration to Parsoid</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Hello everyone! I am glad to inform you that as the next step in the [[mw:Special:MyLanguage/Parsoid/Parser Unification|Parser Unification]] project, Parsoid will soon be turned on as the default article renderer on your Wiktionary. We are gradually increasing the number of wikis using Parsoid, with the intention of making it the default wikitext parser for MediaWiki's next long-term support release. This will make our wikis more reliable and consistent for editors, readers, and tools to use, as well as making the development of future wikitext features easier. If this transition disrupts your workflow, don’t worry! You can still opt out through a user preference or turn Parsoid off on the current page using the Tools submenu, as described in the [[mw:Special:MyLanguage/Help:Extension:ParserMigration|Extension:ParserMigration]] documentation. There is [[mw:Special:MyLanguage/Parsoid/Parser_Unification/Confidence_Framework|more information about our roll-out strategy]] available, including the testing done before we turn on Parsoid for a new wiki. To report bugs and issues, please look at our [[mw:Special:MyLanguage/Parsoid/Parser Unification/Known Issues|known issues]] documentation and if you found a new bug please create a phab ticket and tag the [[phab:project/view/5846|Content Transform Team in Phabricator]]. <section end="announcement-content" /> </div> <em>[[m:Special:MyLanguage/Wikimedia Foundation/Product and Technology/Parsoid Read Views/Wiktionary Announcement|{{MediaWiki:Please-translate}}]]</em> <bdi lang="en" dir="ltr">[[mw:User:ABreault (WMF)|Content Transform Team]]</bdi> 20 Pebruari 2025 04.51 (WIB) <!-- Pesan dikirim oleh Pengguna:ABreault (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Wikimedia_Foundation/Product_and_Technology/Parsoid_Read_Views/2025-02-20_Wiktionaries&oldid=28286944 --> == <span lang="id" dir="ltr"> Pertemuan Komunitas Bahasa (28 Februari, 14.00 UTC) dan Nawala Mendatang</span> == <div lang="id" dir="ltr"> <section begin="message"/> Halo, semuanya! [[File:WP20Symbols WIKI INCUBATOR.svg|right|frameless|150x150px|alt=Sebuah gambar yang menggambarkan berbagai bahasa]] Kami gembira mengumumkan bahwa '''Pertemuan Komunitas Bahasa''' mendatang akan diselenggarakan pada '''28 Februari pukul 14.00 UTC'''! Jika ingin bergabung, cukup mendaftar '''[[mw:Wikimedia_Language_and_Product_Localization/Community_meetings#28_February_2025|di halaman wiki]]'''. Ini merupakan pertemuan yang berbasis peserta tempat kita berbagi informasi terbaru mengenai proyek-proyek yang berhubungan dengan bahasa, mendiskusikan tantangan teknis dalam wiki yang berhubungan dengan bahasa, dan bekerja sama dalam mencari solusi. Pada pertemuan terakhir yang lalu, kami membahas topik-topik seperti pengembangan papan ketik bahasa, pembuatan Wikipedia Moore, dan berita terbaru dari jalur dukungan bahasa di Wiki Indaba. '''Ada topik yang ingin disampaikan?''' Baik itu kabar terbaru teknis dari proyek Anda, tantangan yang perlu dibantu, atau permintaan bantuan penjurubahasaan, kami ingin mendengarnya dari Anda! Jangan ragu untuk '''menanggapi pesan ini''' atau menambahkan topik ke dalam dokumen '''[[etherpad:p/language-community-meeting-feb-2025|di sini]]'''. Kami juga ingin menyampaikan bahwa nawala Bahasa & Internasionalisasi edisi keenam (Januari 2025) tersedia di sini: [[:mw:Special:MyLanguage/Wikimedia Language and Product Localization/Newsletter/2025/January|Wikimedia Language and Product Localization/Newsletter/2025/January]]. Nawala ini menyajikan informasi terbaru dari kuartal Oktober–Desember 2024 tentang pengembangan fitur baru, peningkatan berbagai proyek teknis terkait bahasa dan upaya dukungan, informasi mengenai pertemuan komunitas, dan ide untuk berkontribusi ke dalam proyek tersebut. Untuk mendapatkan informasi terbaru, Anda dapat berlangganan nawalanya di halaman wiki: [[:mw:Wikimedia Language and Product Localization/Newsletter|Wikimedia Language and Product Localization/Newsletter]]. Sampai jumpa di pertemuan komunitas bahasa berikutnya. Kami tunggu ide dan partisipasi Anda! <section end="message"/> </div> <bdi lang="en" dir="ltr">[[User:MediaWiki message delivery|MediaWiki message delivery]]</bdi> 22 Pebruari 2025 15.30 (WIB) <!-- Pesan dikirim oleh Pengguna:SSethi (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28217779 --> == Universal Code of Conduct annual review: proposed changes are available for comment == <div lang="en" dir="ltr" class="mw-content-ltr"> My apologies for writing in English. {{Int:Please-translate}}. I am writing to you to let you know that [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|proposed changes]] to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct (UCoC) Enforcement Guidelines]] and [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|Universal Code of Conduct Coordinating Committee (U4C) Charter]] are open for review. '''[[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/Proposed_Changes|You can provide feedback on suggested changes]]''' through the [[d:Q614092|end of day]] on Tuesday, 18 March 2025. This is the second step in the annual review process, the final step will be community voting on the proposed changes. [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review|Read more information and find relevant links about the process on the UCoC annual review page on Meta]]. The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] (U4C) is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|you may review the U4C Charter]]. Please share this information with other members in your community wherever else might be appropriate. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] 8 Maret 2025 01.52 (WIB) </div> <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28307738 --> == Final proposed modifications to the Universal Code of Conduct Enforcement Guidelines and U4C Charter now posted == <div lang="en" dir="ltr" class="mw-content-ltr"> The proposed modifications to the [[foundation:Special:MyLanguage/Policy:Universal_Code_of_Conduct/Enforcement_guidelines|Universal Code of Conduct Enforcement Guidelines]] and the U4C Charter [[m:Universal_Code_of_Conduct/Annual_review/2025/Proposed_Changes|are now on Meta-wiki for community notice]] in advance of the voting period. This final draft was developed from the previous two rounds of community review. Community members will be able to vote on these modifications starting on 17 April 2025. The vote will close on 1 May 2025, and results will be announced no later than 12 May 2025. The U4C election period, starting with a call for candidates, will open immediately following the announcement of the review results. More information will be posted on [[m:Special:MyLanguage//Universal_Code_of_Conduct/Coordinating_Committee/Election|the wiki page for the election]] soon. Please be advised that this process will require more messages to be sent here over the next two months. The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]]. Please share this message with members of your community so they can participate as well. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 4 April 2025 09.05 (WIB) </div> <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 --> == Vote now on the revised UCoC Enforcement Guidelines and U4C Charter == <div lang="en" dir="ltr" class="mw-content-ltr"> The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines ("UCoC EG") and the UCoC's Coordinating Committee Charter is open now through the end of 1 May (UTC) ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal_Code_of_Conduct/Annual_review/2025/Voter_information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki. The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review of the EG and Charter was planned and implemented by the U4C. Further information will be provided in the coming months about the review of the UCoC itself. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Charter|review the U4C Charter]]. Please share this message with members of your community so they can participate as well. In cooperation with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 17 April 2025 07.35 (WIB) </div> <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28469465 --> == <span lang="en" dir="ltr">Vote on proposed modifications to the UCoC Enforcement Guidelines and U4C Charter</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> The voting period for the revisions to the Universal Code of Conduct Enforcement Guidelines and U4C Charter closes on 1 May 2025 at 23:59 UTC ([https://zonestamp.toolforge.org/1746162000 find in your time zone]). [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025/Voter information|Read the information on how to participate and read over the proposal before voting]] on the UCoC page on Meta-wiki. The [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Universal Code of Conduct Coordinating Committee (U4C)]] is a global group dedicated to providing an equitable and consistent implementation of the UCoC. This annual review was planned and implemented by the U4C. For more information and the responsibilities of the U4C, you may [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|review the U4C Charter]]. Please share this message with members of your community in your language, as appropriate, so they can participate as well. In cooperation with the U4C -- <section end="announcement-content" /> </div> <div lang="en" dir="ltr" class="mw-content-ltr"> [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 29 April 2025 10.42 (WIB)</div> <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 --> == <span lang="id" dir="ltr">Pembukaan Pendaftaran Calon Anggota Komite Koordinasi Kode Etik Universal (U4C)</span> == <div lang="id" dir="ltr"> <section begin="announcement-content" /> Hasil pemungutan suara mengenai Pedoman Penegakan Kode Etik Universal dan Piagam Komite Koordinasi Kode Etik Universal (U4C) telah [[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2025#Results|tersedia di Meta-Wiki]]. Anda kini dapat [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025/Candidates|mengajukan diri sebagai calon anggota U4C]] hingga 29 Mei 2025 pukul 12.00 UTC. Informasi mengenai [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Election/2025|syarat kelayakan, proses pencalonan, dan jadwal pemilihan tersedia di Meta-Wiki]]. Pemungutan suara untuk para calon akan dibuka pada 1 Juni 2025 dan berlangsung selama dua pekan, ditutup pada 15 Juni 2025 pukul 12.00 UTC. Jika Anda memiliki pertanyaan, silakan ajukan di [[m:Talk:Universal Code of Conduct/Coordinating Committee/Election/2025|halaman diskusi pemilihannya]]. — bersama dengan U4C, </div><section end="announcement-content" /> </div> <bdi lang="en" dir="ltr">[[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|rundiang]])</bdi> 16 Mai 2025 05.08 (WIB) <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 --> == RfC ongoing regarding Abstract Wikipedia (and your project) == <div lang="en" dir="ltr" class="mw-content-ltr"> ''(Apologies for posting in English, if this is not your first language)'' Hello all! We opened a discussion on Meta about a very delicate issue for the development of [[:m:Special:MyLanguage/Abstract Wikipedia|Abstract Wikipedia]]: where to store the abstract content that will be developed through functions from Wikifunctions and data from Wikidata. Since some of the hypothesis involve your project, we wanted to hear your thoughts too. We want to make the decision process clear: we do not yet know which option we want to use, which is why we are consulting here. We will take the arguments from the Wikimedia communities into account, and we want to consult with the different communities and hear arguments that will help us with the decision. The decision will be made and communicated after the consultation period by the Foundation. You can read the various hypothesis and have your say at [[:m:Abstract Wikipedia/Location of Abstract Content|Abstract Wikipedia/Location of Abstract Content]]. Thank you in advance! -- [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|<span class="signature-talk">{{int:Talkpagelinktext}}</span>]]) 22 Mai 2025 22.27 (WIB) </div> <!-- Pesan dikirim oleh Pengguna:Sannita (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=28768453 --> == <span lang="id" dir="ltr">Pemilihan Dewan Pengawas Yayasan Wikimedia 2025 & Pengajuan Pertanyaan</span> == <div lang="id" dir="ltr"> <section begin="announcement-content" /> :''[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Selection announcement|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Selection announcement}}&language=&action=page&filter= {{int:please-translate}}]'' Halo semua, Tahun ini, periode 2 (dua) tahun jabatan Dewan Pengawas Yayasan Wikimedia untuk kursi perwakilan Komunitas dan Organisasi Afiliasi akan segera berakhir. [1] Dewan Pengawas mengundang seluruh anggota Gerakan Wikimedia untuk ikut serta dalam proses pemilihan tahun ini serta memberikan suara mereka supaya jabatan yang kosong bisa segera terisi. Komite Pemilihan akan mengawasi tahapan pemilihan ini dengan dukungan dari pegawai Yayasan Wikimedia. [2] Komite Tata Kelola Dewan, terdiri atas para anggota Dewan Pengawas yang tidak menjadi calon dalam tahapan pemilihan Dewan Pengawas untuk kursi perwakilan komunitas dan organisasi afiliasi tahun 2025 (Raju Narisetti, Shani Evenstein Sigalov, Lorenzo Losa, Kathy Collins, Victoria Doronina dan Esra’a Al Shafei), [3] akan bertugas untuk melaksanakan fungsi pengawasan bagi Dewan Pengawas di dalam tahapan pemilihan 2025 ini serta senantiasa menginformasikan perkembangan terbaru kepada Dewan Pengawas. Silakan kunjungi pranala yang tersedia pada catatan kaki di bawah ini untuk mendapatkan informasi lebih lanjut mengenai peran dari Komite Pemilihan, Dewan Pengawas, dan pegawai Wikimedia. [4] Berikut merupakan tanggal-tanggal penting untuk tahapan pemilihan tahun ini: * 22 Mei–5 Juni 2025: Pengumuman (informasi yang sedang Anda baca ini) dan masa pengajuan pertanyaan [6] * 17 Juni–1 Juli 2025: Pengajuan calon17 Juni–1 Juli 2025: Pengajuan calon * Juli 2025: Jika diperlukan, organisasi afiliasi akan memilih calon Dewan Pengawas yang akan dimasukkan ke tahapan pemilihan berikutnya, apabila terdapat 10 atau lebih calon yang mendaftar [5] * Agustus 2025: Masa kampanye * Agustus–September 2025: Masa pemungutan suara komunitas yang akan berlangsung selama dua minggu * Oktober–November 2025: Pemeriksaan latar belakang dari calon terpilih * Rapat Dewan Pengawas pada bulan Desember 2025: Penetapan anggota Dewan Pengawas terbaru Silakan pelajari proses pemilihan 2025 lebih mendalam, termasuk rincian lini masa, proses pencalonan, peraturan kampanye, dan syarat kelayakan pemilih dengan mengakses [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025|pranala halaman Meta-Wiki ini]]. '''Pengajuan Pertanyaan''' Dalam proses pemilihan ini, anggota komunitas berkesempatan untuk mengajukan pertanyaan yang akan dijawab oleh para calon Dewan Pengawas. Komite Pemilihan akan memilih pertanyaan dari daftar yang telah diajukan oleh anggota komunitas sebelumnya, dan kemudian, para calon akan menjawab pertanyaan tersebut. Para calon harus menjawab semua pertanyaan wajib yang tercantum dalam formulir pencalonan agar dapat dianggap telah memenuhi syarat. Jika tidak, pencalonan tersebut akan dianggap batal. Pada tahun ini, Komite Pemilihan akan memilih 5 pertanyaan untuk dijawab oleh para calon. Pertanyaan terpilih mungkin merupakan hasil perpaduan dari daftar pertanyaan yang diajukan oleh komunitas, jika ternyata pertanyaan tersebut mirip atau berkaitan. [[m:Special:MyLanguage/Wikimedia_Foundation_elections/2025/Questions_for_candidates|[link]]] '''Sukarelawan Pemilihan''' Cara lain untuk terlibat dalam proses pemilihan 2025 yaitu dengan menjadi Sukarelawan Pemilihan. Sukarelawan Pemilihan akan menjembatani hubungan antara Komite Pemilihan dan komunitas masing-masing. Mereka akan membantu memastikan agar komunitas mereka terwakili dan mengajak anggota komunitas untuk ikut serta memberikan suaranya. Silakan pelajari lebih lanjut tentang program ini dan cara bergabung melalui dengan mengakses [[m:Wikimedia_Foundation_elections/2025/Election_volunteers|pranala halaman Meta Wiki]]. Terima kasih banyak! [1] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2022/Results [2] https://foundation.wikimedia.org/wiki/Committee:Elections_Committee_Charter [3] https://foundation.wikimedia.org/wiki/Resolution:Committee_Membership,_December_2024 [4] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections_committee/Roles [5] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/FAQ [6] https://meta.wikimedia.org/wiki/Wikimedia_Foundation_elections/2025/Questions_for_candidates Salam hangat, Victoria Doronina Narahubung Dewan Pengawas untuk Komite Pemilihan Komite Tata Kelola Dewan<section end="announcement-content" /> </div> [[Pangguno:MediaWiki message delivery|MediaWiki message delivery]] ([[Rundiang Pangguno:MediaWiki message delivery|maota]]) 28 Mai 2025 10.08 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28618011 --> == Vote now in the 2025 U4C Election == <div lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{Int:Please-translate}} Eligible voters are asked to participate in the 2025 [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee]] election. More information–including an eligibility check, voting process information, candidate information, and a link to the vote–are available on Meta at the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2025|2025 Election information page]]. The vote closes on 17 June 2025 at [https://zonestamp.toolforge.org/1750161600 12:00 UTC]. Please vote if your account is eligible. Results will be available by 1 July 2025. -- In cooperation with the U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 14 Juni 2025 06.01 (WIB) </div> <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28848819 --> == <span lang="id" dir="ltr">Dewan Pengawas Yayasan Wikimedia 2025 - Pengajuan Calon</span> == <div lang="id" dir="ltr"> <section begin="announcement-content" /> :''<div class="plainlinks">[[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Announcement/Call for candidates|{{int:interlanguage-link-mul}}]] • [https://meta.wikimedia.org/w/index.php?title=Special:Translate&group=page-{{urlencode:Wikimedia Foundation elections/2025/Announcement/Call for candidates}}&language=&action=page&filter= {{int:please-translate}}]</div> Halo semua, Saat ini, [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|tahap pengajuan calon untuk pemilihan Dewan Pengawas Yayasan Wikimedia 2025]] telah dibuka. Tahap ini akan berlangsung dari tanggal 17 Juni 2025 sampai pukul 11:59 UTC, 2 Juli 2025.[1] Dewan Pengawas bertugas untuk mengawasi pekerjaan Yayasan Wikimedia dan masing-masing Pengawas bertugas selama tiga tahun masa jabatan.[2] Jabatan ini bersifat sukarela. Tahun ini, komunitas Wikimedia akan menghadapi pemilihan yang akan dilangsungkan dari akhir Agustus hingga September 2025. Pemilihan ini bertujuan untuk mengisi dua (2) kursi kosong di Dewan Pengawas, Yayasan Wikimedia. Apakah Anda calon yang kami cari atau Anda tahu orang yang kira-kira cocok untuk dicalonkan sebagai Dewan Pengawas, Yayasan Wikimedia?[3] Silakan baca lebih lanjut [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidate application|di halaman Meta-Wiki]] untuk mengetahui hal apa saja yang diperlukan untuk dapat menjabat sebagai Dewan Pengawas, cara mengajukan pencalonan diri atau mengajak orang lain untuk maju dalam pemilihan tahun ini. Salam hangat, Abhishek Suryawanshi<br /> Ketua Komite Pemilihan Atas nama Komite Pemilihan dan Komite Tata Kelola Dewan [1] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Call_for_candidates [2] https://foundation.wikimedia.org/wiki/Legal:Bylaws#(B)_Term. [3] https://meta.wikimedia.org/wiki/Special:MyLanguage/Wikimedia_Foundation_elections/2025/Resources_for_candidates<section end="announcement-content" /> </div> [[Pangguno:MediaWiki message delivery|MediaWiki message delivery]] ([[Rundiang Pangguno:MediaWiki message delivery|maota]]) 18 Juni 2025 00.44 (WIB) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=28866958 --> == <span lang="en" dir="ltr">Sister Projects Task Force reviews Wikispore and Wikinews</span> == <div lang="en" dir="ltr"> <section begin="message"/> Dear Wikimedia Community, The [[m:Wikimedia Foundation Community Affairs Committee|Community Affairs Committee (CAC)]] of the Wikimedia Foundation Board of Trustees assigned [[m:Wikimedia Foundation Community Affairs Committee/Sister Projects Task Force|the Sister Projects Task Force (SPTF)]] to update and implement a procedure for assessing the lifecycle of Sister Projects – wiki [[m:Wikimedia projects|projects supported by Wikimedia Foundation (WMF)]]. A vision of relevant, accessible, and impactful free knowledge has always guided the Wikimedia Movement. As the ecosystem of Wikimedia projects continues to evolve, it is crucial that we periodically review existing projects to ensure they still align with our goals and community capacity. Despite their noble intent, some projects may no longer effectively serve their original purpose. '''Reviewing such projects is not about giving up – it's about responsible stewardship of shared resources'''. Volunteer time, staff support, infrastructure, and community attention are finite, and the non-technical costs tend to grow significantly as our ecosystem has entered a different age of the internet than the one we were founded in. Supporting inactive projects or projects that didn't meet our ambitions can unintentionally divert these resources from areas with more potential impact. Moreover, maintaining projects that no longer reflect the quality and reliability of the Wikimedia name stands for, involves a reputational risk. An abandoned or less reliable project affects trust in the Wikimedia movement. Lastly, '''failing to sunset or reimagine projects that are no longer working can make it much harder to start new ones'''. When the community feels bound to every past decision – no matter how outdated – we risk stagnation. A healthy ecosystem must allow for evolution, adaptation, and, when necessary, letting go. If we create the expectation that every project must exist indefinitely, we limit our ability to experiment and innovate. Because of this, SPTF reviewed two requests concerning the lifecycle of the Sister Projects to work through and demonstrate the review process. We chose Wikispore as a case study for a possible new Sister Project opening and Wikinews as a case study for a review of an existing project. Preliminary findings were discussed with the CAC, and a community consultation on both proposals was recommended. === Wikispore === The [[m:Wikispore|application to consider Wikispore]] was submitted in 2019. SPTF decided to review this request in more depth because rather than being concentrated on a specific topic, as most of the proposals for the new Sister Projects are, Wikispore has the potential to nurture multiple start-up Sister Projects. After careful consideration, the SPTF has decided '''not to recommend''' Wikispore as a Wikimedia Sister Project. Considering the current activity level, the current arrangement allows '''better flexibility''' and experimentation while WMF provides core infrastructural support. We acknowledge the initiative's potential and seek community input on what would constitute a sufficient level of activity and engagement to reconsider its status in the future. As part of the process, we shared the decision with the Wikispore community and invited one of its leaders, Pharos, to an SPTF meeting. Currently, we especially invite feedback on measurable criteria indicating the project's readiness, such as contributor numbers, content volume, and sustained community support. This would clarify the criteria sufficient for opening a new Sister Project, including possible future Wikispore re-application. However, the numbers will always be a guide because any number can be gamed. === Wikinews === We chose to review Wikinews among existing Sister Projects because it is the one for which we have observed the highest level of concern in multiple ways. Since the SPTF was convened in 2023, its members have asked for the community's opinions during conferences and community calls about Sister Projects that did not fulfil their promise in the Wikimedia movement.[https://commons.wikimedia.org/wiki/File:WCNA_2024._Sister_Projects_-_opening%3F_closing%3F_merging%3F_splitting%3F.pdf <nowiki>[1]</nowiki>][https://meta.wikimedia.org/wiki/Wikimedia_Foundation_Community_Affairs_Committee/Sister_Projects_Task_Force#Wikimania_2023_session_%22Sister_Projects:_past,_present_and_the_glorious_future%22 <nowiki>[2]</nowiki>][https://meta.wikimedia.org/wiki/WikiConvention_francophone/2024/Programme/Quelle_proc%C3%A9dure_pour_ouvrir_ou_fermer_un_projet_%3F <nowiki>[3]</nowiki>] Wikinews was the leading candidate for an evaluation because people from multiple language communities proposed it. Additionally, by most measures, it is the least active Sister Project, with the greatest drop in activity over the years. While the Language Committee routinely opens and closes language versions of the Sister Projects in small languages, there has never been a valid proposal to close Wikipedia in major languages or any project in English. This is not true for Wikinews, where there was a proposal to close English Wikinews, which gained some traction but did not result in any action[https://meta.wikimedia.org/wiki/Proposals_for_closing_projects/Closure_of_English_Wikinews <nowiki>[4]</nowiki>][https://meta.wikimedia.org/wiki/WikiConvention_francophone/2024/Programme/Quelle_proc%C3%A9dure_pour_ouvrir_ou_fermer_un_projet_%3F <nowiki>[5]</nowiki>, see section 5] as well as a draft proposal to close all languages of Wikinews[https://meta.wikimedia.org/wiki/Talk:Proposals_for_closing_projects/Archive_2#Close_Wikinews_completely,_all_languages? <nowiki>[6]</nowiki>]. [[:c:File:Sister Projects Taskforce Wikinews review 2024.pdf|Initial metrics]] compiled by WMF staff also support the community's concerns about Wikinews. Based on this report, SPTF recommends a community reevaluation of Wikinews. We conclude that its current structure and activity levels are the lowest among the existing sister projects. SPTF also recommends pausing the opening of new language editions while the consultation runs. SPTF brings this analysis to a discussion and welcomes discussions of alternative outcomes, including potential restructuring efforts or integration with other Wikimedia initiatives. '''Options''' mentioned so far (which might be applied to just low-activity languages or all languages) include but are not limited to: *Restructure how Wikinews works and is linked to other current events efforts on the projects, *Merge the content of Wikinews into the relevant language Wikipedias, possibly in a new namespace, *Merge content into compatibly licensed external projects, *Archive Wikinews projects. Your insights and perspectives are invaluable in shaping the future of these projects. We encourage all interested community members to share their thoughts on the relevant discussion pages or through other designated feedback channels. === Feedback and next steps === We'd be grateful if you want to take part in a conversation on the future of these projects and the review process. We are setting up two different project pages: [[m:Public consultation about Wikispore|Public consultation about Wikispore]] and [[m:Public consultation about Wikinews|Public consultation about Wikinews]]. Please participate between 27 June 2025 and 27 July 2025, after which we will summarize the discussion to move forward. You can write in your own language. I will also host a community conversation 16th July Wednesday 11.00 UTC and 17th July Thursday 17.00 UTC (call links to follow shortly) and will be around at Wikimania for more discussions. <section end="message"/> </div> -- [[User:Victoria|Victoria]] on behalf of the Sister Project Task Force, 28 Juni 2025 03.58 (WIB) <!-- Pesan dikirim oleh Pengguna:Johan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Johan_(WMF)/Sister_project_MassMassage_on_behalf_of_Victoria/Target_list&oldid=28911188 --> == Wikifunctions will be deployed on your wiki on August 27 == <div lang="en" dir="ltr" class="mw-content-ltr"> ''Please, translate this message into your language.'' Hi all, we want to let you know that [[:f:|Wikifunctions]] is coming to your project soon! When enabled, you will be able to call functions from your project, and integrate them in your articles. A function is something that takes one or more inputs and transforms them into a desired output. Think of adding up two numbers, or converting miles into metres, or calculating how much time has passed since an event, or declining a word into a case. This is usually done with templates that are complicated to create or to import. With Wikifunctions, you will be able to do this with just a couple of clicks! Please check out [[:f:Wikifunctions:Introduction|these tutorials]] for more details. You’re also invited to [[:f:Special:CreateObject|create functions]] that you find useful, or [[:f:Wikifunctions:Suggest a function|ask for help from the Wikifunctions community]]. We would like to invite you to contribute to Wikifunctions, by translating the existing functions labels into your language, so that more users in your community can more easily reuse them on the project. You can also translate the messages for the Wikifunctions interface on TranslateWiki ([https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-wikilambda-ve&filter=%21translated&action=translate here for VisualEditor messages], and [https://translatewiki.net/w/i.php?title=Special%3ATranslate&group=ext-wikilambda-user&filter=%21translated&action=translate here for the Wikifunctions interface proper]). Of course, we are happy to help in case there are questions or difficulties, and we are ready to listen to your feedback. Please ping me directly in case of necessity or reach out to me [[User talk:Sannita (WMF)|on my talk page]]. -- [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 13 Agustus 2025 20.25 (WIB) </div> <!-- Pesan dikirim oleh Pengguna:Sannita (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Sannita_(WMF)/Mass_sending_test&oldid=29116867 --> == <span lang="id" dir="ltr">Akun sementara akan diaktifkan segera</span> == <div lang="id" dir="ltr"> <section begin="body"/> Halo, kami dari tim [[mw:Special:MyLanguage/Product Safety and Integrity|Product and Safety]] Wikimedia Foundation ingin mengumumkan bahwa fitur '''[[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts|akun sementara]] rencananya akan diaktifkan di wiki ini pada 1 September'''. Fitur ini sudah diaktifkan di 30 wiki, termasuk beberapa di antaranya adalah Wikipedia bahasa Jerman, Jepang, Prancis, dan Indonesia. Ini berguna untuk kontributor yang tidak memiliki akun dan/atau masuk log dalam melindungi privasinya. Selain itu, fitur ini juga bermanfaat bagi kontributor yang melakukan patroli maupun pengurus, sebagai bagian dari menjaga wiki senantiasa aman dan tetap akurat. '''Mengapa kami membuat fitur ini?''' Sudah sepatutnya proyek Wikimedia menjadi tempat yang aman bagi semua kontributor, termasuk mereka yang memilih untuk tidak masuk log (pengguna anonim). Fitur Akun Sementara mengizinkan pengguna anonim untuk bisa berkontribusi tanpa harus menunjukkan alamat IP mereka secara publik. Selain itu, perangkat lunak moderasi kami sangat bergantung pada jaringan yang digunakan (dalam hal ini adalah alamat IP) untuk mendeteksi perilaku vandal maupun penggunaan akun siluman secara tidak bertanggung jawab. Permasalahannya, tidak jarang satu/beberapa alamat IP yang digunakan oleh pelaku vandal juga berbarengan dengan pengguna berniat baik. Alhasil, kontributor berniat baik tersebut bisa saja enggan untuk menyunting kembali karena diblokir dan dianggap sama dengan pelaku vandal tersebut. Melalui Akun Sementara, kami harapkan hal seperti ini dapat diminimalkan. Untuk cara kerja dari fitur ini dapat dilihat di bawah. '''Bagaimana fitur ini bekerja?''' [[File:Temporary account banner and empty talk page.png|thumb]] Siapa saja yang menyunting secara anonim di wiki, sebuah kuki (cookie) akan disimpan ke dalam peramban web pengguna anonim tersebut. Kemudian, akun sementara yang terhubung dengan kuki tersebut akan dibuat secara otomatis. Nama akun pengguna tersebut akan mengikuti format sebagai berikut: <code dir=ltr>~2025-12345-67</code> (tanda tilda, tahun sekarang, dan angka). Format tersebut yang akan tampil di halaman perubahan terbaru, alih-alih alamat IP seperti sebelumnya. Kuki akan disimpan selama 90 hari sejak pembuatan. Selama kuki tersebut masih tersimpan, maka nama tersebutlah yang akan digunakan dan akan tetap sama apapun koneksi internet (alamat IP) yang dipakai. Catatan log terkait alamat IP dari akun tersebut akan disimpan selama 90 hari setelah penyuntingan terakhir. Namun, hanya beberapa pengguna terdaftar yang dapat melihat alamat IP tersebut. '''Apa artinya ini bagi kontributor?''' '''Bagi pengguna anonim (tidak masuk log)''' * Meningkatkan privasi atau keamanan. Pada saat ini, ketika Anda memilih untuk tidak masuk log, maka alamat IP Anda akan tampil secara publik. Hal seperti ini tidak akan terjadi lagi nantinya. * Apabila Anda menggunakan akun sementara untuk menyunting di lokasi yang berbeda selama 90 hari terakhir, maka riwayat suntingan dan alamat IP dari lokasi tersebut akan tersimpan di dalam akun sementara. Pengguna terdaftar yang [[foundation:Special:MyLanguage/Policy:Access_to_temporary_account_IP_addresses|memenuhi kriteria]] dapat melihat data tersebut. Jika hal ini membuat Anda terancam, silakan hubungi surel talktohumanrights@wikimedia.org untuk bantuan. '''Bagi kontributor yang berinteraksi dengan pengguna anonim''' * Akun sementara secara unik hanya terhubung ke satu perangkat. Jika dibandingkan dengan alamat IP, maka satu alamat IP bisa saja digunakan lebih banyak orang maupun perangkat pada saat yang bersamaan. * Akan jauh lebih mudah untuk berasumsi bahwa satu akun sementara hanya berlaku untuk satu orang. Jika dibandingkan dengan alamat IP, maka sulit untuk memprediksi apakah itu orang yang sama atau bukan. '''Bagi kontributor yang menggunakan alamat IP untuk patroli''' * '''Untuk kontributor yang rutin melakukan patroli''' dalam mencari pelaku vandal, melakukan investigasi pelanggaran kebijakan dan pedoman, dsb: kontributor yang [[foundation:Special:MyLanguage/Policy:Access_to_temporary_account_IP_addresses|memenuhi kriteria]] dapat melihat alamat IP dari akun sementara maupun seluruh kontribusi yang dibuat oleh akun sementara dari alamat IP secara spesifik/rentang tertentu ([[Special:IPContributions]]). Mereka juga akan memiliki akses ke informasi bermanfaat tentang alamat IP berkat fitur [[mw:Special:MyLanguage/Trust and Safety Product/IP Info|Info IP]]. Selain itu, fitur yang sudah tersedia seperti filter penyalahgunaan, blokir global, kontribusi global, dsb. akan disesuaikan agar dapat bekerja dengan fitur Akun Sementara. * '''Untuk pengurus yang memblokir alamat IP:''' ** Sangat memungkinkan untuk mencegah beberapa orang dalam membuat akun hanya dengan memblokir akun sementaranya. Seseorang yang diblokir tidak akan dapat membuat akun sementara baru jika pengurus memilih opsi [[mw:Special:MyLanguage/Autoblock|blokir otomatis.]] ** Blokir satu maupun rentang alamat IP tetap berlaku. * Akun Sementara tidak akan berlaku untuk kontribusi sebelum perilisan fitur ini. Pada halaman Istimewa:Kontribusi pengguna, alamat IP yang sudah ada sebelumnya tetap akan tampil. Jika ingin melihat suntingan oleh akun sementara, kunjungi halaman Istimewa:Kontribusi alamat IP. '''Tahap selanjutnya dan apa yang harus dilakukan''' * Apabila Anda mengetahui perkakas, akun bot, dsb. yang menggunakan alamat IP, sebaiknya dilakukan uji coba terlebih dahulu di [[testwiki:Main_Page|testwiki]] atau [[test2wiki:Main_Page|test2wiki]]. Jika Anda adalah pengembang sukarelawan, silakan membaca dokumentasi [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers| berikut ini]] dan lihat bagian [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/For developers#How should I update my code?|kode Anda mungkin perlu diperbarui]]. * Apabila Anda ingin merasakan pengalaman menggunakan akun sementara, silakan kunjungi testwiki atau test2wiki tanpa masuk log. * Sampaikan kepada kami apa saja halangan maupun permasalahan yang dialami. Kami akan berusaha semaksimal mungkin dalam membantu, tetapi apabila tidak bisa maka kami akan memikirkan opsi lain yang tersedia. * Lihat kembali [[m:Meta:Babel#Temporary_Accounts:_access_to_IP_addresses_and_next_steps|pengumuman terakhir kami]] tentang syarat bagi pengguna tanpa hak khusus (pengurus, birokrat, pemeriksa, pengawas) yang ingin melihat alamat IP akun sementara. Untuk mengetahui lebih lanjut tentang proyek ini, silakan kunjungi halaman [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/FAQ|pertanyaan yang sering diajukan]]. Anda mungkin juga tertarik untuk melihat [[mw:Special:MyLanguage/Trust and Safety Product/Temporary Accounts/Updates|pengumuman terkini ]] dan [[mw:Newsletter:Product Safety and Integrity|berlangganan nawala kami]]. Salam.<section end="body" /> </div> <bdi lang="en" dir="ltr">[[m:user:NKohli (WMF)|NKohli (WMF)]], [[m:user:SGrabarczuk (WMF)|SGrabarczuk (WMF)]]</bdi> 27 Agustus 2025 04.37 (WIB) <!-- Pesan dikirim oleh Pengguna:Quiddity (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=User:Quiddity_(WMF)/sandbox6&oldid=29181713 --> == <span lang="id" dir="ltr">Berikan suara Anda: pemilihan Dewan Pengawas 2025</span> == <div lang="id" dir="ltr"> <section begin="announcement-content" /> Halo semua, Masa pemungutan suara untuk [[m:Special:MyLanguage/Wikimedia Foundation elections/2025|pemilihan Dewan Pengawas 2025]] telah dibuka. Para calon akan bertanding untuk memperebutkan dua (2) kursi Dewan Pengawas. Untuk memeriksa kelayakan Anda sebagai pemilih, silakan kunjungi [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Voter eligibility guidelines|halaman kelayakan pemilih]]. Pelajari para calon dengan [[m:Special:MyLanguage/Wikimedia Foundation elections/2025/Candidates|membaca pernyataan yang tercantum dalam halaman pencalonan dan juga saksikan video mereka]]. Jika Anda telah merasa siap, silakan kunjungi [[m:Special:SecurePoll/vote/405|halaman pemungutan suara untuk memberikan suara Anda]]. '''Pemungutan suara akan dibuka dari pukul 00:00 UTC, 8 Oktober hingga 23:59 UTC, 22 Oktober 2022.''' Salam hangat, Abhishek Suryawanshi<br />Ketua, Komite Pemilihan<section end="announcement-content" /> </div> [[Pangguno:MediaWiki message delivery|MediaWiki message delivery]] ([[Rundiang Pangguno:MediaWiki message delivery|maota]]) 9 Oktober 2025 11.49 (WIB) (This message was sent to [[:Wikikato:Ituang suaro]] and is being posted here due to a redirect.) <!-- Pesan dikirim oleh Pengguna:RamzyM (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29360896 --> == <span lang="en" dir="ltr">Help us decide the name of the new Abstract Wikipedia project</span> == <div lang="en" dir="ltr"> <section begin="function1"/> {{int:Hello}}. Please help pick a name for the new Abstract Wikipedia wiki project. This project will be a wiki that will enable users to combine functions from [[:f:|Wikifunctions]] and data from Wikidata in order to generate natural language sentences in any supported languages. These sentences can then be used by any Wikipedia (or elsewhere). There will be two rounds of voting, each followed by legal review of candidates, with votes beginning on 20 October and 17 November 2025. Our goal is to have a final project name selected on mid-December 2025. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki. {{Int:Feedback-thanks-title}} <section end="function1"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 20 Oktober 2025 18.44 (WIB) (This message was sent to [[:Wikikato:Ituang suaro]] and is being posted here due to a redirect.) <!-- Pesan dikirim oleh Pengguna:Sannita (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29432175 --> == <span lang="en" dir="ltr">Seeking volunteers to join several of the movement’s committees</span> == <div lang="en" dir="ltr"> <section begin="announcement-content" /> Each year, typically from October through December, several of the movement’s committees seek new volunteers. Read more about the committees on their Meta-wiki pages: * [[m:Special:MyLanguage/Affiliations Committee|Affiliations Committee (AffCom)]] * [[m:Special:MyLanguage/Ombuds commission|Ombuds commission (OC)]] * [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Community Resilience and Sustainability/Trust and Safety/Case Review Committee|Case Review Committee (CRC)]] Applications for the committees open on October 30, 2025. Applications for the Affiliations Committee, Ombuds commission and the Case Review Committee close on December 11, 2025. Learn how to apply by [[m:Special:MyLanguage/Wikimedia Foundation/Legal/Committee appointments|visiting the appointment page on Meta-wiki]]. Post to the talk page or email cst[[File:At sign.svg|16x16px|link=|(_AT_)]]wikimedia.org with any questions you may have. For the Committee Support team, <section end="announcement-content" /> </div> -[[m:User:MKaur (WMF)| MKaur (WMF)]] 30 Oktober 2025 21.13 (WIB) (This message was sent to [[:Wikikato:Ituang suaro]] and is being posted here due to a redirect.) <!-- Pesan dikirim oleh Pengguna:MKaur (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29517125 --> == Pangusulan Panguruih Wikikato == Salam jo sambah sanak sadonyo! Sahubuangan dek raminyo project Komunitas nan manggunokan Wikikato sarupo WikiJalajah, WikiDialek jo WikiTutur rasonyo paralu untuak manambah panguruih. Dek patang ko alah habih maso panguruih Uda [[Pangguno:Ardzun|Ardzun]], ambo mausulkan baliau baliak sabagai panguruih. Mohon konfirmasinyo dibawahko untuak Uda [[Pangguno:Ardzun|Ardzun]]. Sila Sanak maagiah pandapek jo suaro pakai tando tangan di bawah iko. Diskusi ko akan balangsuang salamo 7 (tujuah) hari kamuko. Tarimo kasih [[Pangguno:Zhilal Darma|Zhilal Darma]] ([[Rundiang Pangguno:Zhilal Darma|maota]]) 8 Nopember 2025 16.13 (WIB) === Kato satuju dari Uda [[Pangguno:Ardzun|Ardzun]] === Tarimo kasih banyak ateh dukuangannyo. Awak surang basadio untuak malanjuikan tampuak amanaik mauruih Wikikato ko supayo buliah tapantau dan samakin rancak sarato salareh jo Wikikamus nan lain. Basamo Sanak-Sanak Wikikato kasadonyo, kito buek Wikikato samakin labiah samporono dan sumarak. [[Pangguno:Ardzun|Ardzun]] ([[Rundiang Pangguno:Ardzun|maota]]) 8 Nopember 2025 17.28 (WIB) === Ambiak suaro === #{{satuju}} bana ko [[Pangguno:Zhilal Darma|Zhilal Darma]] ([[Rundiang Pangguno:Zhilal Darma|maota]]) 8 Nopember 2025 17.49 (WIB) #{{satuju}} cocok bana [[Pangguno:Zhilal Darma|Mery Nurfa Dilla ]] ([[Rundiang Pangguno:Mery Nurfa Dilla|maota]]) 8 Nopember 2025 17.53 (WIB) #{{satuju}} Ambo sangaik satuju dan mandukuang panuah daa [[Pangguno:Afdhal Sy|Afdhal Sy]] ([[Rundiang Pangguno:Afdhal Sy|maota]]) 8 Nopember 2025 18.15 (WIB) #{{satuju}} [[Pangguno:Adhmi|Adhmi]] ([[Rundiang Pangguno:Adhmi|maota]]) 9 Nopember 2025 07.09 (WIB) #{{satuju}} Ambo sangaik satuju [[Pangguno:Syurida|Syurida]] ([[Rundiang Pangguno:Syurida|maota]]) 10 Nopember 2025 18.05 (WIB) #{{satuju}} suai bana [[Pangguno:Happywu|Happywu]] ([[Rundiang Pangguno:Happywu|maota]]) 10 Nopember 2025 18.19 (WIB) === Hasia === Pangusulan sanak [[Pangguno:Ardzun|Ardzun]] sabagai panguruih [https://meta.wikimedia.org/wiki/Steward_requests/Permissions/2025-11#Ardzun@minwiktionary '''alah disetujui'''] untuak duo tahun kamuko. Tarimo kasih sanak sadonyo.[[Pangguno:Zhilal Darma|Zhilal Darma]] ([[Rundiang Pangguno:Zhilal Darma|maota]]) 17 Nopember 2025 02.11 (WIB) ==Izin bot== Maaf mengirim pesan dalam bahasa Indonesia. Dua hari terakhir saya diminta oleh Uda [[Pangguno:Ardzun|Ardzun]] menerapkan format tata letak baru yang sebelumnya didiskusikan dalam rapat bulanan terakhir Komunitas Wiktionary Indonesia (lihat pula usulan lengkapnya [[:id:Pembicaraan Wikikamus:Tata letak entri|di sini]]). Untuk mempermudah pembaruan format, saya mencoba menjalankan [[Pangguno:SwarabaktiBot|bot]] dengan tugas mengganti pemanggilan templat usang (seperti templat nama bahasa yang akan disatukan pemanggilannya lewat {{temp|bahasa}}) dan menambahkan {{temp|kepala}} pada bagian awal setiap subjudul bahasa (lihat contoh suntingan di [[Special:Diff/106933|sini]]). Hanya saja, saya membutuhkan persetujuan dari kawan-kawan untuk dapat melanjutkan suntingan dengan akun bot tersebut. Apabila diizinkan, suntingan akun tersebut dapat ditandai sebagai suntingan bot. Terima kasih sebelumnya! [[Pangguno:Swarabakti|Swarabakti]] ([[Rundiang Pangguno:Swarabakti|maota]]) 19 Nopember 2025 21.32 (WIB) :{{satuju}} mengingat ada banyak halaman yang perlu perubahan massal, kehadiran bot amat dibutuhkan di Wikikato. [[Pangguno:Ardzun|Ardzun]] ([[Rundiang Pangguno:Ardzun|maota]]) 20 Nopember 2025 09.48 (WIB) :suai [[Pangguno:Fakhruddin Arrazzi|Fakhruddin Arrazzi]] ([[Rundiang Pangguno:Fakhruddin Arrazzi|maota]]) 20 Nopember 2025 10.27 (WIB) :{{satuju}} [[Pangguno:Adhmi|Adhmi]] ([[Rundiang Pangguno:Adhmi|maota]]) 20 Nopember 2025 11.36 (WIB) :'''Satuju''' [[Pangguno:Afdhal Sy|Afdhal Sy]] ([[Rundiang Pangguno:Afdhal Sy|maota]]) 20 Nopember 2025 14.10 (WIB) :'''Satuju''' [[Pangguno:Syurida|Syurida]] ([[Rundiang Pangguno:Syurida|maota]]) 20 Nopember 2025 16.11 (WIB) :{{satuju}} Terima kasih Mas @[[Pangguno:Swarabakti|Swarabakti]], saya sangat setuju dengan hal itu. [[Pangguno:Zhilal Darma|Zhilal Darma]] ([[Rundiang Pangguno:Zhilal Darma|maota]]) 20 Nopember 2025 20.39 (WIB) Sudah [[meta:Special:Diff/29747515|ditetapkan di Meta]]. [[Pangguno:Swarabakti|Swarabakti]] ([[Rundiang Pangguno:Swarabakti|maota]]) 4 Desember 2025 18.08 (WIB) == <span lang="en" dir="ltr">Reminder: Help us decide the name of the new Abstract Wikipedia project</span> == <div lang="en" dir="ltr"> <section begin="function2"/> {{int:Hello}}. Reminder: Please help to choose name for the new Abstract Wikipedia wiki project. The finalist vote starts today. The finalists for the name are: <span lang="en" dir="ltr" class="mw-content-ltr">Abstract Wikipedia, Multilingual Wikipedia, Wikiabstracts, Wikigenerator, Proto-Wiki</span>. If you would like to participate, then '''[[m:Special:MyLanguage/Abstract Wikipedia/Abstract Wikipedia naming contest|please learn more and vote now]]''' at meta-wiki. {{Int:Feedback-thanks-title}} <section end="function2"/> </div> -- [[User:Sannita (WMF)|User:Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 20 Nopember 2025 21.23 (WIB) (This message was sent to [[:Wikikato:Ituang suaro]] and is being posted here due to a redirect.) <!-- Pesan dikirim oleh Pengguna:Sannita (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29583860 --> == <span lang="id" dir="ltr">Tinjauan tahunan untuk Kode Etik Universal dan Panduan Penegakan</span> == <div lang="id" dir="ltr"> <section begin="announcement-content" /> Saya ingin menyampaikan bahwa periode peninjauan tahunan Kode Etik Universal dan Pedoman Penegakannya saat ini telah dibuka. Usulan perubahan dapat diajukan hingga 9 Februari 2026. Tahap ini merupakan langkah awal dari rangkaian proses peninjauan tahunan yang akan dilakukan.[[m:Special:MyLanguage/Universal Code of Conduct/Annual review/2026|Informasi lengkap dan ruang diskusi tersedia di halaman UCoC di Meta]]. [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee|Komite Pengarah Kode Etik Universal]] (U4C) adalah grup global yang didedikasikan untuk memberikan implementasi yang adil dan konsisten dari UCoC. Tinjauan tahunan ini telah direncanakan dan diimplementasikan oleh U4C. Untuk informasi dan tanggung jawab U4C lebih lanjut, [[m:Special:MyLanguage/Universal Code of Conduct/Coordinating Committee/Charter|Anda dapat meninjaunya pada piagam U4C]]. Mohon bagikan informasi ini pada anggota lain di komunitas Anda di mana pun yang mungkin sesuai. -- Bekerja sama dengan U4C, [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|bicara]])<section end="announcement-content" /> </div> 20 Januari 2026 04.02 (WIB) (This message was sent to [[:Wikikato:Ituang suaro]] and is being posted here due to a redirect.) <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=29905753 --> == Konsensus untuk pemasangan spanduk == Apakah komunitas Wiktionary bahasa Minang memutuskan ingin memasang spanduk terkait pembatasan akses wiki di Indonesia? (Untuk pembahasan isu ini selengkapnya dapat disimak/berpartisipasi secara anonim di https://id.wikipedia.org/wiki/Wikipedia:Permohonan_pendapat/Pembatasan_akses_wiki_di_Indonesia_(Februari_2026)#Konsensus_untuk_isi_spanduk Apabila mencapai konsensus, kita akan membawa hasil ini ke Meta untuk meminta supaya spanduk dipasang di situs-situs wiki bahasa-bahasa di Indonesia, untuk pembaca dari Indonesia, tanggal (tentatif) 23 Maret 2026, selama 31 hari (durasi paling lama), hingga 24 April 2026. Setelah itu, bisa diperpanjang melalui konsensus yang baru. :(Opsional) Silakan menerjemahkan pesan ini ke bahasa Minang: :Sejak Februari 2026, akses pendaftaran dan masuk log ke Wikipedia serta proyek-proyek Wikimedia telah dibatasi di Indonesia. Kami mengajak Anda untuk mendorong Kemkomdigi mencabut pembatasan tersebut agar kita dapat bersama-sama terus membebaskan pengetahuan! Baca selengkapnya. :(atau silakan menerjemahkannya di https://min.wikipedia.org/wiki/Wikipedia:Kadai_Kopi#Konsensus_untuk_pemasangan_spanduk) :(Informasi tambahan 9 Maret): Saat ini pernyataan komunitas telah diterbitkan di https://id.wikipedia.org/wiki/Wikipedia:Pernyataan_resmi_komunitas_Wikipedia_bahasa_Indonesia_terhadap_pembatasan_akses_auth.wikimedia.org_di_Indonesia. Apabila Anda ingin mencantumkan nama komunitas ini di pernyataan bersama tersebut, Anda dapat menandatangani konsensus di bawah. [[Pangguno:Bennylin|Bennylin]] ([[Rundiang Pangguno:Bennylin|maota]]) 10 Maret 2026 00.47 (WIB) # [[Pangguno:Bennylin|Bennylin]] ([[Rundiang Pangguno:Bennylin|maota]]) 3 Maret 2026 02.16 (WIB) sebagai inisiator. == Request for comment (global AI policy) == <bdi lang="en" dir="ltr" class="mw-content-ltr"> Apologies for writing in English. {{int:Please-translate}} A [[:m:Requests for comment/Artificial intelligence policy|request for comment]] is currently being held to decide on a global AI policy. {{int:Feedback-thanks-title}} [[Pangguno:MediaWiki message delivery|MediaWiki message delivery]] ([[Rundiang Pangguno:MediaWiki message delivery|maota]]) 26 April 2026 07.58 (WIB) </bdi> (This message was sent to [[:Wikikato:Ituang suaro]] and is being posted here due to a redirect.) <!-- Pesan dikirim oleh Pengguna:Codename Noreste@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30424282 --> == Pangajuan Panguruih Antarmuko == Tabiak! Salam jo sambah Sanak sadonyo! Sahubuangan dek paralunyo banyak panyasuaian tampilan Wikikato ko, utamonyo dalam panyuntiangan apolai untuak pambaco sarato panyuntiang pamulo nan jolong baraja manyuntiang. Paralu rasonyo panguruih antarmuko (''Interface administrator'') untuak buliah capek jo ligaik dalam pangubahannyo. Dek karano itu, Ambo maajukan diri untuak manjadi pangaruih antarmuko juo. Sila Sanak maagiah pandapek jo suaro batandotangan di bawah iko. Rundiang ko ka balangsuang salamo 7 (tujuah) ari kamuko. Tarimo kasih [[Pangguno:Ardzun|Ardzun]] ([[Rundiang Pangguno:Ardzun|maota]]) 13 Mai 2026 20.25 (WIB) === Rundiang === === Ambiak suaro === # {{satuju}} bana [[Pangguno:Zhilal Darma|Zhilal Darma]] ([[Rundiang Pangguno:Zhilal Darma|maota]]) 14 Mai 2026 08.17 (WIB) # {{satuju}} untuak kamus nan labiah rancak. [[Pangguno:Harditaher|Harditaher]] ([[Rundiang Pangguno:Harditaher|maota]]) 14 Mai 2026 12.13 (WIB) # {{satuju}} [[Pangguno:Adhmi|Adhmi]] ([[Rundiang Pangguno:Adhmi|maota]]) 15 Mai 2026 07.30 (WIB) # {{satuju}} [[Pangguno:Happywu|Happywu]] ([[Rundiang Pangguno:Happywu|maota]]) 15 Mai 2026 09.29 (WIB) # {{satuju}} [[Pangguno:Syurida|Syurida]] ([[Rundiang Pangguno:Syurida|maota]]) 15 Mai 2026 10.39 (WIB) # {{Satuju}} [[Pangguno:Mery Nurfa Dilla|Mery Nurfa Dilla]] ([[Rundiang Pangguno:Mery Nurfa Dilla|maota]]) 15 Mai 2026 13.16 (WIB) # {{Satuju}} [[Pangguno:Hadithfajri|Hadithfajri]] ([[Rundiang Pangguno:Hadithfajri|maota]]) 16 Mai 2026 21.51 (WIB) # {{satuju}} [[Pangguno:Naval Scene|Naval Scene]] ([[Rundiang Pangguno:Naval Scene|maota]]) 17 Mai 2026 05.20 (WIB) ===Hasia === *Alah [https://meta.wikimedia.org/wiki/Steward_requests/Permissions#Ardzun@minwiktionary disatujui] sabagai panguruih antarmuko salamo satahun kamuko sampai 2027-06-05. Salamaik bakarajo Uda [[Pangguno:Ardzun|Ardzun]]. Salam [[Pangguno:Zhilal Darma|Zhilal Darma]] ([[Rundiang Pangguno:Zhilal Darma|maota]]) 6 Juni 2026 12.01 (WIB) == <span lang="id" dir="ltr">Pemungutan suara dalam pemilihan U4C 2026 kini telah dibuka</span> == <div lang="id" dir="ltr"> <section begin="announcement-content" /> Para pemilih yang memenuhi syarat diundang untuk berpartisipasi dalam pemilihan [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Komite Koordinasi Kode Etik Universal]] (U4C) tahun 2026. Informasi lebih lanjut, termasuk pemeriksaan kelayakan pemilih, tata cara pemungutan suara, informasi kandidat, dan pranala menuju halaman pemungutan suara, tersedia di Meta pada [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|halaman informasi Pemilihan 2026]]. Pemungutan suara akan ditutup pada 2 Juni 2026 [https://zonestamp.toolforge.org/1780358400 pukul 00.00 UTC]. Silakan memberikan suara apabila akun Anda memenuhi syarat. Hasil pemilihan akan diumumkan paling lambat pada 14 Juni 2026. — Bekerja sama dengan U4C,<section end="announcement-content" /> </div> [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User talk:Keegan (WMF)|talk]]) 28 Mai 2026 00.15 (WIB) (This message was sent to [[:Wikikato:Ituang suaro]] and is being posted here due to a redirect.) <!-- Pesan dikirim oleh Pengguna:Keegan (WMF)@metawiki dengan menggunakan daftar di https://meta.wikimedia.org/w/index.php?title=Distribution_list/Global_message_delivery&oldid=30513860 --> 1twcti24iwur7lqj96aj86em9fjetx8 Wikikato:Kadai kopi/Arsip 4 33924 119318 88930 2026-06-19T10:06:27Z Ardzun 48 119318 wikitext text/x-wiki {{untuak|kadai kopi utamo|Wikikato:Kadai kopi}} {{Daftar Arsip|category:Arsip Kadai Kopi}} * [[Wikikato:Kadai kopi/Arsip/2019]] * [[Wikikato:Kadai kopi/Arsip/2020]] * [[Wikikato:Kadai kopi/Arsip/2021]] * [[Wikikato:Kadai kopi/Arsip/2022]] * [[Wikikato:Kadai kopi/Arsip/2023]] jw4h2gzxpxkva74xx8h3s8h5ii3fyop Pangguno:Zhilal Darma/common.css 2 35546 119299 107201 2026-06-19T02:00:38Z Zhilal Darma 59 dikosongan dek lah ado pakakeh baru 119299 css text/css phoiac9h4m842xq45sp7s6u21eteeq1 Pangguno:Zhilal Darma/common.js 2 35547 119300 107202 2026-06-19T02:01:05Z Zhilal Darma 59 dikosongan dek lah ado pakakeh baru 119300 javascript text/javascript phoiac9h4m842xq45sp7s6u21eteeq1 kotang 0 35548 119303 107207 2026-06-19T02:04:59Z Zhilal Darma 59 119303 wikitext text/x-wiki =={{bahasa|min}}== {{kepala|min}} {{-adv-|min}} # [[kapatang]] # ari sabalum nyo #*kamano kotang ko? #:{{lang-id}} ''kemana kemaren ini?'' 5epx0tpf9un98scohnqxeccv12jkvr1 119304 119303 2026-06-19T09:14:13Z Ardzun 48 119304 wikitext text/x-wiki =={{bahasa|min}}== {{kepala|min}} {{-adv-|min}} # [[kapatang]] # ari sabalum nyo #:''kamano '''kotang''' ko?'' #::{{lang-id}} ''kemana '''kemarin''' ini?'' bnobn8si26xlh7ov7gj2e7sfjjuo27x Pangguno:Ardzun/LU 2 36474 119314 115135 2026-06-19T09:49:46Z Ardzun 48 119314 wikitext text/x-wiki __NOTOC____NOEDITSECTION__ <templatestyles src="Templat:Bak pasir/HU.css"/> <div class="mp-header"> <div class="mp-wrapper"> <div class="mp-left"> <div class="mp-title" style="font-size:1.4em;">Selamat datang di</div> <div class="mp-title">Wikikamus</div> <div class="mp-subtitle">[[Wikikamus:Perihal|Lubuak kato tabukak]] untuak kasadonyo</div> </div> <div class="mp-right"> <div class="mp-subtitle">{{CURRENTDAYNAME}}, {{CURRENTDAY}} {{CURRENTMONTHNAME}} {{CURRENTYEAR}}</div> <div class="mp-text">Kini tasadio '''[[Wikikamus:Statistik|{{NUMBEROFARTICLES}}]] [[Wikikamus:Kelayakan entri|laman entri]]''' jo panarangan babahaso Minangkabau.</div> </div> </div> </div> <div class="mp-wrapper"> <div class="mp-left"> {{Pangguno:Ardzun/kotak |ikon=Utvalda artiklar pris.svg |judul=Kato nan tapiliah |link=Wikikato:Kato nan tapiliah |isi={{Pangguno:Ardzun/pilihan |lang=min |entry=sipadeh |image= Ginger (Zingiber officinale).jpg |px= 200px |tr= |audio= LL-Q13324 (min)-Zhilal Darma-sipadeh.wav |ipa= |label= |pos=n |def=# tumbuahan baurek tunggang (umbinyo padeh, dipakai sabagai aromatik, bumbu dapua, atau ubek), badaun lonjoang jo marunciang, bungonyo babulia; ''[[:species:Zingiber officinale|Zingiber officinale]]''}} }} {{Pangguno:Ardzun/kotak |ikon=ZGH.language-icon.svg |judul=Kato sumbarang bahaso |link=Wikikamus:Kato nan tapiliah |isi={{Pangguno:Ardzun/pilihan |lang=su |entry=hiji |image= |px= |tr= |audio= |ipa= |label= |pos=num |def=# [[ciek]]; [[aso]] |pos2= |def2= |pos3= |def3= }} }} </div> <div class="nomobile mp-right"> {{Pangguno:Ardzun/kotak |ikon= |judul=Jumlah entri |link= |align=center |isi=[[:Kategori:min:Lema|Minangkabau]] ({{PAGESINCATEGORY:min:Lema}}) - [[:Kategori:id:Lema|Indonesia]] ({{PAGESINCATEGORY:id:Lema}}) - [[:Kategori:bew:Lema|Batawi]] ({{PAGESINCATEGORY:bew:Lema}}) - [[:Kategori:ms:Lema|Malayu]] ({{PAGESINCATEGORY:ms:Lema}}) - [[:Kategori:en:Lema|Inggirih]] ({{PAGESINCATEGORY:en:Lema}}) - [[:Kategori:zmi:Lema|Nagari Sambilan]] ({{PAGESINCATEGORY:zmi:Lema}}) - [[:Kategori:jv:Lema|Jao]] ({{PAGESINCATEGORY:jv:Lema}}) - [[:Kategori:su:Lema|Sunda]] ({{PAGESINCATEGORY:su:Lema}})}} {{Pangguno:Ardzun/kotak |ikon= |judul=Jalajah kategori |align=center |isi=[[:Kategori:Bahaso|Sado bahaso]] - [[:Kategori:Topik|Sadoalah topik]] - [[:Kategori:Nomina manuruik bahaso|Nomina]] - [[:Kategori:Verba manuruik bahaso|Verba]] - [[:Kategori:Adjektiva manuruik bahaso|Adjektiva]] - [[:Kategori:Adverbia manuruik bahaso|Adverbia]] - [[:Kategori:Pronomina manuruik bahaso|Pronomina]] - [[:Kategori:Konjungsi manuruik bahaso|Konjungsi]] - [[:Kategori:Interjeksi manuruik bahaso|Interjeksi]] - [[:Kategori:Partikula manuruik bahaso|Partikula]] - [[:Kategori:Artikula manuruik bahaso|Artikula]] - [[:Kategori:Preposisi manuruik bahaso|Preposisi]] - [[:Kategori:Awalan manuruik bahaso|Awalan]] - [[:Kategori:Akhiran manuruik bahaso|Akhiran]] - [[:Kategori:Paribahaso manuruik bahaso|Peribahaso]] - [[:Kategori:Huruf manuruik bahaso|Huruf]] - [[:Kategori:Simbol manuruik bahaso|Simbol]] }} {{Pangguno:Ardzun/kotak |ikon=GA candidate.svg |judul=Jariah basamo |link= |align=center |isi=[[Wikikamus:Pamintaan entri|Entri]] - [[:Kategori:Istilah jo pamintaan etimologi manuruik bahaso|Asa kato]] - [[:Kategori:Istilah jo pamintaan palafalan manuruik bahaso|Palafalan]] - [[:Kategori:Istilah jo pamintaan definisi manuruik bahaso|Definisi]] - [[:Kategori:Istilah jo pamintaan pamastian manuruik bahaso|Pamastian]] }} </div> </div> <div class="nomobile"> {{Pangguno:Ardzun/kotak |ikon=Wiktfavicon en red.svg |judul=Apo itu Wikikato? |link= |isi='''Wikikato''' atau '''Wiktionary bahaso Minangkabau''' adolah jariah basamo untuak mambuek lubuak kato (kamus) bebas dalam banyak bahaso. Wikikato batujuan untuak maimpun kato dari sadoalah bahaso, indak anyo bahaso Minangkabau sajo, asa lai batarangan dalam bahaso Minangkabau. Panarangan kato indak anyo arati kato, tapi [[etimologi|asa kato]], panyabutan, contoh pamakaian dalam kalimaik, pasamoan kato, lawan kato, turunan kato, jo [[tarajamahan]] ado di dalamnyo. Wikikato adolah wiki, nan aratinyo siapopun Sanak buliah turuik sato bajariah, dan sadoalah isinyo balisensi gando di bawah lisensi ''Creative Commons Attribution-ShareAlike 3.0 Unported License'' jo Lisensi Dokumentasi Bebas GNU. Sabalun bajariah, pastikan Sanak alah mambaco babarapo laman panduan atau laman bantuan kami. Sacaro kusuih, kami punyo aturan latak jo kriteria untuak disatokan. Barajalah [[Bantuan:Caro mambuek halaman|caro mamulai laman baru]], caro untuak mampelokkan jinih, mancubo-cubo di bak kasiak dan singgahi pulo [[Wikikato:Portal komunitas|Portal komunitas]] untuak mancaliak baa caronyo Sanak dapek sato dalam manggadangkan Wikikato. }} {{Pangguno:Ardzun/kotak |ikon= |judul=Proyek Wikimedia lainnyo |isi= {{SarayoWiki}} }} </div> hswo8vh5ifvjjc37bqnqkuqlxl9wcq5 sipodeh 0 37234 119308 119295 2026-06-19T09:28:14Z Ardzun 48 119308 wikitext text/x-wiki =={{bahasa|min}}== {{kepala|min}} {{-n-|min}} # {{ragam bantuak dari|min|sipadeh}} kods2sjsmb1e5b8liayuvpkxongic7j galacuang 0 37238 119301 2026-06-19T02:02:50Z Zhilal Darma 59 Membuat halaman kosong 119301 wikitext text/x-wiki phoiac9h4m842xq45sp7s6u21eteeq1 119302 119301 2026-06-19T02:03:39Z Zhilal Darma 59 [[:wikt:id:Pengguna:Swarabakti/Gadget-EntryAdder.js|+entri]] [min] 119302 wikitext text/x-wiki =={{bahasa|min}}== {{kepala|min}} {{-v-|min}} # salah satu kato untuak manunjuakan raso kesal jjxhe43d1pca3htde399qd9v9xhmx4i potang 0 37239 119305 2026-06-19T09:15:57Z Ardzun 48 [[:wikt:id:Pengguna:Swarabakti/Gadget-EntryAdder.js|+entri]] [min] 119305 wikitext text/x-wiki =={{bahasa|min}}== {{kepala|min}} {{-adv-|min}} # [[kapatang]] b3dm70gxzglk5ddppdgttf8tvptvfji 119306 119305 2026-06-19T09:17:38Z Ardzun 48 /* {{bahasa|min}} */ 119306 wikitext text/x-wiki =={{bahasa|min}}== {{kepala|min}} {{-ragam-}} *{{l|min|kotang}}, {{l|min|kapotang}} {{-adv-|min}} # [[kapatang]] #:{{syn|min|kalamari}} # [[patang]] ari; [[sanjo]] diplk16j3ldvntekj58b7dwjhbp1yaj Templat:ragam bantuak dari 10 37240 119307 2026-06-19T09:27:53Z Ardzun 48 ←Mambuek laman baisi "{{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!-- -->{{#invoke:form of/templates|form_of_t|ragam bentuk {{#invoke:labels/templates/show_from|show_from|default=}} dari|withencap=1|ignore=from:list,nocat}}<!-- -->}}<!-- --><noinclude>{{dokumentasi}}</noinclude>" 119307 wikitext text/x-wiki {{ {{#if:{{{lang|}}}|check deprecated lang param usage|no deprecated lang param usage}}|lang={{{lang|}}}|<!-- -->{{#invoke:form of/templates|form_of_t|ragam bentuk {{#invoke:labels/templates/show_from|show_from|default=}} dari|withencap=1|ignore=from:list,nocat}}<!-- -->}}<!-- --><noinclude>{{dokumentasi}}</noinclude> 98hn20lgn77yvttjirujbquoyhb2qpf Templat:no deprecated lang param usage 10 37241 119309 2026-06-19T09:28:52Z Ardzun 48 ←Mambuek laman baisi "<onlyinclude>{{{1|}}}</onlyinclude>{{documentation}}" 119309 wikitext text/x-wiki <onlyinclude>{{{1|}}}</onlyinclude>{{documentation}} r4cd6eb8p4xjus4wmk4qvx6l1j575js Modul:form of 828 37242 119310 2026-06-19T09:30:43Z Ardzun 48 ←Mambuek laman baisi "local export = {} export.force_cat = false -- for testing; set to true to display categories even on non-mainspace pages local debug_track_module = "Module:debug/track" local etymology_module = "Module:etymology" local form_of_cats_module = "Module:form of/cats" local form_of_data_module = "Module:form of/data" local form_of_data1_module = "Module:form of/data/1" local form_of_data2_module = "Module:form of/data/2" local form_of_functions_module = "Module:form of/..." 119310 Scribunto text/plain local export = {} export.force_cat = false -- for testing; set to true to display categories even on non-mainspace pages local debug_track_module = "Module:debug/track" local etymology_module = "Module:etymology" local form_of_cats_module = "Module:form of/cats" local form_of_data_module = "Module:form of/data" local form_of_data1_module = "Module:form of/data/1" local form_of_data2_module = "Module:form of/data/2" local form_of_functions_module = "Module:form of/functions" local form_of_lang_data_module_prefix = "Module:form of/lang-data/" local function_module = "Module:fun" local headword_data_module = "Module:headword/data" local json_module = "Module:JSON" local labels_module = "Module:labels" local links_module = "Module:links" local load_module = "Module:load" local parse_utilities_module = "Module:parse utilities" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local table_deep_equals_module = "Module:table/deepEquals" local utilities_module = "Module:utilities" local anchor_encode = mw.uri.anchorEncode local concat = table.concat local dump = mw.dumpObject local fetch_categories_and_labels -- Defined below. local format_form_of -- Defined below. local get_tag_display_form -- Defined below. local get_tag_set_display_form -- Defined below. local insert = table.insert local ipairs = ipairs local is_link_or_html -- Defined below. local list_to_text = mw.text.listToText local lookup_shortcut -- Defined below. local lookup_tag -- Defined below. local normalize_tag_set -- Defined below. local parse_tag_set_properties -- Defined below. local require = require local sort = table.sort local split_tag_set -- Defined below. local type = type --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function append(...) append = require(table_module).append return append(...) end local function contains(...) contains = require(table_module).contains return contains(...) end local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function deep_copy(...) deep_copy = require(table_module).deepCopy return deep_copy(...) end local function deep_equals(...) deep_equals = require(table_deep_equals_module) return deep_equals(...) end local function extend(...) extend = require(table_module).extend return extend(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function full_link(...) full_link = require(links_module).full_link return full_link(...) end local function insert_if_not(...) insert_if_not = require(table_module).insertIfNot return insert_if_not(...) end local function is_subset_list(...) is_subset_list = require(table_module).isSubsetList return is_subset_list(...) end local function iterate_from(...) iterate_from = require(function_module).iterateFrom return iterate_from(...) end local function join_multiparts(...) join_multiparts = require(form_of_functions_module).join_multiparts return join_multiparts(...) end local function load_data(...) load_data = require(load_module).load_data return load_data(...) end local function parse_inline_modifiers(...) parse_inline_modifiers = require(parse_utilities_module).parse_inline_modifiers return parse_inline_modifiers(...) end local function remove_links(...) remove_links = require(links_module).remove_links return remove_links(...) end local function safe_load_data(...) safe_load_data = require(load_module).safe_load_data return safe_load_data(...) end local function safe_require(...) safe_require = require(load_module).safe_require return safe_require(...) end local function serial_comma_join(...) serial_comma_join = require(table_module).serialCommaJoin return serial_comma_join(...) end local function shallow_copy(...) shallow_copy = require(table_module).shallowCopy return shallow_copy(...) end local function show_labels(...) show_labels = require(labels_module).show_labels return show_labels(...) end local function slice(...) slice = require(table_module).slice return slice(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function ucfirst(...) ucfirst = require(string_utilities_module).ucfirst return ucfirst(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local cat_functions local function get_cat_functions() cat_functions, get_cat_functions = require(form_of_functions_module).cat_functions, nil return cat_functions end local default_pagename local function get_default_pagename() default_pagename, get_default_pagename = load_data(headword_data_module).pagename, nil return default_pagename end local display_handlers local function get_display_handlers() display_handlers, get_display_handlers = require(form_of_functions_module).display_handlers, nil return display_handlers end local m_cats_data local function get_m_cats_data() m_cats_data, get_m_cats_data = load_data(form_of_cats_module), nil return m_cats_data end local m_data local function get_m_data() -- Needs require. m_data, get_m_data = require(form_of_data_module), nil return m_data end local m_data1 local function get_m_data1() m_data1, get_m_data1 = load_data(form_of_data1_module), nil return m_data1 end local m_data2 local function get_m_data2() m_data2, get_m_data2 = load_data(form_of_data2_module), nil return m_data2 end local m_pos_data local function get_m_pos_data() m_pos_data, get_m_pos_data = load_data(headword_data_module).pos_aliases, nil return m_pos_data end --[==[ intro: This module implements the underlying processing of {{tl|form of}}, {{tl|inflection of}} and specific variants such as {{tl|past participle of}} and {{tl|alternative spelling of}}. Most of the logic in this file is to handle tags in {{tl|inflection of}}. Other related files: * [[Module:form of/templates]] contains the majority of the logic that implements the templates themselves. * [[Module:form of/data/1]] is a data-only file containing information on the more common inflection tags, listing the tags, their shortcuts, the category they belong to (tense-aspect, case, gender, voice-valence, etc.), the appropriate glossary link and the wikidata ID. * [[Module:form of/data/2]] is a data-only file containing information on the less common inflection tags, in the same format as [[Module:form of/data/1]]. * [[Module:form of/lang-data/LANGCODE]] is a data-only file containing information on the language-specific inflection tags for the language with code LANGCODE, in the same format as [[Module:form of/data/1]]. Language-specific tags override general tags. * [[Module:form of/cats]] is a data-only file listing the language-specific categories that are added when the appropriate combinations of tags are seen for a given language. * [[Module:form of/functions]] contains functions for use with [[Module:form of/data/1]] and [[Module:form of/cats]]. They are contained in this module because data-only modules can't contain code. The functions in this file are of two types: *# Display handlers allow for customization of the display of multipart tags (see below). Currently there is only one such handler, for handling multipart person tags such as `1//2//3`. *# Cat functions allow for more complex categorization logic, and are referred to by name in [[Module:form of/cats]]. Currently no such functions exist. The following terminology is used in conjunction with {{tl|inflection of}}: * A ''tag'' is a single grammatical item, as specified in a single numbered parameter of {{tl|inflection of}}. Examples are `masculine`, `nominative`, or `first-person`. Tags may be abbreviated, e.g. `m` for `masculine`, `nom` for `nominative`, or `1` for `first-person`. Such abbreviations are called ''aliases'', and some tags have multiple equivalent aliases (e.g. `p` or `pl` for `plural`). The full, non-abbreviated form of a tag is called its ''canonical form''. * The ''display form'' of a tag is the way it's displayed to the user. Usually the displayed text of the tag is the same as its canonical form, and it normally functions as a link to a glossary entry explaining the tag. Usually the link is to an entry in [[Appendix:Glossary]], but sometimes the tag is linked to an individual dictionary entry or to a Wikipedia entry. Occasionally, the display text differs from the canonical form of the tag. An example is the tag `comparative case`, which has the display text read as simply `comparative`. Normally, tags referring to cases don't have the word "case" in them, but in this case the tag `comparative` was already used as an alias for the tag `comparative degree`, so the tag was named `comparative case` to avoid clashing. A similar situation occurs with `adverbial case` vs. the grammar tag `adverbial` (as in `adverbial participle`). * A ''tag set'' is an ordered list of tags, which together express a single inflection, for example, `1|s|pres|ind`, which can be expanded to canonical-form tags as `first-person|singular|present|indicative`. * A ''conjoined tag set'' is a tag set that consists of multiple individual tag sets separated by a semicolon, e.g. `1|s|pres|ind|;|2|s|imp`, which specifies two tag sets, `1|s|pres|ind` as above and `2|s|imp` (in canonical form, `second-person|singular|imperative`). Multiple tag sets specified in a single call to {{tl|inflection of}} are specified in this fashion. Conjoined tag sets can also occur in list-tag shortcuts. * A ''multipart tag'' is a tag that embeds multiple tags within it, such as `f//n` or `nom//acc//voc`. These are used in the case of [[syncretism]], when the same form applies to multiple inflections. Examples are the Spanish present subjunctive, where the first-person and third-person singular have the same form (e.g. {{m|es|siga}} from {{m|es|seguir|t=to follow}}), or Latin third-declension adjectives, where the dative and ablative plural of all genders have the same form (e.g. {{m|la|omnibus}} from {{m|la|omnis|t=all}}). These would be expressed respectively as `1//3|s|pres|sub` and `dat//abl|m//f//n|p`, where the use of the multipart tag compactly encodes the syncretism and avoids the need to individually list out all of the inflections. Multipart tags currently display as a list separated by a slash, e.g. ''dative/ablative'' or ''masculine/feminine/neuter'' where each individual word is linked appropriately. As a special case, multipart tags involving persons display specially; for example, the multipart tag `1//2//3` displays as ''first-, second- and third-person'', with the word "person" occurring only once. * A ''two-level multipart tag'' is a special type of multipart tag that joins two or more tag sets instead of joining individual tags. The tags within the tag set are joined by a colon, e.g. `1:s//3:p`, which is displayed as ''first-person singular and third-person plural'', e.g. for use with the form {{m|grc|μέλλον}} of the verb {{m|grc|μέλλω|t=to intend}}, which uses the tag set `1:s//3:p|impf|actv|indc|unaugmented` to express the syncretism between the first singular and third plural forms of the imperfect active indicative unaugmented conjugation. Two-level multipart tags should be used sparingly; if in doubt, list out the inflections separately. [FIXME: Make two-level multipart tags obsolete.] * A ''shortcut'' is a tag that expands to any type of tag described above, or to any type of tag set described above. Aliases are a particular type of shortcut whose expansion is a single non-multipart tag. * A ''multipart shortcut'' is a shortcut that expands into a multipart tag, for example `123`, which expands to the multipart tag `1//2//3`. Only the most common such combinations exist as shortcuts. * A ''list shortcut'' is a special type of shortcut that expands to a list of tags instead of a single tag. For example, the shortcut `1s` expands to `1|s` (first-person singular). Only the most common such combinations exist as shortcuts. * A ''conjoined shortcut'' is a special type of list shortcut that consists of a conjoined tag set (multiple logical tag sets). For example, the English language-specific shortcut `ed-form` expands to `spast|;|past|part`, expressing the common syncretism between simple past and past participle in English (and in this case, `spast` is itself a list shortcut that expands to `simple|past`).]==] -- Add tracking category for PAGE when called from {{inflection of}} or -- similar TEMPLATE. The tracking category linked to is -- [[Wiktionary:Tracking/inflection of/PAGE]]. local function track(page) debug_track("inflection of/" .. -- avoid including links in pages (may cause error) page:gsub("%[", "("):gsub("%]", ")"):gsub("|", "!") ) end local function wrap_in_span(text, classes) if classes then return ("<span class='%s'>%s</span>"):format(classes, text) else return text end end local function show_linked_term(data) local termobj, face, span_classes, ok_to_destructively_modify, overall_lang, text_classes = data.termobj, data.face, data.span_classes, data.ok_to_destructively_modify, data.overall_lang, data.text_classes local need_to_copy, pretext_lang local categories = {} if overall_lang and overall_lang:getCode() ~= termobj.lang:getCode() then local lang_display lang_display, categories = require(etymology_module).insert_source_cat_get_display { lang = data.overall_lang, source = termobj.lang, } pretext_lang = wrap_in_span(lang_display .. " ", text_classes) end local need_to_show_qualifiers = termobj.q or termobj.qq or termobj.a or termobj.aa or termobj.l or termobj.ll or termobj.refs need_to_copy = not ok_to_destructively_modify and (pretext_lang or need_to_show_qualifiers) if need_to_copy then termobj = shallow_copy(termobj) end if pretext_lang then termobj.pretext = pretext_lang end if need_to_show_qualifiers then termobj.show_qualifiers = true end return wrap_in_span(full_link(termobj, face), span_classes), categories end --[==[ Lowest-level implementation of form-of templates, including the general {{tl|form of}} as well as those that deal with inflection tags, such as the general {{tl|inflection of}}, semi-specific variants such as {{tl|participle of}}, and specific variants such as {{tl|past participle of}}. `data` contains all the information controlling the display, with the following fields: * `.lang`: Overall language of the form-of template. If specified, any lemmas, enclitics or base lemmas that are of a different language will have that language displayed before the term in question. * `.text`: Text to insert before the lemmas. Wrapped in the value of `.text_classes`, or its default; see below. * `.lemmas`: List of objects describing the lemma(s) of which the term in question is a non-lemma form. These are passed directly to {full_link()} in [[Module:links]]. Each object should have at minimum a `.lang` field containing the language of the lemma and a `.term` field containing the lemma itself. Each object is formatted using {full_link()} and then if there are more than one, they are joined using {serialCommaJoin()} in [[Module:table]]. Alternatively, `.lemmas` can be a string, which is displayed directly, or omitted, to show no lemma links and omit the connecting text. * `.lemma_face`: "Face" to use when displaying the lemma objects. Usually should be set to {"term"}. * `.conj`: Conjunction or separator to use when joining multiple lemma objects. If {nil}, defaults to {"and"}. If this has the value {false}, the lemmas are preceded with the `.separator` field in each lemma. * `.enclitics`: List of enclitics to display after the lemmas, in parens. * `.enclitic_conj`: Conjunction or separator to use when joining multiple enclitics. Defaults to {"and"}. * `.base_lemmas`: List of base lemmas to display after the lemmas, in the case where the lemmas in `.lemmas` are themselves forms of another lemma (the base lemma), e.g. a comparative, superlative or participle. Each object is of the form { { paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...}, conj = "CONJ" }} where PARAM_OBJ describes the properties of the base lemma parameter (i.e. the relationship between the intermediate and base lemmas); LEMMA_OBJ is an object suitable to be passed to {full_link()} in [[Module:links]]; and CONJ is the conjunction to join multiple lemmas with, defaulting to {"and"}. PARAM_OBJ is of the format { { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to {{tl|inflection of}} etc. that holds the base lemma(s) of the specified relationship and the tags describe the relationship, such as { {"comd"}} or { {"past", "part"}}. * `.text_classes`: CSS classes used to wrap the tag text and lemma links. Default is {"form-of-definition use-with-mention"}. Use `false` for no wrapping. * `.lemma_classes`: Additional CSS classes used to wrap the lemma links. Default is {"form-of-definition-link"}. Use `false` for no wrapping. * `.posttext`: Additional text to display after the lemma links. * `.ok_to_destructively_modify`: If set, data structures (including the nested lemma structures) can be modified in-place to save memory; otherwise they will be copied before modifying. Returns two values, the formatted string and any categories to add the page to (which will arise if `.lang` is specified and a language other than `.lang` is given in one of the lemmas in `.lemmas` or enclitics in `.enclitics`). ]==] function export.format_form_of(data) if type(data) ~= "table" then error("Internal error: First argument must now be a table of arguments") end local text_classes = data.text_classes if text_classes == nil and not data.nowrap then text_classes = "form-of-definition use-with-mention" end local lemma_classes = data.lemma_classes if lemma_classes == nil then lemma_classes = "form-of-definition-link" end local parts = {} if text_classes then insert(parts, "<span class='" .. text_classes .. "'>") end insert(parts, data.text) if data.text ~= "" and data.lemmas then insert(parts, " ") end local categories = {} if data.lemmas then if type(data.lemmas) == "string" then insert(parts, wrap_in_span(data.lemmas, lemma_classes)) else local formatted_terms = {} for _, lemma in ipairs(data.lemmas) do local linked_term, this_categories = show_linked_term { termobj = lemma, face = data.lemma_face, span_classes = lemma_classes, ok_to_destructively_modify = data.ok_to_destructively_modify, overall_lang = data.lang, text_classes = text_classes } if this_categories[1] then extend(categories, this_categories) end if data.conj == false and lemma.separator then insert(formatted_terms, lemma.separator) end insert(formatted_terms, linked_term) end if data.conj == false then insert(parts, concat(formatted_terms)) else insert(parts, serial_comma_join(formatted_terms, {conj = data.conj or "and"})) end end if data.lit then insert(parts, ", literally " .. require(links_module).mark(data.lit, "gloss")) end end if data.enclitics and #data.enclitics > 0 then -- The outer parens need to be outside of the text_classes span so they show in upright instead of italic, or -- they will clash with upright parens generated by link annotations such as transliterations and pos=. if text_classes then insert(parts, "</span>") end local formatted_terms = {} for _, enclitic in ipairs(data.enclitics) do -- FIXME, should we have separate clitic face and/or classes? local linked_term, this_categories = show_linked_term { termobj = enclitic, face = data.lemma_face, span_classes = lemma_classes, ok_to_destructively_modify = data.ok_to_destructively_modify, overall_lang = data.lang, text_classes = text_classes } if this_categories[1] then extend(categories, this_categories) end insert(formatted_terms, linked_term) end insert(parts, " (") insert(parts, wrap_in_span("with enclitic" .. (#data.enclitics > 1 and "s" or "") .. " ", text_classes)) insert(parts, serial_comma_join(formatted_terms, {conj = data.enclitic_conj or "and"})) insert(parts, ")") if text_classes then insert(parts, "<span class='" .. text_classes .. "'>") end end if data.base_lemmas and #data.base_lemmas > 0 then for _, base_lemma in ipairs(data.base_lemmas) do insert(parts, ", the ") if text_classes then insert(parts, "</span>") end insert(parts, (export.tagged_inflections { lang = data.lang or base_lemma.lemmas[1].lang, tags = base_lemma.paramobj.tags, lemmas = base_lemma.lemmas, conj = base_lemma.conj or "and", lemma_face = data.lemma_face, no_format_categories = true, nocat = true, text_classes = data.text_classes, ok_to_destructively_modify = ok_to_destructively_modify, })) if text_classes then insert(parts, "<span class='" .. text_classes .. "'>") end end end -- FIXME, should posttext go before enclitics? If so we need to have separate handling for the -- final colon when there are multiple tag sets in tagged_inflections(). if data.posttext then insert(parts, data.posttext) end if text_classes then insert(parts, "</span>") end return concat(parts), categories end format_form_of = export.format_form_of --[==[ Return true if `tag` contains an internal link or HTML.]==] function export.is_link_or_html(tag) return tag:find("[[", nil, true) or tag:find("|", nil, true) or tag:find("<", nil, true) end is_link_or_html = export.is_link_or_html --[==[ Look up a tag (either a shortcut of any sort of a canonical long-form tag) and return its expansion. The expansion will be a string unless the shortcut is a list-tag shortcut such as `1s`; in that case, the expansion will be a list. The caller must handle both cases. Only one level of expansion happens; hence, `acc` expands to {"accusative"}, `1s` expands to { {"1", "s"}} (not to { {"first", "singular"}}) and `123` expands to {"1//2//3"}. The expansion will be the same as the passed-in tag in the following circumstances: # The tag is `;` (this is special-cased, and no lookup is done). # The tag is a multipart tag such as `nom//acc` (this is special-cased, and no lookup is done). # The tag contains a raw link (this is special-cased, and no lookup is done). # The tag contains HTML (this is special-cased, and no lookup is done). # The tag is already a canonical long-form tag. # The tag is unrecognized. This function first looks up in the lang-specific data module [[Module:form of/lang-data/LANGCODE]], then in [[Module:form of/data/1]] (which includes more common non-lang-specific tags) and finally (only if the tag is not recognized as a shortcut or canonical tag, and is not of types 1-4 above) in [[Module:form of/data/2]]. If the expansion is a string and is different from the tag, track it if `do_track` is true.]==] function export.lookup_shortcut(tag, lang, do_track) -- If there is HTML or a link in the tag, return it directly; don't try -- to look it up, which will fail. if tag == ";" or tag:find("//", nil, true) or is_link_or_html(tag) then return tag end local expansion while lang do local langdata = safe_load_data(form_of_lang_data_module_prefix .. lang:getCode()) -- If this is a canonical long-form tag, just return it, and don't check for shortcuts. This is an -- optimization; see below. if langdata then if langdata.tags[tag] then return tag end expansion = langdata.shortcuts[tag] if expansion then break end end -- If the language has a parent (i.e. a superordinate variety), try again with that. lang = lang:getParent() end if not expansion then -- If this is a canonical long-form tag, just return it, and don't check for shortcuts (which will cause -- [[Module:form of/data/2]] to be loaded, because there won't be a shortcut entry in [[Module:form of/data/1]] -- -- or, for that matter, in [[Module:form of/data/2]]). This is an optimization; the code will still work without -- it, but will use up more memory. if (m_data1 or get_m_data1()).tags[tag] then return tag end expansion = m_data1.shortcuts[tag] end if not expansion then expansion = (m_data2 or get_m_data2()).shortcuts[tag] end if not expansion then return tag end -- Maybe track the expansion if it's not the same as the raw tag. if do_track and expansion ~= tag and type(expansion) == "string" then track("tag/" .. tag) end return expansion end lookup_shortcut = export.lookup_shortcut --[==[ Look up a normalized/canonicalized tag and return the data object associated with it. If the tag isn't found, return nil. This first looks up in the lang-specific data module [[Module:form of/lang-data/LANGCODE]], then in [[Module:form of/data/1]] (which includes more common non-lang-specific tags) and then finally in [[Module:form of/data/2]].]==] function export.lookup_tag(tag, lang) while lang do local langdata = safe_load_data(form_of_lang_data_module_prefix .. lang:getCode()) local tag = langdata and langdata.tags[tag] if tag then return tag end -- If the language has a parent (i.e. a superordinate variety), try again with that. lang = lang:getParent() end local tagobj = (m_data1 or get_m_data1()).tags[tag] if tagobj then return tagobj end local tagobj2 = (m_data2 or get_m_data2()).tags[tag] if tagobj2 then return tagobj2 end return nil end lookup_tag = export.lookup_tag -- Normalize a single tag, which may be a shortcut but should not be a multipart tag, a multipart shortcut or a list -- shortcut. local function normalize_single_tag(tag, lang, do_track) local expansion = lookup_shortcut(tag, lang, do_track) if type(expansion) ~= "string" then error("Tag '" .. tag .. "' is a list shortcut, which is not allowed here") end tag = expansion if not lookup_tag(tag, lang) and do_track then -- If after all expansions and normalizations we don't recognize the canonical tag, track it. track("unknown") track("unknown/" .. tag) end return tag end --[=[ Normalize a component of a multipart tag. This should not have any // in it, but may join multiple individual tags with a colon, and may be a single list-tag shortcut, which is treated as if colon-separated. The return value may be a list of tags. ]=] local function normalize_multipart_component(tag, lang, do_track) -- If there is HTML or a link in the tag, don't try to split on colon. A colon may legitimately occur in either one, -- and we don't want these things parsed. Note that we don't do this check before splitting on //, which we don't -- expect to occur in links or HTML; see comment in normalize_tag(). if is_link_or_html(tag) then return tag end local components = split(tag, ":", true) if #components == 1 then -- We allow list-tag shortcuts inside of multipart tags, e.g. -- '1s//3p'. Check for this now. tag = lookup_shortcut(tag, lang, do_track) if type(tag) == "table" then -- Temporary tracking as we will disallow this. track("list-tag-inside-of-multipart") -- We found a list-tag shortcut; treat as if colon-separated. components = tag else return normalize_single_tag(tag, lang, do_track) end end local normtags = {} -- Temporary tracking as we will disallow this. track("two-level-multipart") for _, component in ipairs(components) do if do_track then -- There are multiple components; track each of the individual -- raw tags. track("tag/" .. component) end insert(normtags, normalize_single_tag(component, lang, do_track)) end return normtags end --[=[ Normalize a single tag. The return value may be a list (in the case of multipart tags), which will contain nested lists in the case of two-level multipart tags. ]=] local function normalize_tag(tag, lang, do_track) -- We don't check for links or HTML before splitting on //, which we don't expect to occur in links or HTML. Doing -- it this way allows for a tag like '{{lb|grc|Epic}}//{{lb|grc|Ionic}}' to function correctly (the template calls -- will be expanded before we process the tag, and will contain links and HTML). The only check we do is for a URL, -- which shouldn't normally occur, but might if the user tries to put an external link into the tag. URL's with // -- normally have the sequence ://, which should never normally occur when // and : are used in their normal ways. if tag:find("://", nil, true) then return tag end local split_tags = split(tag, "//", true) if #split_tags == 1 then local retval = normalize_multipart_component(tag, lang, do_track) if type(retval) == "table" then -- The user gave a tag like '1:s', i.e. with colon but without //. Allow this, but we need to return a -- nested list. return {retval} end return retval end local normtags = {} for _, single_tag in ipairs(split_tags) do if do_track then -- If the tag was a multipart tag, track each of individual raw tags. track("tag/" .. single_tag) end insert(normtags, normalize_multipart_component(single_tag, lang, do_track)) end return normtags end --[==[ Normalize a tag set (a list of tags) into its canonical-form tags. The return value is a list of normalized tag sets (a list because of there may be conjoined shortcuts among the input tags). A normalized tag set is a list of tag elements, where each element is either a string (the canonical form of a tag), a list of such strings (in the case of multipart tags) or a list of lists of such strings (in the case of two-level multipart tags). For example, the multipart tag `nom//acc//voc` will be represented in canonical form as { {"nominative", "accusative", "vocative"}}, and the two-level multipart tag `1:s//3:p` will be represented as { {{"first-person", "singular"}, {"third-person", "plural"}}}. Example 1: {normalize_tag_set({"nom//acc//voc", "n", "p"})} = { {{{"nominative", "accusative", "vocative"}, "masculine", "plural"}}} Example 2: {normalize_tag_set({"ed-form"}, ENGLISH)} = { {{"simple", "past"}, {"past", "participle"}}} Example 3: {normalize_tag_set({"archaic", "ed-form"}, ENGLISH)} = { {{"archaic", "simple", "past"}, {"archaic", "past", "participle"}}}]==] function export.normalize_tag_set(tag_set, lang, do_track) -- We track usage of shortcuts, normalized forms and (in the case of multipart tags or list tags) intermediate -- forms. For example, if the tags 1s|mn|gen|indefinite are passed in, we track the following: -- [[Wiktionary:Tracking/inflection of/tag/1s]] -- [[Wiktionary:Tracking/inflection of/tag/1]] -- [[Wiktionary:Tracking/inflection of/tag/s]] -- [[Wiktionary:Tracking/inflection of/tag/first-person]] -- [[Wiktionary:Tracking/inflection of/tag/singular]] -- [[Wiktionary:Tracking/inflection of/tag/mn]] -- [[Wiktionary:Tracking/inflection of/tag/m//n]] -- [[Wiktionary:Tracking/inflection of/tag/m]] -- [[Wiktionary:Tracking/inflection of/tag/n]] -- [[Wiktionary:Tracking/inflection of/tag/masculine]] -- [[Wiktionary:Tracking/inflection of/tag/neuter]] -- [[Wiktionary:Tracking/inflection of/tag/gen]] -- [[Wiktionary:Tracking/inflection of/tag/genitive]] -- [[Wiktionary:Tracking/inflection of/tag/indefinite]] local output_tag_set = {} local saw_semicolon = false for _, tag in ipairs(tag_set) do if do_track then -- Track the raw tag. track("tag/" .. tag) end -- Expand the tag, which may generate a new tag (either a fully canonicalized tag, a multipart tag, or a list -- of tags). tag = lookup_shortcut(tag, lang, do_track) if type(tag) == "table" then if contains(tag, ";") then -- If we saw a conjoined shortcut, we need to use a more general algorithm that can expand a single -- tag set into multiple. saw_semicolon = true break end for _, t in ipairs(tag) do if do_track then -- If the tag expands to a list of raw tags, track each of those. track("tag/" .. t) end insert(output_tag_set, normalize_tag(t, lang, do_track)) end else insert(output_tag_set, normalize_tag(tag, lang, do_track)) end end if not saw_semicolon then return {output_tag_set} end -- Use a more general algorithm that handles conjoined shortcuts. output_tag_set = {} for i, tag in ipairs(tag_set) do if do_track then -- Track the raw tag. track("tag/" .. tag) end -- Expand the tag, which may generate a new tag (either a fully canonicalized tag, a multipart tag, or a list -- of tags). tag = lookup_shortcut(tag, lang, do_track) if type(tag) == "table" then local output_tag_sets = {} local shortcut_tag_sets = split_tag_set(tag) local normalized_shortcut_tag_sets = {} for _, shortcut_tag_set in ipairs(shortcut_tag_sets) do extend(normalized_shortcut_tag_sets, normalize_tag_set(shortcut_tag_set, lang, do_track)) end local after_tags = slice(tag_set, i + 1) local normalized_after_tags_sets = normalize_tag_set(after_tags, lang, do_track) for _, normalized_shortcut_tag_set in ipairs(normalized_shortcut_tag_sets) do for _, normalized_after_tags_set in ipairs(normalized_after_tags_sets) do insert(output_tag_sets, append(output_tag_set, normalized_shortcut_tag_set, normalized_after_tags_set)) end end return output_tag_sets else insert(output_tag_set, normalize_tag(tag, lang, do_track)) end end error("Internal error: Should not get here") end normalize_tag_set = export.normalize_tag_set --[==[ Split a tag set that may consist of multiple semicolon-separated tag sets into the component tag sets.]==] function export.split_tag_set(tag_set) local split_tag_sets = {} local cur_tag_set = {} for _, tag in ipairs(tag_set) do if tag == ";" then if #cur_tag_set > 0 then insert(split_tag_sets, cur_tag_set) end cur_tag_set = {} else insert(cur_tag_set, tag) end end if #cur_tag_set > 0 then insert(split_tag_sets, cur_tag_set) end return split_tag_sets end split_tag_set = export.split_tag_set local tag_set_param_mods = { lb = { item_dest = "labels", convert = function(arg, parse_err) return split(arg, "//", true) end, } } --[==[ Parse tag set properties from a tag set (list of tags). Currently no per-tag properties are recognized, and the only per-tag-set property recognized is `<lb:...>` for specifing label(s) for the tag set. Per-tag-set properties must be attached to the last tag.]==] function export.parse_tag_set_properties(tag_set) local function generate_tag_set_obj(last_tag) tag_set[#tag_set] = last_tag return {tags = tag_set} end local last_tag = tag_set[#tag_set] -- Check for inline modifier, e.g. מרים<tr:Miryem>. But exclude HTML entry with <span ...>, <i ...>, <br/> or -- similar in it, caused by wrapping an argument in {{l|...}}, {{af|...}} or similar. Basically, all tags of -- the sort we parse here should consist of a less-than sign, plus letters, plus a colon, e.g. <lb:...>, so if -- we see a tag on the outer level that isn't in this format, we don't try to parse it. The restriction to the -- outer level is to allow generated HTML inside of e.g. qualifier tags, such as foo<q:similar to {{m|fr|bar}}>. if last_tag:find("<", nil, true) and not last_tag:find("^[^<]*<%l*[^%l:]") then return parse_inline_modifiers(last_tag, { param_mods = tag_set_param_mods, generate_obj = generate_tag_set_obj, }) else return generate_tag_set_obj(last_tag) end end parse_tag_set_properties = export.parse_tag_set_properties local function normalize_pos(pos) if not pos then return nil end return (m_pos_data or get_m_pos_data())[pos] or pos end -- Return the display form of a single canonical-form tag. The value -- passed in must be a string (i.e. it cannot be a list describing a -- multipart tag). To handle multipart tags, use get_tag_display_form(). -- A truthy `nolink` suppresses linking. local function get_single_tag_display_form(normtag, lang, nolink) local data = lookup_tag(normtag, lang) local display = normtag -- If the tag has a special display form, use it if data and data.display then display = data.display if nolink then display = remove_links(display) end end -- If there is a nonempty glossary index, then show a link to it if not nolink then local glossary = data and data[(m_data or get_m_data()).GLOSSARY] if glossary ~= nil then if glossary == m_data.WIKT then display = "[[" .. normtag .. "|" .. display .. "]]" elseif glossary == m_data.WP then display = "[[w:" .. normtag .. "|" .. display .. "]]" elseif glossary == m_data.APPENDIX then display = "[[Lampiran:Glosarium#" .. anchor_encode(normtag) .. "|" .. display .. "]]" elseif type(glossary) ~= "string" then error(("Internal error: Wrong type %s for glossary value %s for tag %s"):format( type(glossary), dump(glossary), normtag)) else local link = glossary:match("^wikt:(.*)") if link then display = "[[" .. link .. "|" .. display .. "]]" end if not link then link = glossary:match("^w:(.*)") if link then display = "[[w:" .. link .. "|" .. display .. "]]" end end if not link then display = "[[Lampiran:Glosarium#" .. anchor_encode(glossary) .. "|" .. display .. "]]" end end end end return display end --[==[ Turn a canonicalized tag spec (which describes a single, possibly multipart tag) into the displayed form. The tag spec may be a string (a canonical-form tag); a list of canonical-form tags (in the case of a simple multipart tag); or a list of mixed canonical-form tags and lists of such tags (in the case of a two-level multipart tag). `joiner` indicates how to join the parts of a multipart tag, and can be either {"and"} ("foo and bar", or "foo, bar and baz" for 3 or more), {"slash"} ("foo/bar"), {"en-dash"} ("foo–bar") or {nil}, which uses the global default found in {multipart_join_strategy()} in [[Module:form of/functions]]. (NOTE: The global default is {"slash"} and this seems unlikely to change.) A truthy `nolink` suppresses linking.]==] function export.get_tag_display_form(tagspec, lang, joiner, nolink) if type(tagspec) == "string" then return get_single_tag_display_form(tagspec, lang, nolink) end -- We have a multipart tag. See if there's a display handler to display them specially. for _, handler in ipairs(display_handlers or get_display_handlers()) do local displayval = handler(tagspec, joiner) if displayval then if nolink then displayval = remove_links(displayval) end return displayval end end -- No display handler. local displayed_tags = {} for _, first_level_tag in ipairs(tagspec) do if type(first_level_tag) == "string" then insert(displayed_tags, get_single_tag_display_form(first_level_tag, lang, nolink)) else -- A first-level element of a two-level multipart tag. Currently we just separate the individual components -- with spaces, but other ways are possible, e.g. using an underscore, colon, parens or braces. local components = {} for _, component in ipairs(first_level_tag) do insert(components, get_single_tag_display_form(component, lang, nolink)) end insert(displayed_tags, concat(components, " ")) end end return join_multiparts(displayed_tags, joiner) end get_tag_display_form = export.get_tag_display_form --[==[ Given a normalized tag set (i.e. as output by {normalize_tag_set()}; all tags are in canonical form, multipart tags are represented as lists, and two-level multipart tags as lists of lists), convert to displayed form (a string). See {get_tag_display_form()} for the meaning of `joiner`. A truthy `nolink` suppresses linking.]==] function export.get_tag_set_display_form(normalized_tag_set, lang, joiner, nolink) local parts = {} for _, tagspec in ipairs(normalized_tag_set) do local to_insert = get_tag_display_form(tagspec, lang, joiner, nolink) -- Maybe insert a space before inserting the display form of the tag. We insert a space if -- (a) we're not the first tag; and -- (b) the tag we're about to insert doesn't have the "no_space_on_left" property; and -- (c) the preceding tag doesn't have the "no_space_on_right" property. -- NOTE: We depend here on the fact that -- (1) all tags with either of the above properties set have the same display form as canonical form, and -- (2) all tags with either of the above properties set are single-character tags. -- The second property is an optimization to avoid looking up display forms resulting from multipart tags, -- which won't be found and which will trigger loading of [[Module:form of/data/2]]. If multichar punctuation is -- added in the future, it's ok to change the == 1 below to <= 2 or <= 3. -- -- If the first property above fails to hold in the future, we need to track the canonical form of each tag -- (including the previous one) as well as the display form. This would also avoid the need for the == 1 check. if #parts > 0 then local most_recent_tagobj = parts[#parts]:match("^.[\128-\191]*$") and lookup_tag(parts[#parts], lang) local to_insert_tagobj = to_insert:match("^.[\128-\191]*$") and lookup_tag(to_insert, lang) if ( (not most_recent_tagobj or not most_recent_tagobj.no_space_on_right) and (not to_insert_tagobj or not to_insert_tagobj.no_space_on_left) ) then insert(parts, " ") end end insert(parts, to_insert) end return concat(parts) end get_tag_set_display_form = export.get_tag_set_display_form --[==[ Split a tag set containing two-level multipart tags into one or more tag sets not containing such tags. Single-level multipart tags are left alone. (If we need to, a slight modification of the following code will also split single-level multipart tags.) This assumes that multipart tags are represented as lists and two-level multipart tags are represented as lists of lists, as is output by {normalize_tag_set()}. NOTE: We have to be careful to properly handle imbalanced two-level multipart tags such as `def:s//p` (or the reverse, `s//def:p`).]==] local function split_two_level_multipart_tag_set(tag_set) for i, tag in ipairs(tag_set) do if type(tag) == "table" then -- We saw a multipart tag. Check if any of the parts are two-level. local saw_two_level_tag = false for _, first_level_tag in ipairs(tag) do if type(first_level_tag) == "table" then saw_two_level_tag = true break end end if saw_two_level_tag then -- We found a two-level multipart tag. -- (1) Extract the preceding tags. local pre_tags = slice(tag_set, 1, i - 1) -- (2) Extract the following tags. local post_tags = slice(tag_set, i + 1) -- (3) Loop over each tag set alternant in the two-level multipart tag. -- For each alternant, form the tag set consisting of pre_tags + alternant + post_tags, -- and recursively split that tag set. local resulting_tag_sets = {} for _, first_level_tag_set in ipairs(tag) do local expanded_tag_set = {} extend(expanded_tag_set, pre_tags) -- The second level may have a string or a list. if type(first_level_tag_set) == "table" then extend(expanded_tag_set, first_level_tag_set) else insert(expanded_tag_set, first_level_tag_set) end extend(expanded_tag_set, post_tags) extend(resulting_tag_sets, split_two_level_multipart_tag_set(expanded_tag_set)) end return resulting_tag_sets end end end return {tag_set} end local function try_lang_specific_module(langcode, modules_tried, name, data) local lang_specific_module = form_of_lang_data_module_prefix .. langcode .. "/functions" local langdata = safe_require(lang_specific_module) if langdata then insert(modules_tried, lang_specific_module) if langdata.cat_functions then local fn = langdata.cat_functions[name] if fn then return fn(data), true end end end return nil, false end -- Call a named function, either from the lang-specific data in -- [[Module:form of/lang-specific/LANGCODE/functions]] or in [[Module:form of/functions]]. local function call_named_function(name, funtype, normalized_tag_set, lang, POS, pagename, lemmas) local data = { pagename = pagename or default_pagename or get_default_pagename(), lemmas = lemmas, tag_set = normalized_tag_set, lang = lang, POS = POS } local modules_tried = {} -- First try lang-specific. while lang do local retval, found_it = try_lang_specific_module(lang:getCode(), modules_tried, name, data) if found_it then return retval end -- If the language has a parent (i.e. a superordinate variety), try again with that. lang = lang:getParent() end -- Try lang-independent. insert(modules_tried, form_of_functions_module) local fn = (cat_functions or get_cat_functions())[name] if fn then return fn(data) end for i, modname in ipairs(modules_tried) do modules_tried[i] = "[[" .. modname .. "]]" end error(("No %s function named '%s' in %s"):format(funtype, name, list_to_text(modules_tried, nil, " or "))) end -- Given a tag from the current tag set (which may be a list in case of a multipart tag), -- and a tag from a categorization spec, check that the two match. -- (1) If both are strings, we just check for equality. -- (2) If the spec tag is a string and the tag set tag is a list (i.e. it originates from a -- multipart tag), we check that the spec tag is in the list. This is because we want to treat -- multipart tags in user-specified tag sets as if the user had specified multiple tag sets. -- For example, if the user said "1//3|s|pres|ind" and the categorization spec says {"has", "1"}, -- we want this to match, because "1//3|s|pres|ind" should be treated equivalently to two tag -- sets "1|s|pres|ind" and "3|s|pres|ind", and the former matches the categorization spec. -- (3) If the spec tag is a list (i.e. it originates from a multipart tag), we check that the -- tag set tag is also a list and is a superset of the spec tag. For example, if the categorization -- spec says {"has", "1//3"}, then the tag set tag must be a multipart tag that has both "1" and "3" -- in it. "1//3" works, as does "1//2//3". local function tag_set_tag_matches_spec_tag(tag_set_tag, spec_tag) if type(spec_tag) == "table" then if type(tag_set_tag) == "table" and is_subset_list(spec_tag, tag_set_tag) then return true end elseif type(tag_set_tag) == "table" then if contains(tag_set_tag, spec_tag) then return true end elseif tag_set_tag == spec_tag then return true end return false end -- Check that the current tag set matches the given spec tag. This means that any of the tags -- in the current tag set match, according to tag_set_tag_matches_spec_tag(); see above. If the -- current tag set contains only string tags (i.e. no multipart tags), and the spec tag is a -- string (i.e. not a multipart tag), this boils down to list containment, but it gets more -- complex when multipart tags are present. local function tag_set_matches_spec_tag(spec_tag, tag_set, lang) spec_tag = normalize_tag(spec_tag, lang) for _, tag_set_tag in ipairs(tag_set) do if tag_set_tag_matches_spec_tag(tag_set_tag, spec_tag) then return true end end return false end -- Check whether the given spec matches the current tag set. Two values are returned: -- (1) whether the spec matches the tag set; (2) the index of the category to add if -- the spec matches. local function check_condition(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas) if type(spec) == "boolean" then return spec elseif type(spec) ~= "table" then error("Wrong type of condition " .. spec .. ": " .. type(spec)) end local predicate = spec[1] if predicate == "has" then return tag_set_matches_spec_tag(spec[2], tag_set, lang), 3 elseif predicate == "hasall" then for _, tag in ipairs(spec[2]) do if not tag_set_matches_spec_tag(tag, tag_set, lang) then return false, 3 end end return true, 3 elseif predicate == "hasany" then for _, tag in ipairs(spec[2]) do if tag_set_matches_spec_tag(tag, tag_set, lang) then return true, 3 end end return false, 3 elseif predicate == "tags=" then local normalized_spec_tag_sets = normalize_tag_set(spec[2], lang) if #normalized_spec_tag_sets > 1 then error("Internal error: No support for conjoined shortcuts in category/label specs in " .. "[[Module:form of/cats]] when processing spec tag set " .. concat(spec[2], "|")) end local normalized_spec_tag_set = normalized_spec_tag_sets[1] -- Check for and disallow two-level multipart tags in the specs. FIXME: Remove this when we remove -- support for two-level multipart tags. for _, tag in ipairs(normalized_spec_tag_set) do if type(tag) == "table" then for _, subtag in ipairs(tag) do if type(subtag) == "table" then error("Internal error: No support for two-level multipart tags in category/label specs" .. "[[Module:form of/cats]] when processing spec tag set " .. concat(spec[2], "|")) end end end end -- Allow tags to be in different orders, and multipart tags to be in different orders. To handle this, -- we first check that both tag set tags and spec tags have the same length. If so, we sort the -- multipart tags in the tag set tags and spec tags, and then check that all tags in the spec tags are -- in the tag set tags. if #tag_set ~= #normalized_spec_tag_set then return false, 3 end local tag_set_tags = deep_copy(tag_set) for i=1,#tag_set_tags do if type(tag_set_tags[i]) == "table" then sort(tag_set_tags[i]) end if type(normalized_spec_tag_set[i]) == "table" then sort(normalized_spec_tag_set[i]) end end for i=1,#tag_set_tags do if not contains(tag_set_tags, normalized_spec_tag_set[i]) then return false, 3 end end return true, 3 elseif predicate == "p=" then return POS == normalize_pos(spec[2]), 3 elseif predicate == "pany" then for _, specpos in ipairs(spec[2]) do if POS == normalize_pos(specpos) then return true, 3 end end return false, 3 elseif predicate == "pexists" then return POS ~= nil, 2 elseif predicate == "not" then local condval = check_condition(spec[2], tag_set, normalized_tag_set, lang, POS, pagename, lemmas) return not condval, 3 elseif predicate == "and" then local condval = check_condition(spec[2], tag_set, normalized_tag_set, lang, POS, pagename, lemmas) if condval then condval = check_condition(spec[3], tag_set, normalized_tag_set, lang, POS, pagename, lemmas) end return condval, 4 elseif predicate == "or" then local condval = check_condition(spec[2], tag_set, normalized_tag_set, lang, POS, pagename, lemmas) if not condval then condval = check_condition(spec[3], tag_set, normalized_tag_set, lang, POS, pagename, lemmas) end return condval, 4 elseif predicate == "call" then return call_named_function(spec[2], "condition", normalized_tag_set, lang, POS, pagename, lemmas), 3 else error("Unrecognized predicate: " .. predicate) end end -- Process a given spec. This checks any conditions in the spec against the -- tag set, and insert any resulting categories into `categories`. Return value -- is true if the outermost condition evaluated to true and a category was inserted -- (this is used in {"cond" ...} conditions, which stop when a subcondition evaluates -- to true). local function process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) if not spec then return false elseif type(spec) == "string" then -- A category. Substitute POS request with user-specified part of speech or default. spec = spec:gsub("<<p=(.-)>>", function(default) return POS or normalize_pos(default) end) insert(categories, lang:getFullName() .. " " .. spec) return true elseif type(spec) == "table" and spec.labels then -- A label spec. for _, label in ipairs(spec.labels) do insert_if_not(labels, label) end return true elseif type(spec) ~= "table" then error("Wrong type of specification " .. spec .. ": " .. type(spec)) end local predicate = spec[1] if predicate == "multi" then for _, sp in iterate_from(2, ipairs(spec)) do -- Iterate from 2. process_spec(sp, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) end return true elseif predicate == "cond" then for _, sp in iterate_from(2, ipairs(spec)) do -- Iterate from 2. if process_spec(sp, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) then return true end end return false elseif predicate == "call" then return process_spec( call_named_function(spec[2], "spec", normalized_tag_set, lang, POS, pagename, lemmas), tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels ) else local condval, ifspec = check_condition(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas) if condval then process_spec(spec[ifspec], tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) return true else process_spec(spec[ifspec + 1], tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) -- FIXME: Are we sure this is correct? return false end end end --[==[ Given a normalized tag set (i.e. as output by {normalize_tag_set()}; all tags are in canonical form, multipart tags are represented as lists, and two-level multipart tags as lists of lists), fetch the associated categories and labels. Return two values, a list of categories and a list of labels. `lang` is the language of term represented by the tag set, and `POS` is the user-provided part of speech (which may be {nil}).]==] function export.fetch_categories_and_labels(normalized_tag_set, lang, POS, pagename, lemmas) local categories, labels = {}, {} POS = normalize_pos(POS) -- First split any two-level multipart tags into multiple sets, to make our life easier. for _, tag_set in ipairs(split_two_level_multipart_tag_set(normalized_tag_set)) do local langcode = lang:getCode() local langspecs = (m_cats_data or get_m_cats_data())[langcode] if langspecs then for _, spec in ipairs(langspecs) do process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) end end local full_code = lang:getFullCode() if full_code ~= langcode then local langspecs = (m_cats_data or get_m_cats_data())[full_code] if langspecs then for _, spec in ipairs(langspecs) do process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) end end end if full_code ~= "und" then local langspecs = (m_cats_data or get_m_cats_data())["und"] if langspecs then for _, spec in ipairs(langspecs) do process_spec(spec, tag_set, normalized_tag_set, lang, POS, pagename, lemmas, categories, labels) end end end end return categories, labels end fetch_categories_and_labels = export.fetch_categories_and_labels local function format_labels(labels, data, notext) if labels and #labels > 0 then return show_labels{ labels = labels, lang = data.lang, sort = data.sort, nocat = data.nocat } .. (notext and (data.pretext or "") == "" and "" or " ") else return "" end end --[==[ Implementation of templates that display inflection tags, such as the general {{tl|inflection of}}, semi-specific variants such as {{tl|participle of}}, and specific variants such as {{tl|past participle of}}. `data` contains all the information controlling the display, with the following fields: * `.lang`: ('''''required''''') Language to use when looking up language-specific inflection tags, categories and labels, and for displaying categories and labels. * `.tags`: ('''''required''' unless `.tag_sets` is given'') List of non-canonicalized inflection tags. Multiple tag sets can be indicated by a {";"} as one of the tags, and tag-set properties may be attached to the last tag of a tag set. The tags themselves may come directly from the user (as in {{tl|inflection of}}); come partly from the user (as in {{tl|participle of}}, which adds the tag `part` to user-specified inflection tags); or be entirely specified by the template (as in {{tl|past participle of}}). * `.tag_sets`: ('''''required''' unless `.tags` is given'') List of non-canonicalized tag sets and associated per-tag-set properties. Each element of the list is an object of the form { {tags = {"TAG", "TAG", ...}, labels = {"LABEL", "LABEL", ...}}. If `.tag_sets` is specified, `.tags` should not be given and vice-versa. Specifying `.tag_sets` in place of tags allowed per-tag set labels to be specified; otherwise, there is no advantage. [[Module:pt-gl-inflections]] uses this functionality to supply labels like {"Brazil"} and {"Portugal"} associated with specific tag sets. * `.lemmas`: ('''''recommended''''') List of objects describing the lemma(s) of which the term in question is a non-lemma form. These are passed directly to {full_link()} in [[Module:links]]. Each object should have at minimum a `.lang` field containing the language of the lemma and a `.term` field containing the lemma itself. Each object is formatted using {full_link()} and then if there are more than one, they are joined using {serialCommaJoin()} in [[Module:table]]. Alternatively, `.lemmas` can be a string, which is displayed directly. If omitted entirely, no lemma links are shown and the connecting "of" is also omitted. * `.lemma_face`: ('''''recommended''''') "Face" to use when displaying the lemma objects. Usually should be set to {"term"}. * `.POS`: ('''''recommended''''') Categorizing part-of-speech tag. Comes from the {{para|p}} or {{para|POS}} argument of {{tl|inflection of}}. * `.pagename`: Page name of "current" page or nil to use the actual page title; for testing purposes. * `.conj`: Conjunction or separator to use when joining multiple lemma objects. Defaults to {"and"}. * `.enclitics`: List of enclitics to display after the lemmas, in parens. * `.enclitic_conj`: Conjunction or separator to use when joining multiple enclitics. Defaults to {"and"}. * `.no_format_categories`: If true, don't format the categories derived from the inflection tags; just return them. * `.sort`: Sort key for formatted categories. Ignored when `.no_format_categories` = {true}. * `.nocat`: Suppress computation of categories (even if `.no_format_categories` is not given). * `.notext`: Disable display of all tag text and `inflection of` text. (FIXME: Maybe not implemented correctly.) * `.nolink`: Suppress linking of terms in inflection tags. * `.capfirst`: Capitalize the first word displayed. * `.pretext`: Additional text to display before the inflection tags, but after any top-level labels. * `.posttext`: Additional text to display after the lemma links. * `.text_classes`: CSS classes used to wrap the tag text and lemma links. Default is {"form-of-definition use-with-mention"}. * `.lemma_classes`: Additional CSS classes used to wrap the lemma links. Default is {"form-of-definition-link"}. * `.joiner`: Override the joiner (normally a slash) used to join multipart tags. You should normally not specify this. * `.nowrap`: Do not wrap the form-of definitions in a span, unless `.text_classes` is specified. * `.ok_to_destructively_modify`: If set, data structures (including the nested lemma structures) can be modified in-place to save memory; otherwise they will be copied before modifying. A typical call might look like this (for {{m+|es|amo}}): { local lang = require("Module:languages").getByCode("es") local lemma_obj = { lang = lang, term = "amar", } return m_form_of.tagged_inflections({ lang = lang, tags = {"1", "s", "pres", "ind"}, lemmas = {lemma_obj}, lemma_face = "term", POS = "verb" }) } Normally, one value is returned, the formatted text, which has appended to it the formatted categories derived from the tag-set-related categories generated by the specs in [Module:form of/cats]]. To suppress this, set `data.no_format_categories` = {true}, in which case two values are returned, the formatted text without any formatted categories appended and a list of the categories to be formatted. NOTE: There are two sets of categories that may be generated: (1) categories derived directly from the tag sets, as specified in [[Module:form of/cats]]; (2) categories derived from tag-set labels, either (a) set explicitly by the caller in `data.tag_sets`, (b) specified by the user using `<lb:...>` attached to the last tag in a tag set, or (c) specified in [[Module:form of/cats]]. The second type (label-related categories) are currently not returned in the second return value of {tagged_inflections()}, and are currently inserted into the output text even if `data.no_format_categories` is set to {true}; but they can be suppressed by setting `data.nocat` = {true} (which also suppresses the first type of categories, those derived directly from tag sets, even if `data.no_format_categories` is set to {true}).]==] function export.tagged_inflections(data) if not data.tags and not data.tag_sets then error("First argument must be a table of arguments, and `.tags` or `.tag_sets` must be specified") end if data.tags and data.tag_sets then error("Both `.tags` and `.tag_sets` cannot be specified") end local tag_sets = data.tag_sets if not tag_sets then tag_sets = split_tag_set(data.tags) for i, tag_set in ipairs(tag_sets) do tag_sets[i] = parse_tag_set_properties(tag_set) end end local inflections = {} local categories = {} for _, tag_set in ipairs(tag_sets) do local normalized_tag_sets = normalize_tag_set(tag_set.tags, data.lang, "do-track") for _, normalized_tag_set in ipairs(normalized_tag_sets) do local this_categories, this_labels = fetch_categories_and_labels(normalized_tag_set, data.lang, data.POS, data.pagename, type(data.lemmas) == "table" and data.lemmas or nil) if not data.nocat then extend(categories, this_categories) end local cur_infl = get_tag_set_display_form(normalized_tag_set, data.lang, data.joiner, data.nolink) if #cur_infl > 0 then if tag_set.labels then this_labels = append(tag_set.labels, this_labels) end insert(inflections, {infl_text = cur_infl, labels = this_labels}) end end end local overall_labels, need_per_tag_set_labels for _, inflection in ipairs(inflections) do if overall_labels == nil then overall_labels = inflection.labels elseif not deep_equals(overall_labels, inflection.labels) then need_per_tag_set_labels = true overall_labels = nil break end end if not need_per_tag_set_labels then for _, inflection in ipairs(inflections) do inflection.labels = nil end end local format_data = shallow_copy(data) local of_text = data.lemmas and " dari" or "" local formatted_text, this_categories if #inflections == 1 then if need_per_tag_set_labels then error("Internal error: need_per_tag_set_labels should not be set with one inflection") end format_data.text = format_labels(overall_labels, data, data.notext) .. (data.pretext or "") .. (data.notext and "" or ((data.capfirst and ucfirst(inflections[1].infl_text) or inflections[1].infl_text) .. of_text)) formatted_text, this_categories = format_form_of(format_data) else format_data.text = format_labels(overall_labels, data, data.notext) .. (data.pretext or "") .. (data.notext and "" or ((data.capfirst and "Infleksi" or "infleksi") .. of_text)) format_data.posttext = (data.posttext or "") .. ":" local link link, this_categories = format_form_of(format_data) local text_classes = data.text_classes if text_classes == nil and not data.nowrap then text_classes = "form-of-definition use-with-mention" end for i, inflection in ipairs(inflections) do inflections[i] = "\n## " .. format_labels(inflection.labels, data, false) .. wrap_in_span(inflection.infl_text, text_classes) end formatted_text = link .. concat(inflections) end if this_categories[1] then extend(categories, this_categories) end if not data.no_format_categories then if categories[1] then formatted_text = formatted_text .. format_categories(categories, data.lang, data.sort, nil, export.force_cat) end return formatted_text end return formatted_text, categories end function export.dump_form_of_data(frame) local data = { require(form_of_data1_module), require(form_of_data2_module) } return require(json_module).toJSON(data) end export.form_of_cats_module = form_of_cats_module export.form_of_data1_module = form_of_data1_module export.form_of_data2_module = form_of_data2_module export.form_of_functions_module = form_of_functions_module export.form_of_lang_data_module_prefix = form_of_lang_data_module_prefix export.headword_data_module = headword_data_module -- so all form-of modules stay in sync return export 4isl3uin2odblchf64hk1c7plj1ewmd Modul:form of/templates 828 37243 119312 2026-06-19T09:31:15Z Ardzun 48 ←Mambuek laman baisi "local export = {} local debug_track_module = "Module:debug/track" local form_of_module = "Module:form of" local functions_module = "Module:fun" local headword_data_module = "Module:headword/data" local languages_module = "Module:languages" local load_module = "Module:load" local parameters_module = "Module:parameters" local parameter_utilities_module = "Module:parameter utilities" local parse_interface_module = "Module:parse interface" local string_utilities_module..." 119312 Scribunto text/plain local export = {} local debug_track_module = "Module:debug/track" local form_of_module = "Module:form of" local functions_module = "Module:fun" local headword_data_module = "Module:headword/data" local languages_module = "Module:languages" local load_module = "Module:load" local parameters_module = "Module:parameters" local parameter_utilities_module = "Module:parameter utilities" local parse_interface_module = "Module:parse interface" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local utilities_module = "Module:utilities" local insert = table.insert local ipairs = ipairs local pairs = pairs local require = require local boolean_param = {type = "boolean"} -- FIXME: Finish [[Module:format utilities]]. -- local allowed_conj_set = require(format_utilities_module).allowed_conj_set_for_join_segments local allowed_conj_set = {["and"] = true, ["or"] = true, ["and/or"] = true} --[==[ Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==] local function debug_track(...) debug_track = require(debug_track_module) return debug_track(...) end local function decode_entities(...) decode_entities = require(string_utilities_module).decode_entities return decode_entities(...) end local function extend(...) extend = require(table_module).extend return extend(...) end local function format_categories(...) format_categories = require(utilities_module).format_categories return format_categories(...) end local function format_form_of(...) format_form_of = require(form_of_module).format_form_of return format_form_of(...) end local function get_lang(...) get_lang = require(languages_module).getByCode return get_lang(...) end local function gsplit(...) gsplit = require(string_utilities_module).gsplit return gsplit(...) end local function is_callable(...) is_callable = require(functions_module).is_callable return is_callable(...) end local function load_data(...) load_data = require(load_module).load_data return load_data(...) end local function parse_inline_modifiers(...) parse_inline_modifiers = require(parse_interface_module).parse_inline_modifiers return parse_inline_modifiers(...) end local function pattern_escape(...) pattern_escape = require(string_utilities_module).pattern_escape return pattern_escape(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function safe_load_data(...) safe_load_data = require(load_module).safe_load_data return safe_load_data(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function split_tag_set(...) split_tag_set = require(form_of_module).split_tag_set return split_tag_set(...) end local function tagged_inflections(...) tagged_inflections = require(form_of_module).tagged_inflections return tagged_inflections(...) end local function trim(...) trim = require(string_utilities_module).trim return trim(...) end local function ucfirst(...) ucfirst = require(string_utilities_module).ucfirst return ucfirst(...) end --[==[ Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==] local force_cat local function get_force_cat() force_cat, get_force_cat = require(form_of_module).force_cat, nil return force_cat end local m_form_of_pos local function get_m_form_of_pos() m_form_of_pos, get_m_form_of_pos = load_data(headword_data_module).pos_aliases, nil return m_form_of_pos end local module_prefix local function get_module_prefix() module_prefix, get_module_prefix = require(form_of_module).form_of_lang_data_module_prefix, nil return module_prefix end --[==[ intro: This module contains code that directly implements {{tl|form of}}, {{tl|inflection of}}, and the various other [[:Category:Form-of templates|form-of templates]]. It is meant to be called directly from templates. See also [[Module:form of]], which contains the underlying implementing code and is meant to be called from other modules. ]==] -- Add tracking category for PAGE when called from TEMPLATE. The tracking category linked to is -- [[Wiktionary:Tracking/form of/TEMPLATE/PAGE]]. If TEMPLATE is omitted, the tracking category is of the form -- [[Wiktionary:Tracking/form of/PAGE]]. local function track(page, template) debug_track("form of/" .. (template and template .. "/" or "") .. page) end local function get_common_template_params() return { -- Named params not controlling link display ["cat"] = {list = true, sublist = "comma without whitespace", flatten = true}, ["notext"] = boolean_param, ["sort"] = true, ["enclitic"] = true, -- FIXME! The following should only be available when withcap=1 in invocation args or when withencap=1 and the -- language is "en". Before doing that, need to remove all uses of nocap= in other circumstances. ["nocap"] = boolean_param, ["addl"] = true, -- additional text to display at the end, before the closing </span> ["pagename"] = true, -- for testing, etc. } end -- Split TAGSPECS (inflection tag specifications) on SPLIT_REGEX, which -- may be nil for no splitting. local function split_inflection_tags(tagspecs, split_regex) if not split_regex then return tagspecs end local inflection_tags = {} for _, tagspec in ipairs(tagspecs) do for tag in gsplit(tagspec, split_regex) do insert(inflection_tags, tag) end end return inflection_tags end local function parse_terms_with_inline_modifiers(paramname, val, param_mods, lang) local function generate_obj(term) return {lang = lang, term = decode_entities(term)} end return parse_inline_modifiers(val, { paramname = paramname, param_mods = param_mods, generate_obj = generate_obj, splitchar = ",", outer_container = {}, }) end -- Need to do what [[Module:parameters]] does to string arguments from parent_args as we're running this -- before calling [[Module:parameters]] on parent_args. local function ine(arg) if not arg then return nil end arg = trim(arg) return arg ~= "" and arg or nil end local function add_base_lemma_params(parent_args, iargs, params, compat) -- Check the language-specific data for additional base lemma params. But if there's no language-specific data, -- attempt any parent varieties as well (i.e. superordinate varieties). local lang = get_lang(ine(parent_args[compat and "lang" or 1]) or ine(iargs.lang) or "und", nil, true) while lang do local langdata = safe_load_data((module_prefix or get_module_prefix()) .. lang:getCode()) if langdata then local base_lemma_params = langdata.base_lemma_params if base_lemma_params then for _, param in ipairs(base_lemma_params) do params[param.param] = true end return base_lemma_params end end lang = lang:getParent() end end --[=[ Modify `params` in-place by adding parameters that control the link to the main entry and any base lemmas. `term_param` is the number of the param specifying the main entry itself; `term_param` + 1 will be the display text, and `term_param` + 2 will be the gloss, unless `no_numbered_gloss` is given. The base lemma parameters are determined by attempting to load language-specific data for the language of the page; this comes from |lang= if `compat` is given, else from |1=. ]=] local function add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss) local base_lemma_params if not iargs.nolink and not iargs.linktext then -- Numbered params controlling link display if iargs.with_multiple_parts then params[term_param] = {list = true, allow_holes = true} else params[term_param + 1] = {alias_of = "alt"} if not no_numbered_gloss then params[term_param + 2] = {alias_of = "t"} end params[term_param] = true end base_lemma_params = add_base_lemma_params(parent_args, iargs, params, compat) end return base_lemma_params end local function handle_withdot_withcap(iargs, params) local ignored_tracked_params = {} if iargs.withdot then params.dot = true params.nodot = boolean_param end if iargs.withcap and iargs.withencap then error("Internal error: Can specify only one of withcap= and withencap=") end if not iargs.withcap then params.cap = boolean_param ignored_tracked_params.nocap = iargs.withencap and "non-english" or "always" end return ignored_tracked_params end --[=[ Construct and return the full definition line for a form-of-type template invocation. `data` is an object with the following fields: * `template`: Approximate template name, for debug tracking; * `iargs`: processed invocation arguments; * `parent_args`: raw parent args from `frame:getParent().args`; * `params`: partially constructed params structure of the sort passed to `process()` in [[Module:parameters]], but without any link params; * `ignored_tracked_params`: params that are ignored but should be tracked, to be eventually removed; * `term_param`: the parent argument specifying the main entry; * `compat`: true if the language code is found in args.lang instead of args[1]; * `base_lemma_params`: if non-nil, a list of base lemma param objects of the sort stored in the language-specific data; * `do_form_of`: a function of one argument, `lemma_data`, that returns the actual definition-line text and any language-specific categories. See below. This function does several things: # If link parameters are called for (neither `iargs.nolink` nor `iargs.linktext` are given), augment the `params` structure with separate link parameters. # Modify the parent args as appropriate if invocation arguments def= or ignore= are given. # Parse the parent args, both for separate parameter properties and inline modifiers on the term parameter (which may consist of multiple comma-separated terms). # Compute categories to add to the page, including language-specific categories and any categories requested by the invocation or parent args. # Parse enclitic and extra base lemma parameters. # Construct the actual text using `do_form_of`. # Add a terminating period/dot as appropriate, along with the formatted categories. `do_form_of` takes one argument, `lemma_data`, which looks like this: { lang = LANG, args = {ARG = VALUE, ARG = VALUE, ...}, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...}, enclitics = {ENCLITIC_OBJ, ENCLITIC_OBJ, ...}, base_lemmas = {BASE_LEMMA_OBJ, BASE_LEMMA_OBJ, ...}, categories = {"CATEGORY", "CATEGORY", ...}, posttext = "POSTTEXT" or nil, } where * LANG is the language code; * ARGS is the parsed arguments, based on what the user specified; * LEMMAS is a sequence of objects specifying the main entries/lemmas, as passed to full_link in [[Module:links]]; however, if the invocation argument linktext= is given, it will be a string consisting of that text, and if the invocation argument nolink= is given, it will be nil; * ENCLITICS is nil or a sequence of objects specifying the enclitics, as passed to full_link in [[Module:links]]; * BASE_LEMMA_OBJ is a sequence of objects specifying the base lemma(s), which are used when the lemma is itself a form of another lemma (the base lemma), e.g. a comparative, superlative or participle; each object is of the form { paramobj = PARAM_OBJ, lemmas = {LEMMA_OBJ, LEMMA_OBJ, ...} } where PARAM_OBJ describes the properties of the base lemma parameter (i.e. the relationship between the intermediate and base lemmas) and LEMMA_OBJ is of the same format of ENCLITIC_OBJ, i.e. an object suitable to be passed to full_link in [[Module:links]]; PARAM_OBJ is of the format { param = "PARAM", tags = {"TAG", "TAG", ...} } where PARAM is the name of the parameter to {{inflection of}} etc. that holds the base lemma(s) of the specified relationship and the tags describe the relationship, such as {"comd"} or {"past", "part"}; * CATEGORIES is the categories to add the page to (consisting of any categories specified in the invocation or parent args and any tracking categories, but not any additional lang-specific categories that may be added by {{inflection of}} or similar templates); * POSTTEXT is text to display at the end of the form-of text, before the final </span> (or at the end of the first line, before the colon, in a multiline {{infl of}} call). `do_form_of` should return two arguments: (1) The actual definition-line text, marked up appropriately with <span>...</span> but without any terminating period/dot. (2) Any extra categories to add the page to (other than those that can be derived from parameters specified to the invocation or parent arguments, which will automatically be added to the page). ]=] local function construct_form_of_text(data) local template, iargs, parent_args, params, no_numbered_gloss, do_form_of = data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.do_form_of local term_param = iargs.term_param local compat = iargs.lang or parent_args.lang term_param = term_param or compat and 1 or 2 -- Numbered params params[compat and "lang" or 1] = { required = not iargs.lang, type = "language", default = iargs.lang or "und" } -- Error to catch most uses of old-style parameters for {{contraction of}}. (FIXME: Remove eventually.) if iargs.with_multiple_parts then if ine(parent_args[term_param + 2]) and not ine(parent_args[term_param + 1]) and not ine(parent_args.tr2) and not ine(parent_args.ts2) and not ine(parent_args.t2) and not ine(parent_args.gloss2) and not ine(parent_args.g2) and not ine(parent_args.alt2) then error(("You specified a term in %s= and not one in %s=. You probably meant to use t= to specify a gloss instead. " .. "If you intended to specify two terms, put the second term in %s=."):format(term_param + 2, term_param + 1, term_param + 1)) end if not ine(parent_args[term_param + 1]) and not ine(parent_args.alt2) and not ine(parent_args.tr2) and not ine(parent_args.ts2) and ine(parent_args.g2) then error(("You specified a gender in g2= but no term in %s=. You were probably trying to specify two genders for " .. "a single term. To do that, put both genders in g=, comma-separated."):format(term_param + 1)) end end local base_lemma_params = add_link_and_base_lemma_params(iargs, parent_args, params, term_param, compat, no_numbered_gloss) local ignored_tracked_params = handle_withdot_withcap(iargs, params) --[=[ Process parent arguments. This is similar to the following: require("Module:parameters").process(parent_args, params) but in addition it does the following: (1) Supplies default values for unspecified parent arguments as specified in DEFAULTS, which consist of specs of the form "ARG=VALUE". These are added to the parent arguments prior to processing, so boolean and number parameters will process the value appropriately. (2) Removes parent arguments specified in IGNORESPECS, which consist either of bare argument names to remove, or list-argument names to remove of the form "ARG:list". (3) Tracks the use of any parent arguments specified in TRACKED_PARAMS, which is a set where the keys are arguments as they exist after processing (hence numeric arguments should be numbers, not strings) and the values should be boolean true. ]=]-- local defaults = iargs.def local ignorespecs = iargs.ignore if defaults[1] or ignorespecs[1] then local new_parent_args = {} for _, default in ipairs(defaults) do local defparam, defval = default:match("^(.-)=(.*)$") if not defparam then error("Bad default spec " .. default) end new_parent_args[defparam] = defval end local params_to_ignore = {} local numbered_list_params_to_ignore = {} local named_list_params_to_ignore = {} for _, ignorespec in ipairs(ignorespecs) do for ignore in gsplit(ignorespec, ",") do local param = ignore:match("^(.*):list$") if param then if param:match("^%d+$") then insert(numbered_list_params_to_ignore, tonumber(param)) else insert(named_list_params_to_ignore, "^" .. pattern_escape(param) .. "%d*$") end else if ignore:match("^%d+$") then ignore = tonumber(ignore) end params_to_ignore[ignore] = true end end end for k, v in pairs(parent_args) do if not params_to_ignore[k] then local ignore_me = false if type(k) == "number" then for _, lparam in ipairs(numbered_list_params_to_ignore) do if k >= lparam then ignore_me = true break end end else for _, lparam in ipairs(named_list_params_to_ignore) do if k:match(lparam) then ignore_me = true break end end end if not ignore_me then new_parent_args[k] = v end end end parent_args = new_parent_args end local param_mods_with_conj, param_mods_without_conj local function get_param_mods(with_conj) if with_conj then if not param_mods_with_conj then param_mods_with_conj = require(parameter_utilities_module).construct_param_mods { {group = {"link", "q", "l", "ref"}}, {param = "conj", set = allowed_conj_set, overall = true}, } end return param_mods_with_conj else if not param_mods_without_conj then param_mods_without_conj = require(parameter_utilities_module).construct_param_mods { {group = {"link", "q", "l", "ref"}}, -- Override lit= to have a separate overall value {param = "lit", separate_no_index = true}, } end return param_mods_without_conj end end local terms, args if iargs.nolink or iargs.linktext then args = process_params(parent_args, params) else local m_param_utils = require(parameter_utilities_module) if iargs.with_multiple_parts then terms, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params { params = params, param_mods = get_param_mods(false), raw_args = parent_args, termarg = term_param, track_module = "form of" .. (template and "/" .. template or ""), lang = compat and "lang" or 1, sc = "sc.default", parse_lang_prefix = true, default_separator = " +&lrm; ", special_separators = {[";"] = " or "}, } else terms, args = m_param_utils.parse_term_with_inline_modifiers_and_separate_params { params = params, param_mods = get_param_mods("with conj"), raw_args = parent_args, termarg = term_param, track_module = "form of" .. (template and "/" .. template or ""), lang = compat and "lang" or 1, sc = "sc", parse_lang_prefix = true, make_separate_g_into_list = true, splitchar = ",", subitem_param_handling = "last", } end end local lang = args[compat and "lang" or 1] -- Tracking for certain user-specified params. This is generally used for -- parameters that we accept but ignore, so that we can eventually remove -- all uses of these params and stop accepting them. if ignored_tracked_params then for ignored_tracked_param, condition in pairs(ignored_tracked_params) do if parent_args[ignored_tracked_param] and (condition ~= "non-english" or lang:getCode() ~= "en") then track("arg/" .. ignored_tracked_param, template) track("arg/" .. ignored_tracked_param) end end end -- Determine categories for the page, including tracking categories local categories = {} if not args.nocat then for _, cat in ipairs(iargs.cat) do insert(categories, lang:getCode() .. ":" .. cat) end end for _, cat in ipairs(args.cat) do insert(categories, lang:getCode() .. ":" .. cat) end -- Format the link, preceding text and categories local function add_term_tracking_categories(term) -- add tracking category if term is same as page title if term and mw.loadData("Module:headword/data").pagename == lang:stripDiacritics(term) then insert(categories, "Forms linking to themselves") end -- maybe add tracking category if primary entry doesn't exist (this is an -- expensive call so we don't do it by default) if iargs.noprimaryentrycat and term and mw.title.getCurrentTitle().nsText == "" and not mw.title.new(term):getContent() then insert(categories, lang:getFullName() .. " " .. iargs.noprimaryentrycat) end end local lemmas if iargs.nolink then lemmas = nil elseif iargs.linktext then lemmas = iargs.linktext else if iargs.with_multiple_parts then lemmas = terms else lemmas = terms.terms end if not lemmas[1] then if mw.title.getCurrentTitle().nsText == "Templat" then lemmas[1] = { lang = lang, term = "term" } else error("No linked-to term specified") end end for _, termobj in ipairs(lemmas) do if termobj.term then add_term_tracking_categories(termobj.term) end -- NOTE: Formerly, template arg sc= overrode inline modifier <sc:...>, which seems backwards, so I've -- changed it. Hopefully nothing depended on the old behavior. end end local enclitics, enclitic_conj if args.enclitic then local enclitics_obj = parse_terms_with_inline_modifiers("enclitic", args.enclitic, get_param_mods("with conj"), lang) enclitics = enclitics_obj.terms enclitic_conj = enclitics_obj.conj end local base_lemmas = {} if base_lemma_params then for _, base_lemma_param_obj in ipairs(base_lemma_params) do local param = base_lemma_param_obj.param if args[param] then local base_lemmas_obj = parse_terms_with_inline_modifiers(param, args[param], get_param_mods("with conj"), lang) insert(base_lemmas, { paramobj = base_lemma_param_obj, lemmas = base_lemmas_obj.terms, conj = base_lemmas_obj.conj, }) end end end local posttext = iargs.posttext local addl = args.addl if addl then posttext = posttext or "" if addl:find("^[;:]") then posttext = posttext .. addl elseif addl:find("^_") then posttext = posttext .. " " .. addl:sub(2) else posttext = posttext .. ", " .. addl end end local conj if iargs.with_multiple_parts then conj = false -- signals to use 'separator' field else conj = terms and terms.conj or iargs.conj end local lemma_data = { lang = lang, args = args, lemmas = lemmas, conj = conj, enclitics = enclitics, enclitic_conj = enclitic_conj, base_lemmas = base_lemmas, categories = categories, posttext = posttext, lit = iargs.with_multiple_parts and args.lit.default or nil, } local form_of_text, lang_cats = do_form_of(lemma_data) extend(lemma_data.categories, lang_cats) local text = form_of_text .. ( args.nodot and "" or args.dot or iargs.withdot and "." or "" ) if not lemma_data.categories[1] then return text end return text .. format_categories(lemma_data.categories, lemma_data.lang, args.sort, -- If lemma_is_sort_key is given, supply the first lemma term as the sort base if possible. If sort= is given, -- it will override the base; otherwise, the base will be converted appropriately to a sort key using the -- same algorithm applied to pagenames. iargs.lemma_is_sort_key and type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].term, -- Supply the first lemma's script for sort key computation. force_cat or get_force_cat(), type(lemma_data.lemmas) == "table" and lemma_data.lemmas[1].sc) end -- Invocation parameters shared between form_of_t(), tagged_form_of_t() and inflection_of_t(). `calling_func` is the -- invoking function ("form_of_t", "tagged_form_of_t" or "inflection_of_t"), for handling parameters shared by two but -- not all three invoking functions. local function get_common_invocation_params(calling_func) local iparams = { ["term_param"] = {type = "number"}, ["lang"] = true, -- To be used as the default code in params. ["sc"] = {type = "script"}, ["cat"] = {list = true, sublist = "comma without whitespace", flatten = true}, ["ignore"] = {list = true}, ["def"] = {list = true}, ["conj"] = {set = allowed_conj_set, default = "and"}, ["withcap"] = boolean_param, ["withencap"] = boolean_param, ["withdot"] = boolean_param, ["nolink"] = boolean_param, ["linktext"] = true, ["posttext"] = true, ["noprimaryentrycat"] = true, ["lemma_is_sort_key"] = true, } if calling_func ~= "inflection_of_t" then iparams.with_multiple_parts = boolean_param end return iparams end local function should_ucfirst_text(args, iargs, lang) local code = lang:getCode() return args.cap or (iargs.withcap or iargs.withencap and code == "en" or code == "mul") and not args.nocap end --[==[ Function that implements {{tl|form of}} and the various more specific form-of templates (but not {{tl|inflection of}} or templates that take tagged inflection parameters). Invocation params: ; {{para|1|req=1}} : Text to display before the link. ; {{para|term_param}} : Numbered param holding the term linked to. Other numbered params come after. Defaults to 1 if invocation or template param {{para|lang}} is present, otherwise 2. ; {{para|with_multiple_parts|1}} : If specified, higher numbered parameters above the numbered param in {{para|term_param}} specify additional parts out of which the term was constructed, for use by templates like {{tl|contraction of}}. (If not specified, the parameter at <code><var>term_param</var> + 1</code> is the display form, same as {{para|alt}}, and the parameter at at <code><var>term_param</var> + 2</code> is the gloss, same as {{para|t}}.) ; {{para|lang}} : Default language code for language-specific templates. If specified, no language code needs to be specified, and if specified it needs to be set using {{para|lang}}, not {{para|1}}. ; {{para|sc}} : Default script code for language-specific templates. The script code can still be overridden using template param {{para|sc}}. ; {{para|cat}}, {{para|cat2}}, ...: : Categories to place the page into. The language name will automatically be prepended. Note that there is also a template param {{para|cat}} to specify categories at the template level. Use of {{para|nocat}} disables categorization of categories specified using invocation param {{para|cat}}, but not using template param {{para|cat}}. A single param can specify multiple comma-separated categories if no space follows the comma. ; {{para|ignore}}, {{para|ignore2}}, ...: : One or more template params to silently accept and ignore. Useful e.g. when the template takes additional parameters such as {{para|from}} or {{para|POS}}. Each value is a comma-separated list of either bare parameter names or specifications of the form `PARAM:list` to specify that the parameter is a list parameter. ; {{para|def}}, {{para|def2}}, ...: : One or more default values to supply for template args. For example, specifying {{para|def|2=tr=-}} causes the default for template param {{para|tr}} to be `-`. Actual template params override these defaults. ; {{para|withcap|1}} : Capitalize the first character of the text preceding the link, unless template param {{para|nocap}} is given. ; {{para|withencap|1}} : Capitalize the first character of the text preceding the link if the language is English and template param {{para|nocap}} is not given. ; {{para|withdot|1}} : Add a final period after the link, unless template param {{para|nodot}} is given to suppress the period, or {{para|dot}} is given to specify an alternative punctuation character. ; {{para|nolink|1}} : Suppress the display of the link. If specified, none of the template params that control the link ({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}}, {{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}. {{para|linktext}} : Override the display of the link with the specified text. This is useful if a custom template is available to format the link (e.g. in Hebrew, Chinese and Japanese). If specified, none of the template params that control the link ({{para|<var>term_param</var>}}, {{para|<var>term_param</var> + 1}}, {{para|<var>term_param</var> + 2}}, {{para|t}}, {{para|gloss}}, {{para|sc}}, {{para|tr}}, {{para|ts}}, {{para|pos}}, {{para|g}}, {{para|id}}, {{para|lit}}) will be available. If the calling template uses any of these parameters, they must be ignored using {{para|ignore}}. ; {{para|posttext}} : Additional text to display directly after the formatted link, before any terminating period/dot and inside of `<span class='use-with-mention'>`. ; {{para|noprimaryentrycat}} : Category to add the page to if the primary entry linked to doesn't exist. The language name will automatically be prepended. ; {{para|lemma_is_sort_key|1}} : If the user didn't specify a sort key, use the lemma as the sort key (instead of the page itself). ]==] function export.form_of_t(frame) local iparams = get_common_invocation_params("form_of_t") iparams[1] = {required = true} local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() if next(iargs.cat) then params.nocat = boolean_param end return construct_form_of_text { template = "form-of-t", iargs = iargs, parent_args = parent_args, params = params, do_form_of = function(lemma_data) local args = lemma_data.args local text if args.notext then text = "" else text = iargs[1] if should_ucfirst_text(args, iargs, lemma_data.lang) then text = ucfirst(text) end end -- This returns two values, which we pass up to the caller. return format_form_of { lang = lemma_data.lang, text = text, lemmas = lemma_data.lemmas, conj = lemma_data.conj, enclitics = lemma_data.enclitics, base_lemmas = lemma_data.base_lemmas, lemma_face = "term", lit = lemma_data.lit, posttext = lemma_data.posttext } end } end --[=[ Construct and return the full definition line for a form-of-type template invocation that is based on inflection tags. This is a wrapper around construct_form_of_text() and takes the following arguments: processed invocation arguments IARGS, processed parent arguments ARGS, TERM_PARAM (the parent argument specifying the main entry), COMPAT (true if the language code is found in args.lang instead of args[1]), and TAGS, the list of (non-canonicalized) inflection tags. It returns that actual definition-line text including terminating period/full-stop, formatted categories, etc. and should be directly returned as the template function's return value. ]=] local function construct_tagged_form_of_text(data) local template, iargs, parent_args, params, no_numbered_gloss, tags = data.template, data.iargs, data.parent_args, data.params, data.no_numbered_gloss, data.tags -- Named params not controlling link display -- Always included because lang-specific categories may be added params.nocat = boolean_param params.p = true params.POS = {alias_of = "p"} return construct_form_of_text { template = template, iargs = iargs, parent_args = parent_args, params = params, no_numbered_gloss = no_numbered_gloss, do_form_of = function(lemma_data) local args = lemma_data.args if is_callable(tags) then tags = tags(args) end -- NOTE: tagged_inflections returns two values, so we do too. return tagged_inflections { lang = lemma_data.lang, tags = tags, lemmas = lemma_data.lemmas, conj = lemma_data.conj, enclitics = lemma_data.enclitics, enclitic_conj = lemma_data.enclitic_conj, base_lemmas = lemma_data.base_lemmas, lemma_face = "term", POS = args.p, pagename = args.pagename, -- Set no_format_categories because we do it ourselves in construct_form_of_text(). no_format_categories = true, nocat = args.nocat, notext = args.notext, capfirst = should_ucfirst_text(args, iargs, lemma_data.lang), posttext = lemma_data.posttext, } end } end --[==[ Function that implements form-of templates that are defined by specific tagged inflections (typically a template referring to a non-lemma inflection, such as {{tl|plural of}}). This works exactly like {form_of_t()} except that the "form of" text displayed before the link is based off of a pre-specified set of inflection tags (which will be appropriately linked to the glossary) instead of arbitrary text. From the user's perspective, there is no difference between templates implemented using {form_of_t()} and {tagged_form_of_t()}; they accept exactly the same parameters and work the same. See also {inflection_of_t()} below, which is intended for templates with user-specified inflection tags. Invocation params: ; {{para|1|req=1}}, {{para|2}}, ... : One or more inflection tags describing the inflection in question. ; {{para|split_tags}} : If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single argument, simplifying template code. ; {{para|term_param}} ; {{para|with_multiple_parts|1}} ; {{para|lang}} ; {{para|sc}} ; {{para|cat}}, {{para|cat2}}, ... ; {{para|ignore}}, {{para|ignore2}}, ... ; {{para|def}}, {{para|def2}}, ... ; {{para|withcap|1}} ; {{para|withencap|1}} ; {{para|withdot|1}} ; {{para|nolink|1}} ; {{para|linktext}} ; {{para|posttext}} ; {{para|noprimaryentrycat}} ; {{para|lemma_is_sort_key|1}} : All of these are the same as in {form_of_t()}. ]==] function export.tagged_form_of_t(frame) local iparams = get_common_invocation_params("tagged_form_of_t") iparams[1] = {list = true, required = true} iparams.split_tags = true local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() return construct_tagged_form_of_text { template = "tagged-form-of-t", iargs = iargs, parent_args = parent_args, params = params, tags = split_inflection_tags(iargs[1], iargs.split_tags), } end --[==[ Function that implements {{tl|inflection of}} and certain semi-specific variants, such as {{tl|participle of}} and {{tl|past participle form of}}. This function is intended for templates that allow the user to specify a set of inflection tags. It works similarly to {form_of_t()} and {tagged_form_of_t()} except that the calling convention for the calling template is : { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|TAG|TAG|...}}} instead of : { {{TEMPLATE|LANG|MAIN_ENTRY_LINK|MAIN_ENTRY_DISPLAY_TEXT|GLOSS}}} Note that there isn't a numbered parameter for the gloss, but it can still be specified using {{para|t}} or {{para|gloss}}. Invocation params: ; {{para|preinfl}}, {{para|preinfl2}}, ... : Extra inflection tags to automatically prepend to the tags specified by the template. ; {{para|postinfl}}, {{para|postinfl2}}, ... : Extra inflection tags to automatically append to the tags specified by the template. Used for example by {{tl|past participle form of}} to add the tags `of the|past|p` onto the user-specified tags, which indicate which past participle form the page refers to. ; {{para|split_tags}} : If specified, character to split specified inflection tags on. This allows multiple tags to be included in a single argument, simplifying template code. Note that this applies *ONLY* to inflection tags specified in the invocation arguments using {{para|preinfl}} or {{para|postinfl}}, not to user-specified inflection tags. ; {{para|term_param}} ; {{para|lang}} ; {{para|sc}} ; {{para|cat}}, {{para|cat2}}, ... ; {{para|ignore}}, {{para|ignore2}}, ... ; {{para|def}}, {{para|def2}}, ... ; {{para|withcap|1}} ; {{para|withencap|1}} ; {{para|withdot|1}} ; {{para|nolink|1}} ; {{para|linktext}} ; {{para|posttext}} ; {{para|noprimaryentrycat}} ; {{para|lemma_is_sort_key|1}} : All of these are the same as in {form_of_t()}. ]==] function export.inflection_of_t(frame) local iparams = get_common_invocation_params("inflection_of_t") iparams.preinfl = {list = true} iparams.postinfl = {list = true} iparams.split_tags = true local iargs = process_params(frame.args, iparams) local parent_args = frame:getParent().args local params = get_common_template_params() local compat = iargs.lang or parent_args.lang local tagsind = (iargs.term_param or compat and 1 or 2) + 2 params[tagsind] = {list = true, -- at least one inflection tag is required unless preinfl or postinfl tags are given required = #iargs.preinfl == 0 and #iargs.postinfl == 0} return construct_tagged_form_of_text { template = "inflection-of-t", iargs = iargs, parent_args = parent_args, params = params, no_numbered_gloss = true, tags = function(args) local infls if not next(iargs.preinfl) and not next(iargs.postinfl) then -- If no preinfl or postinfl tags, just use the user-specified tags directly. infls = args[tagsind] else -- Otherwise, we need to prepend the preinfl tags and postpend the postinfl tags. If there's only one tag set -- (no semicolon), it's easier. Since this is common, we optimize for it. infls = {} local saw_semicolon = false for _, infl in ipairs(args[tagsind]) do if infl == ";" then saw_semicolon = true break end end local split_preinfl = split_inflection_tags(iargs.preinfl, iargs.split_tags) local split_postinfl = split_inflection_tags(iargs.postinfl, iargs.split_tags) if not saw_semicolon then extend(infls, split_preinfl) extend(infls, args[tagsind]) extend(infls, split_postinfl) else local groups = split_tag_set(args[tagsind]) for _, group in ipairs(groups) do if #infls > 0 then insert(infls, ";") end extend(infls, split_preinfl) extend(infls, group) extend(infls, split_postinfl) end end end return infls end, } end --[==[ Normalize a part-of-speech tag given a possible abbreviation (passed in as {{para|1}} of the invocation args). If the abbreviation isn't recognized, the original POS tag is returned. If no POS tag is passed in, return the value of invocation arg {{para|default}}. ]==] function export.normalize_pos(frame) local iparams = { [1] = true, ["default"] = true, } local iargs = process_params(frame.args, iparams) if not iargs[1] and not iargs.default then error("Either 1= or default= must be given in the invocation args") end if not iargs[1] then return iargs.default end return (m_form_of_pos or get_m_form_of_pos())[iargs[1]] or iargs[1] end return export tmojen71xun5s50j431jk5v1xbaj1ue Modul:parameters/finalizeSet 828 37244 119313 2026-06-19T09:32:07Z Ardzun 48 ←Mambuek laman baisi "local parameters_track_module = "Module:parameters/track" local dump = mw.dumpObject local error = error local format = string.format local pairs = pairs local tostring = tostring local type = type local function track(...) track = require(parameters_track_module) return track(...) end local type_err = 'expected set members to be of type "string" or "number", but saw %s' --[==[ -- Takes `t`, a list or key map which defines a set, and returns a key map for the..." 119313 Scribunto text/plain local parameters_track_module = "Module:parameters/track" local dump = mw.dumpObject local error = error local format = string.format local pairs = pairs local tostring = tostring local type = type local function track(...) track = require(parameters_track_module) return track(...) end local type_err = 'expected set members to be of type "string" or "number", but saw %s' --[==[ -- Takes `t`, a list or key map which defines a set, and returns a key map for the set (which might be the original input value). In addition to distinguishing lists from key maps, this function performs various validation checks: * Sets may only contain strings and numbers (i.e. the two valid data types for Scribunto parameters). * List inputs must be contiguous arrays, with no other keys in use (even if they are non-numbers). * Key maps are treated as having two different kinds of key: ** If a key's value is boolean {true}, it is a standard key. ** If a key's value is anything else, it is an alias of the specified key (which must not be an alias itself). For instance, if the key {"foo"} is set to {"bar"}, then {"foo"} is an alias of the key {"bar"}, which must be a non-alias key that is also in the key map.]==] return function(t, name) -- Iterates over `t` using pairs(), doing separate key map and list parses simultaneously. If the key map parse succeeds, `t` will simply be returned, but if the list parse succeeds, a key map of the values in the list will be returned instead. -- Lists and key maps are mutually exclusive, as they can be distinguished by the presence of boolean `true` as a value: -- (1) If `t` is a list, then `true` is an invalid value, because sets may only contain strings and numbers. -- (2) If `t` is a key map, then it must contain at least one `true` as a value, because any keys which do not have `true` as their value are (by definition) aliases, and aliases must be pointed to a non-alias key (i.e. a key which has the value `true`), which is only possible if one or more keys are set to `true`. -- (Formally, an empty table could be either, but it's more efficient to treat it as a key map.) local i, new_map, list_err, map_err, duplicate_in_list = 0 -- The two parses are separated into blocks, which can be skipped on any -- further iterations if that parse fails. for k, v in pairs(t) do local k_type, v_type = type(k) -- The while-blocks make it possible to use `break` as a substitute for -- `goto`, and both unconditionally terminate after one iteration. while not list_err do -- Catch holes using the same method as [[Module:table/isArray]], -- but also check for non-number keys. i = i + 1 if k_type ~= "number" or t[i] == nil then list_err = "input list is not contiguous" break end -- If `t` is a list then `v` is a set member, so it must be a string -- or number. v_type = type(v) if not (v_type == "string" or v_type == "number") then list_err = format( type_err, v_type == "boolean" and tostring(v) or v_type ) -- Populate `new_map` with valid keys. elseif not new_map then new_map = {[v] = true} -- If new_map[v] is already set, then `t` has duplicates. This -- should be tracked, but only if `t` does turn out to be a list, so -- flag it with `duplicate_in_list` for now. elseif new_map[v] then duplicate_in_list = true else new_map[v] = true end break end while not map_err do -- If `t` is a list then `k` is a set member, so it must be a string -- or number. if not (k_type == "string" or k_type == "number") then map_err = format( type_err, k_type == "boolean" and tostring(k) or k_type ) break -- If `v` is true, `k` is a non-alias key. elseif v == true then break -- Filter out invalid self-aliases. elseif k == v then map_err = format( "set member %s cannot be an alias of itself", dump(k) ) break elseif not v_type then v_type = type(v) end -- Only possible to be an alias of another key, which must be a -- string or number. if not (v_type == "string" or v_type == "number") then map_err = format( 'expected set key %s have the value true or a value of type "string" or "number", but saw %s', dump(k), v_type == "boolean" and tostring(v) or v_type ) break end -- Must be an alias of a non-alias, so the value for the key `v` -- must be `true`. local main = t[v] if main ~= true then map_err = format( "set member %s is specified as an alias of %s, %s", dump(k), dump(v), main == nil and "which is not in the set" or "which is also an alias" ) end break end -- If both parses have failed, throw an error with the two messages. if list_err and map_err then error(format( "Internal error: the `set` spec%s cannot be parsed as either a list or a key map:\nlist parse: %s\nmap parse: %s", name and format(" for parameter %s", dump(name)) or "", map_err, list_err )) end end -- If `t` can be parsed as a key map, just return it. if not map_err then return t -- Otherwise, `t` is a list, so track duplicate entries if it has been -- flagged. elseif duplicate_in_list then track("duplicate entry in set list") end -- Return the new key map. return new_map end aoylq9j5kt5vr096lzl6bv7hjufnzka Templat:Daftar Arsip 10 37245 119315 2026-06-19T10:02:23Z Ardzun 48 ←Mambuek laman baisi "<inputbox> type=fulltext prefix={{FULLPAGENAME}}/ break=no width=30 searchbuttonlabel={{{searchbuttonlabel|Cari dalam arsip}}} placeholder={{{placeholder|Apo nan nio dicari?}}} namespace={{NAMESPACE}} </inputbox> [[File:Classeur groupe 3 dont 1 penché.PNG|150px|right|alt=|link=]] Iko daftar dari sagalo arsip rundiangan{{#if:{{{page|}}}|&nbsp;from [[{{{page}}}]]|{{#ifexist:{{#titleparts:{{FULLPAGENAME}}|-2}}|&nbsp;from [[{{#titleparts:{{FULLPAGENAME}}|-1}}]]}}}}...." 119315 wikitext text/x-wiki <inputbox> type=fulltext prefix={{FULLPAGENAME}}/ break=no width=30 searchbuttonlabel={{{searchbuttonlabel|Cari dalam arsip}}} placeholder={{{placeholder|Apo nan nio dicari?}}} namespace={{NAMESPACE}} </inputbox> [[File:Classeur groupe 3 dont 1 penché.PNG|150px|right|alt=|link=]] Iko daftar dari sagalo arsip rundiangan{{#if:{{{page|}}}|&nbsp;from [[{{{page}}}]]|{{#ifexist:{{#titleparts:{{FULLPAGENAME}}|-2}}|&nbsp;from [[{{#titleparts:{{FULLPAGENAME}}|-1}}]]}}}}. {{#if:{{{category|}}}|Untuak malatakan laman pado [[:Kategori:{{{category}}}]], latakan templat {{tl|Arsip}} pado ateh laman.}} {{#ifexist:{{FULLPAGENAME}}/2013|<h1>{{{overview|Ikhtisar}}}</h1>|{{#ifexist:{{FULLPAGENAME}}/2012|<h1>{{{overview|Ikhtisar}}}</h1>|}}}} {{#ifexist:{{FULLPAGENAME}}/2013| * [[/2013|2013]]}} {{#ifexist:{{FULLPAGENAME}}/2012| * [[/2012|2012]]}} {{#if:{{{category|}}}|[[Kategori:{{{category}}}| ]]}} tcg75wkb9tiiug9tkxnu5tlrnkovw9m Wikikato:Kadai kopi/Kaba teknis 4 37246 119317 2026-06-19T10:05:42Z Ardzun 48 ←Mambuek laman baisi "{{untuak|kadai kopi utamo|Wikikato:Kadai kopi}} Arsip: * [[Wikikato:Kadai kopi/Arsip teknis 2018|2018]] * [[Wikikato:Kadai kopi/Arsip teknis 2019|2019]] * [[Wikikato:Kadai kopi/Arsip teknis 2020|2020]] [[Kategori:Kadai kopi]]" 119317 wikitext text/x-wiki {{untuak|kadai kopi utamo|Wikikato:Kadai kopi}} Arsip: * [[Wikikato:Kadai kopi/Arsip teknis 2018|2018]] * [[Wikikato:Kadai kopi/Arsip teknis 2019|2019]] * [[Wikikato:Kadai kopi/Arsip teknis 2020|2020]] [[Kategori:Kadai kopi]] f64o00agccfa95wpp4qeiwe4zy3eu3n