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 = " +‎ ",
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|}}}| from [[{{{page}}}]]|{{#ifexist:{{#titleparts:{{FULLPAGENAME}}|-2}}| 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|}}}| from [[{{{page}}}]]|{{#ifexist:{{#titleparts:{{FULLPAGENAME}}|-2}}| 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