Modulus:Translitteratio
Hic modulus nonnullas functiones translitteratorias praebet.
De usu
[fontem recensere]{{#invoke:translitteratio|nomen functionis}}
De functionibus
[fontem recensere]abecedaria
[fontem recensere]Haec functio tribus argumentis singulos characteres translitterat.
De usu
[fontem recensere]Codex manuscriptus:
{{#invoke:translitteratio|abecedaria
| 1 = Lorem ipsum dolor sit amet
| 2 = aeiou
| 3 = AEIOU
}}
Effectus:
LOrEm IpsUm dOlOr sIt AmEt
Si secundum argumentum est longius tertio, characteres in excessu a textu delebuntur. Si tertium argumentum est longius secundo, characteres in excessu ignorabuntur.
aucta
[fontem recensere]Secundum hanc functionem variadicam cuique characteri in secundo argumento seorsum argumentum congruit.
De usu
[fontem recensere]Codex manuscriptus:
{{#invoke:translitteratio|aucta
| 1 = Lorem ipsum dolor sit amet
| 2 = aeiou
| 3 = ā
| 4 = ē
| 5 = ī
| 6 = ō
| 7 = ū
}}
Effectus:
Lōrēm īpsūm dōlōr sīt āmēt
Si secundum argumentum est longius quam numerus argumentorum sequentium, characteres in excessu a textu delebuntur. Si numerus argumentorum sequentium est maior quam characteres secundi argumenti, argumenta in excessu ignorabuntur.
aleatoria
[fontem recensere]
Haec pars augenda est. |
Haec functio argumentum speciale sine textu in nomine (|=...
) adhibet ad quendam textum legendum. Talis textus est index commatibus separatus (at alius character in locum commatis substitui potest – vide infra). Alia argumenta scriptiones definiunt quae ostendentur (ordine fortuito) si elementum est in indice.
Ut alius character in loco comatis adhibeatur, utere argumento speciali |,=...
.
Ut alius character vel cunctum verbum in loco signi exclamationis adhibeatur ad negationes indicandas, utere argumento speciali |!=...
.
Codex manuscriptus:
{{#invoke:translitteratio|aleatoria
| = html, sine murmuribus
| html = &wpGenerateRawHtml=1
| xml = &wpGenerateXml=1
| ! sine murmuribus = &wpRemoveComments=0
| sine nowiki = &wpRemoveNowiki=1
}}
Effectus:
&wpGenerateRawHtml=1
Codex manuscriptus:
{{#invoke:translitteratio|aleatoria
| = xml, sine nowiki
| html = &wpGenerateRawHtml=1
| xml = &wpGenerateXml=1
| ! sine murmuribus = &wpRemoveComments=0
| sine nowiki = &wpRemoveNowiki=1
}}
Effectus:
&wpRemoveComments=0&wpRemoveNowiki=1&wpGenerateXml=1
Codex manuscriptus:
{{#invoke:translitteratio|aleatoria
| , = /
| ! = NON
| = html / xml / sine nowiki
| html = &wpGenerateRawHtml=1
| xml = &wpGenerateXml=1
| NON sine murmuribus = &wpRemoveComments=0
| sine nowiki = &wpRemoveNowiki=1
}}
Effectus:
&wpRemoveComments=0&wpGenerateRawHtml=1&wpGenerateXml=1&wpRemoveNowiki=1
Vide quoque
[fontem recensere]- {{#invoke:string}}
local ifacies = {}
ifacies.abecedaria = function(frame)
local argg = frame.args
if argg[1] == nil or argg[1] == '' then return '' end
if argg[2] == nil or argg[2] == '' then return argg[1] end
local reddenda = {}
local nparia
local textus = mw.text.split(argg[1], '', true)
local delenda = mw.text.split(argg[2], '', true)
local substituenda
if argg[3] ~= nil then
substituenda = mw.text.split(argg[3], '', true)
else
substituenda = {}
end
local ndeletiones = #delenda
local nlitterae = #textus
local tmp = #substituenda
if ndeletiones > tmp then nparia = tmp else nparia = ndeletiones end
for idx1 = 1, nparia do
for idx2 = 1, nlitterae do
if textus[idx2] == delenda[idx1] then
textus[idx2] = substituenda[idx1]
end
end
end
for idx1 = nparia + 1, ndeletiones do
for idx2 = 1, nlitterae do
if textus[idx2] == delenda[idx1] then
textus[idx2] = nil
end
end
end
tmp = 0
for key, val in pairs(textus) do
if type(key) == 'number' then
tmp = tmp + 1
reddenda[tmp] = key
end
end
table.sort(reddenda)
for key, val in ipairs(reddenda) do reddenda[key] = textus[val] end
return table.concat(reddenda)
end
ifacies.aucta = function(frame)
local substituenda = {}
local nparia = 0
for key, val in pairs(frame.args) do
if type(key) == 'number' then
if nparia == nil or key > nparia then nparia = key end
substituenda[key - 2] = val
end
end
nparia = nparia - 2
if substituenda[-1] == nil or substituenda[-1] == '' then return '' end
if nparia < 1 or substituenda[0] == nil
or substituenda[0] == '' then return substituenda[-1] end
local reddenda = {}
local textus = mw.text.split(substituenda[-1], '', true)
local delenda = mw.text.split(substituenda[0], '', true)
local ndeletiones = #delenda
local nlitterae = #textus
substituenda[-1] = nil
substituenda[0] = nil
if ndeletiones < nparia then nparia = ndeletiones end
for idx1 = 1, nparia do
for idx2 = 1, nlitterae do
if textus[idx2] == delenda[idx1] then
textus[idx2] = substituenda[idx1]
end
end
end
for idx1 = nparia + 1, ndeletiones do
for idx2 = 1, nlitterae do
if textus[idx2] == delenda[idx1] then
textus[idx2] = nil
end
end
end
local tmp = 0
for key, val in pairs(textus) do
if type(key) == 'number' then
tmp = tmp + 1
reddenda[tmp] = key
end
end
table.sort(reddenda)
for key, val in ipairs(reddenda) do reddenda[key] = textus[val] end
return table.concat(reddenda)
end
ifacies.aleatoria = function(frame)
local argg = {}
for arg, txt in pairs(frame.args) do argg[arg] = txt end
local sep
if argg[','] ~= nil then sep = argg[',']:match'^%s*(.*%S)' end
if sep == nil then sep = ',' elseif string.len(sep) > 1 then error(
'Module:Translitteratio: Argumentum ‘,’ in functione ‘aleatoria’ unum characterem tantum continere potest', 0
) end
local neg
if argg['!'] ~= nil then neg = argg['!']:match'^%s*(.*%S)' end
if neg == nil then neg = '!' end
local lneg = string.len(neg)
local textus = sep .. (argg[''] or '') .. sep
argg[''] = nil
argg['!'] = nil
argg[','] = nil
local reddenda = {}
local quaesita = {}
local responsa = { '' }
local nresp = 1
local esep = '%s*' .. sep .. '%s*'
local einit = '^' .. sep .. '?'
local eneg = sep .. '%s*' .. neg .. '%s*'
local sneg = sep .. neg
local epartitio = sep .. '([^' .. sep .. ']*)'
local quaesitum
for arg, txt in pairs(argg) do
nresp = nresp + 1
for res in
arg:gsub('[%%^%$%?%*%+%-%.%(%)%[%]]', '%%%0')
:gsub(esep, sep):gsub(einit, sep):gsub(eneg, sneg)
:gsub('%s+', '%%s*'):gmatch(epartitio)
do
if res ~= '' and res ~= sep and res ~= neg then
if res:sub(1, lneg) == neg then
quaesitum = sep .. '%s*' ..
res:sub(lneg + 1) .. '%s*' ..
sep
if quaesita[quaesitum] ~= nil then
quaesita[quaesitum][2] = nresp
else
quaesita[quaesitum] = { 1,
nresp }
end
else
quaesitum = sep .. '%s*' .. res ..
'%s*' .. sep
if quaesita[quaesitum] ~= nil then
quaesita[quaesitum][1] = nresp
else
quaesita[quaesitum] = { nresp,
1 }
end
end
end
end
responsa[nresp] = txt
end
for nummus, bivium in pairs(quaesita) do
if string.find(textus, nummus) ~= nil then
table.insert(reddenda, responsa[bivium[1]])
else
table.insert(reddenda, responsa[bivium[2]])
end
end
return table.concat(reddenda)
end
return ifacies