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.
Ulteriora si cupis
[fontem recensere]- {{#invoke:string}}
Documentatio pristina transclusa est ex Modulus:Translitteratio/doc. (recense | historiam inspice)
Quaesumus auctores experturos esse in harenarii (crea | effinge) ac periclitationum (crea) subpaginis huius moduli.
Vide etiam subpaginas huius moduli.
require[[strict]]
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
return ifacies