Senin, 19 Oktober 2026
21:51 WIB
TERKINI
Lampung Tengah Kebakaran Landa TPA Bandarjaya Lampung Tengah, Gas Metan Diduga Pemicu Utama Pesawaran Pesawaran Jadi Pelopor Lampung, Lantik Pengurus Abpednas di 11 Kecamatan Lampung Tengah Asap Tebal TPA Bandar Jaya Picu Tabrakan Beruntun di Tol Trans-Sumatera, Dua Korban Luka Lampung Prakiraan Cuaca Lampung 19 Oktober 2026: Waspada Hujan Malam Hari Lampung Aktivitas Gunung Anak Krakatau Tetap Siaga, Kegempaan Terus Terjadi Universitas Teknokrat Indonesia Mahasiswa Universitas Teknokrat Raih Empat Gelar Bergengsi di Kompetisi Bahasa Inggris Nasional Pesisir Barat Pesisir Barat Jalin Kemitraan Strategis, Dorong Akses Pendidikan Tinggi Terjangkau Universitas Teknokrat Indonesia Teknokrat dan PMD Pesawaran Bersinergi Wujudkan Desa Digital Berkelanjutan Humaniora Memperkuat Hak Konstitusional Perempuan Adat untuk Kedaulatan Bangsa Pesawaran Lampung Dorong Rantai Pasok Hijau Kakao, Kopi, Lada ke Pasar Global Lampung Tengah Kebakaran Landa TPA Bandarjaya Lampung Tengah, Gas Metan Diduga Pemicu Utama Pesawaran Pesawaran Jadi Pelopor Lampung, Lantik Pengurus Abpednas di 11 Kecamatan Lampung Tengah Asap Tebal TPA Bandar Jaya Picu Tabrakan Beruntun di Tol Trans-Sumatera, Dua Korban Luka Lampung Prakiraan Cuaca Lampung 19 Oktober 2026: Waspada Hujan Malam Hari Lampung Aktivitas Gunung Anak Krakatau Tetap Siaga, Kegempaan Terus Terjadi Universitas Teknokrat Indonesia Mahasiswa Universitas Teknokrat Raih Empat Gelar Bergengsi di Kompetisi Bahasa Inggris Nasional Pesisir Barat Pesisir Barat Jalin Kemitraan Strategis, Dorong Akses Pendidikan Tinggi Terjangkau Universitas Teknokrat Indonesia Teknokrat dan PMD Pesawaran Bersinergi Wujudkan Desa Digital Berkelanjutan Humaniora Memperkuat Hak Konstitusional Perempuan Adat untuk Kedaulatan Bangsa Pesawaran Lampung Dorong Rantai Pasok Hijau Kakao, Kopi, Lada ke Pasar Global

Modul:Spoken Wikipedia

Wikimedia module

Bagikan:
Dokumentasi modullihatsuntingriwayatsegarkan
DiproteksiModul ini dilindungi. Modul ini sangat mencolok yang digunakan oleh banyak halaman, atau sangat sering disubstitusikan. Karena vandalisme atau kesalahan akan mempengaruhi banyak halaman, dan suntingan kecil dapat memberi beban besar pada server, modul ini dilindungi dari penyuntingan.
Modul ini menggunakan Lua:
CSSModul ini menggunakan TemplateStyles:

Mengimplementasikan {{Wikipedia Lisan}}. Lihat kasus ujinya di Templat:Wikipedia Lisan/kasus uji.

PenggunaanPenggunaan

{{#invoke:Spoken Wikipedia|main}}

ParametersParameters

Parameter wajibParameter wajib

|1=, |2=, |3=...
Nama berkas audio
|date=
Tanggal versi halaman saat direkam

Parameter opsionalParameter opsional

|page=
Mengganti teks "artikel ini" dengan tautan wiki—untuk penempatan templat artikel di halaman lain.
|nocat=true
Buang kategorisasi.

Lihat pulaLihat pula

Dokumentasi di atas ditransklusikan dari Modul:Spoken Wikipedia/doc. (sunting | riwayat)
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
localgetArgs=require('Module:Arguments').getArgs
localyesno=require('Module:Yesno')
localDate=require('Module:Date')._Date
locallang=mw.language.new('en')
localcfg=mw.loadData('Modul:Spoken Wikipedia/konfigurasi')
p={}
localfunctionwikiError(message)
localret=mw.html.create('div')
:addClass(cfg.i18n.class.err)
:wikitext(message)
:done()
returntostring(ret)
end
localfunctioncategory(c,nocat)
ifnocatthen
return''
else
returnc
end
end
localfunctionformatPageText(page)
ifpagethen
return'<span class="fn">[['..page..']]</span>'
end
ifmw.title.getCurrentTitle().namespace==0then
returncfg.i18n.this_article
else
returncfg.i18n.this_page
end
end
localfunctionformatFileLength(filenames)
locallength=0
for_,filenameinipairs(filenames)do
localfileTitle=mw.title.new(filename,'Media')
iffileTitleandfileTitle.fileandfileTitle.file.existsthen
length=length+fileTitle.file.length
end
end
-- Add 30 to offset the rounding down
localintervals=lang:getDurationIntervals(length+30,{'hours','minutes'})
localret=string.format(
'<span class="min">%s</span> %s',
intervals.minutesor0,
intervals.minutes==1andcfg.i18n.minuteorcfg.i18n.minutes
)
ifintervals.hoursthen
ret=string.format(
'<span class="h">%s</span> %s dan %s',
intervals.hours,
intervals.hours==1andcfg.i18n.hourorcfg.i18n.hours,
ret
)
end
return'<span class="duration">'..ret..'</span>'
end
localfunctionformatHeader(filenames,page)
locallistento=mw.html.create('span')
:addClass(cfg.i18n.class.listento)
:wikitext(string.format(
cfg.i18n.listento,
formatPageText(page)
))
:done()
localfile_length
if#filenames>1then
file_length=string.format(
cfg.i18n.n_files_length,
tostring(#filenames),
formatFileLength(filenames)
)
else
file_length=string.format(
cfg.i18n.one_file_length,
formatFileLength(filenames)
)
end
returnmw.html.create('div')
:addClass(cfg.i18n.class.header)
:node(listento)
:wikitext(file_length)
:done()
end
localfunctionformatIcon()
returnmw.html.create('div')
:addClass(cfg.i18n.class.icon)
:wikitext(cfg.i18n.icon)
:done()
end
localfunctionformatFiles(filenames,nocat)
if#filenames==0then
returnwikiError(cfg.i18n.err.no_filename)..
category(cfg.i18n.cat.no_filename,nocat)
end
-- TODO: the else branch really wants to be a mw.html <ol> object rather than wikitext
-- version of the same, so that we can style the numbers nicer
localfiles={}
if#filenames==1then
table.insert(files,string.format(cfg.i18n.one_file,filenames[1]))
else
fori,filenameinipairs(filenames)do
table.insert(files,string.format(cfg.i18n.n_files,filename,i))
end
end
returnmw.html.create('div')
:addClass(cfg.i18n.class.files)
:wikitext(table.concat(files))
:done()
:newline()
end
localfunctionformatDateText(frame,dateArg,nocat)
locald=dateArgandDate(dateArg)ornil
returndandframe:expandTemplate{
title='Start date',args={
d.year,
d.month,
d.day,
df='y'
}
}or(wikiError(cfg.i18n.err.no_date)..category(cfg.i18n.cat.no_date,nocat))
end
localfunctionformatDisclaimer(frame,filenames,page,dateArg,nocat)
localthisFileText=''
localdisclaimer
if#filenames==1then
thisFileText=filenames[1]
disclaimer=cfg.i18n.one_file_disclaimer
else
disclaimer=cfg.i18n.n_files_disclaimer
end
returnmw.html.create('div')
:addClass(cfg.i18n.class.disclaimer)
:wikitext(string.format(
disclaimer,
thisFileText,
formatPageText(page),
formatDateText(frame,dateArg,nocat)
))
:done()
end
localfunctionformatFooter()
returnmw.html.create('div')
:addClass(cfg.i18n.class.footer)
:wikitext(cfg.i18n.footer)
:done()
end
localfunctionformatTopicon(frame,filenames)
localwikilink
if#filenames>0then
wikilink='Berkas:'..filenames[1]
else
wikilink=cfg.i18n.topicon_multiwikilink
end
returnframe:expandTemplate{
title="Top icon",
args={
imagename='Sound-icon.svg',
wikilink=wikilink,
text='Dengarkan artikel ini',
id='spoken-icon'
}
}
end
localfunctionextractFilenames(args)
localfilenames={}
forkey,rawValueinipairs(args)do
localvalue=mw.text.trim(rawValue)
iftype(key)=="number"andvalue~=''then
table.insert(filenames,value)
end
end
returnfilenames
end
localfunctionsidebox(nodes)
root=mw.html.create('div')
:addClass(cfg.i18n.class.box)
for_,nodeinipairs(nodes)do
root:node(node)
end
returnroot
end
functionmain(frame)
localargs=getArgs(frame)
-- Mandatory parameters
localfilenames=extractFilenames(args)
localdateArg=args['date']
-- Optional parameters
localpage=args['page']
localnocat=yesno(args['nocat'],false)orfalse
localroot=sidebox({
formatHeader(filenames,page),
formatFiles(filenames,nocat),
formatIcon(),
formatDisclaimer(frame,filenames,page,dateArg,nocat),
formatFooter()
})
ifmw.title.getCurrentTitle().namespace==0then
root:wikitext(formatTopicon(frame,filenames))
root:wikitext(category(cfg.i18n.cat.articles,nocat))
end
returnframe:extensionTag{
name='templatestyles',args={src=cfg.templatestyles}
}..tostring(root)
end
p.main=main
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan