Jumat, 02 Oktober 2026
12:52 WIB
TERKINI
Berita Tangki Motor Bocor Picu Kebakaran Hebat Bengkel di Cilincing, Kerugian Capai Rp 75 Juta Berita DPR Tugaskan Komisi III Uji Kelayakan Komjen Suyudi Ario Seto Sebagai Calon Kapolri Berita Uji Kelayakan Komjen Suyudi Ario Seto: Langkah Krusial Menuju Kursi Kapolri Berita Komjen Suyudi Paparkan Visi 'Polisi Bersama Masyarakat' untuk Transformasi Polri Berita Jalan Mulus Komjen Suyudi: Komisi III DPR Setujui Pimpin Polri Berita DPR RI Resmi Lantik Komjen Suyudi Ario Seto sebagai Kapolri Baru Lampung Prakiraan Cuaca Lampung 1 Oktober 2026: Waspada Hujan Lebat dan Angin Kencang Ekonomi Dan Bisnis Harga Emas Antam 1 Oktober 2026 Turun, Cek Rincian Lengkapnya Sekarang Cuaca Waspada! 325 Titik Panas Terdeteksi di Lampung, Ancaman Karhutla Meningkat Regional Menko PMK Muhadjir Effendy Kunjungi Anjir Batola, Perkuat Sinergi Pembangunan Wilayah Berita Tangki Motor Bocor Picu Kebakaran Hebat Bengkel di Cilincing, Kerugian Capai Rp 75 Juta Berita DPR Tugaskan Komisi III Uji Kelayakan Komjen Suyudi Ario Seto Sebagai Calon Kapolri Berita Uji Kelayakan Komjen Suyudi Ario Seto: Langkah Krusial Menuju Kursi Kapolri Berita Komjen Suyudi Paparkan Visi 'Polisi Bersama Masyarakat' untuk Transformasi Polri Berita Jalan Mulus Komjen Suyudi: Komisi III DPR Setujui Pimpin Polri Berita DPR RI Resmi Lantik Komjen Suyudi Ario Seto sebagai Kapolri Baru Lampung Prakiraan Cuaca Lampung 1 Oktober 2026: Waspada Hujan Lebat dan Angin Kencang Ekonomi Dan Bisnis Harga Emas Antam 1 Oktober 2026 Turun, Cek Rincian Lengkapnya Sekarang Cuaca Waspada! 325 Titik Panas Terdeteksi di Lampung, Ancaman Karhutla Meningkat Regional Menko PMK Muhadjir Effendy Kunjungi Anjir Batola, Perkuat Sinergi Pembangunan Wilayah

Modul:Wikt-lang

Wikimedia module

Bagikan:
Dokumentasi modullihatsuntingriwayatsegarkan
BetaModul ini dinilai sebagai modul beta, dan siap digunakan secara luas. Modul ini masih baru dan harus digunakan dengan hati-hati untuk memastikan bahwa hasilnya sesuai dengan yang diharapkan.
Modul ini menggunakan Lua:
Templat-templat bahasa
Nama bahasa (ISO 639)
Tautan interwiki
Teks berbahasa asing
Lainnya
Dokumentasi di atas ditransklusikan dari Modul:Wikt-lang/doc. (sunting | riwayat)
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
require('strict')
localm_data=mw.loadData("Module:Wikt-lang/data")
locallangData=m_data.languagesorm_data
localp={}
localfunctioncheckForString(variable)
returnvariable~=""andvariable~=nil
end
localfunctionmakeLinkedName(languageCode)
localdata=langData[languageCode]
localarticle=data["article"]
localname=data["Wikipedia_name"]ordata["name"]
return"[["..article.."|"..name.."]]: "
end
localfunctionmakeEntryName(word,languageCode)
localdata=langData[languageCode]
localugsub=mw.ustring.gsub
word=tostring(word)
ifword==nilthen
error("The function makeEntryName requires a string argument")
elseifword==""then
return""
else
-- Remove bold and italics, so that words that contain bolding or emphasis can be linked without piping.
word=word:gsub("\'\'\'","")
word=word:gsub("\'\'","")
ifdata==nilthen
returnword
else
localreplacements=dataanddata["replacements"]
ifreplacements==nilthen
returnword
else
-- Decompose so that the diacritics of characters such
-- as รก can be removed in one go.
-- No need to compose at the end, because the MediaWiki software
-- will handle that.
ifreplacements.decomposethen
word=mw.ustring.toNFD(word)
fori,frominipairs(replacements.from)do
word=ugsub(
word,
from,
replacements.toandreplacements.to[i]or"")
end
else
forregex,replacementinpairs(replacements)do
word=ugsub(word,regex,replacement)
end
end
returnword
end
end
end
end
p.makeEntryName=makeEntryName
localfunctionfixScriptCode(firstLetter,threeLetters)
returnstring.upper(firstLetter)..string.lower(threeLetters)
end
localfunctiongetCodes(codes,text)
locallanguageCode,scriptCode,invalidCode
localerrorText
ifcodes==nilorcodes==""then
errorText='no language or script code provided'
elseifcodes:find("^%a%a%a?$")orcodes:find("^%a%a%a?%-%a%a%a%a$")then
-- A three- or two-letter lowercase sequence at beginning of first parameter
languageCode=
codes:find("^%a%a%a?")and(
codes:match("^(%l%l%l?)")
orcodes:match("^(%a%a%a?)")
:gsub("(%a%a%a?)",string.lower,1)
)
-- One uppercase and three lowercase letters at the end of the first parameter
scriptCode=
codes:find("%a%a%a%a$")and(
codes:match("(%u%l%l%l)$")
orgsub(
codes:match("(%a%a%a%a)$"),
"(%a)(%a%a%a)",
fixScriptCode,
1
)
)
elseifcodes:find("^%a%a%a?%-%a%a%a?$")
orcodes:find("^%a%a%a%-%a%a%a%-%a%a%a$")then
languageCode=codes
-- Private-use subtag: x followed by one or more sequences of 1-8 lowercase
-- letters separated by hyphens. This only allows for one sequence, as it is
-- needed for proto-languages such as ine-x-proto (Proto-Indo-European).
elseifcodes:find("^%a%a%a?%-x%-%a%a?%a?%a?%a?%a?%a?%a?$")then
languageCode,scriptCode=
codes:match("^(%a%a%a%-x%-%a%a?%a?%a?%a?%a?%a?%a?)%-?(.*)$")
ifnotlanguageCodethen
errorText='<code>'..codes..'</code> is not a valid language or script code.'
elseifscriptCode~=""andnotscriptCode:find("%a%a%a%a")then
errorText='<code>'..scriptCode..'</code> is not a valid script code.'
else
scriptCode=scriptCode:gsub(
"(%a)(%a%a%a)",
fixScriptCode,
1
)
end
elseifcodes:find("^%a%a%a?")then
languageCode,invalidCode=codes:match("^(%a%a%a?)%-?(.*)")
languageCode=string.lower(languageCode)
errorText='<code>'..invalidCode..'</code> is not a valid script code.'
elseifcodes:find("%-?%a%a%a%a$")then
invalidCode,scriptCode=codes:match("(.*)%-?(%a%a%a%a)$")
scriptCode=gsub(
scriptCode,
"(%a)(%a%a%a)",
fixScriptCode
)
errorText='<code>'..invalidCode..'</code> is not a valid language code.'
else
errorText='<code>'..codes..'</code> is not a valid language or script code.'
end
ifnotscriptCodeorscriptCode==""then
scriptCode=require("Module:Unicode data").is_Latin(text)and"Latn"or"unknown"
end
iferrorTextthen
errorText=' <span style="font-size: smaller">['..errorText..']</span>'
else
errorText=""
end
languageCode=m_data.redirects[languageCode]orlanguageCode
returnlanguageCode,scriptCode,errorText
end
localfunctiontag(text,languageCode,script,italics)
localdata=langData[languageCode]
-- Use Wikipedia code if it has been given: for instance,
-- Proto-Indo-European has the Wiktionary code "ine-pro" but the Wikipedia
-- code "ine-x-proto".
languageCode=dataanddata.Wikipedia_codeorlanguageCode
localitalicize=script=="Latn"anditalics
ifnottextthentext="[text?]"end
localtextDirectionMarkers={"","",""}
ifdataanddata["direction"]=="rtl"then
textDirectionMarkers={' dir="rtl"','&rlm;','&lrm;'}
end
localout={textDirectionMarkers[2]}
ifitalicizethen
table.insert(out,"<i lang=\""..languageCode.."\" xml:lang=\""..languageCode.."\""..textDirectionMarkers[1]..">"..text.."</i>")
else
table.insert(out,"<span lang=\""..languageCode.."\" xml:lang=\""..languageCode.."\""..textDirectionMarkers[1]..">"..text.."</span>")
end
table.insert(out,textDirectionMarkers[3])
returntable.concat(out)
end
functionp.lang(frame)
localparent=frame:getParent()
localargs=parent.args[1]andparent.argsorframe.args
localcodes=args[1]andmw.text.trim(args[1])
localtext=args[2]orerror("Provide text in the second parameter")
locallanguageCode,scriptCode,errorText=getCodes(codes,text)
localitalics=args.italicsorargs.iorargs.italic
italics=not(italics=="n"oritalics=="-"oritalics=="no")
returntag(text,languageCode,scriptCode,italics)..errorText
end
localfunctionlinkToWiktionary(entry,linkText,languageCode)
localdata=langData[languageCode]
localname
iflanguageCodethen
ifdataanddata.namethen
name=data.name
elseifmw.language.fetchLanguageName(languageCode,'en')~=""then
-- On other languages' wikis, use mw.getContentLanguage():getCode(), or replace with that wiki's language code.
name=mw.language.fetchLanguageName(languageCode,'en')
else
error("No name for the language "..("%q"):format(languageCodeornil).." could be found")
end
ifentry:sub(1,1)=="*"then
ifname~=""then
entry="Reconstruction:"..name.."/"..entry:sub(2)
else
error("Language name is empty")
end
elseifdataanddata.type=="reconstructed"then
mw.log("Reconstructed language without asterisk:",languageCode,name,entry)
localframe=mw.getCurrentFrame()
-- Track reconstructed entries with no asterisk by transcluding
-- a nonexistent template. This technique is used in Wiktionary:
-- see [[wikt:Module:debug]].
-- [[Special:WhatLinksHere/tracking/wikt-lang/reconstructed with no asterisk]]
pcall(frame.expandTemplate,frame,
{title='tracking/wikt-lang/reconstructed with no asterisk'})
ifname~=""then
entry="Reconstruction:"..name.."/"..entry
else
error("Language name is empty")
end
elseifdataanddata.type=="appendix"then
ifname~=""then
entry="Appendix:"..name.."/"..entry
else
error("Language name is empty")
end
end
ifentryandlinkTextthen
return"[[wikt:"..entry.."#"..name.."|"..linkText.."]]"
else
error("linkToWiktionary needs a Wiktionary entry or link text, or both")
end
else
return"[[wikt:"..entry.."|"..linkText.."]]"
end
end
functionp.wiktlang(frame)
localparent=frame:getParent()
localargs=parent.args[1]andparent.argsorframe.args
localcodes=args[1]andmw.text.trim(args[1])
localword1=args[2]
localword2=args[3]
ifnotargs[2]then
error("Parameter 2 is required")
end
locallanguageCode,scriptCode,errorText=getCodes(codes,word1)
localitalics=args.italicsorargs.i
italics=not(italics=="n"oritalics=="-")
localentry,linkText
ifcheckForString(word2)andcheckForString(word1)then
entry=makeEntryName(word1,languageCode)
linkText=word2
elseifcheckForString(word1)then
entry=makeEntryName(word1,languageCode)
linkText=word1
end
localout
iflanguageCodeandentryandlinkTextthen
out=tag(linkToWiktionary(entry,linkText,languageCode),languageCode,scriptCode,italics)
elseifentryandlinkTextthen
out=linkToWiktionary(entry,linkText)
else
out='<span style="font-size: smaller;">[text?]</span>'
end
ifoutanderrorTextthen
returnout..errorText
else
returnerrorTextorerror("The function wiktlang generated nothing")
end
end
functionp.wikt(frame)
localparent=frame:getParent()
localargs=parent.args[1]andparent.argsorframe.args
localcodes=args[1]andmw.text.trim(args[1])
localword1=args[2]
localword2=args[3]
ifnotword1then
error("Provide a word in parameter 2.")
end
locallanguageCode,scriptCode,errorText=getCodes(codes,word1)
localentry,linkText
ifcheckForString(word2)andcheckForString(word1)then
entry=makeEntryName(word1,languageCode)
linkText=word2
elseifcheckForString(word1)then
entry=makeEntryName(word1,languageCode)
linkText=word1
end
localout
iflanguageCodeandentryandlinkTextthen
out=linkToWiktionary(entry,linkText,languageCode)
elseifentryandlinkTextthen
out=linkToWiktionary(entry,linkText)
else
out='<span style="font-size: smaller;">[text?]</span>'
end
ifoutanderrorTextthen
returnoutandout..errorText
else
returnerrorTextorerror("The function wikt generated nothing")
end
end
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan