Module:transliterator
Apparence
Invoqué dans {{transliterator}}
.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Module:transliterator/Documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
local p = {}
local transtable = mw.loadData("Module:transliterator/data")
-- La fonction qui fait la translittération d'un mot d’une langue donnée
function p.translitteration_de(texte, langue)
-- Vérification des arguments
if (texte == nil or texte == '') then
return "Pas de texte à translittérer"
end
if (langue == nil or langue == '') then
return "Pas de code langue fourni"
elseif (not transtable[langue]) then
return "Mauvais code langue : " .. langue
end
-- On range les lettres translittérées dans cette table au fur et à mesure
local resultat = {}
-- Translittération de chaque lettre
for codepoint in mw.ustring.gcodepoint(texte) do
local lettre_base = mw.ustring.char(codepoint)
-- Cette lettre est-elle dans les caractères communs ?
if (transtable['common'][lettre_base]) then
table.insert(resultat, transtable['common'][lettre_base])
-- Sinon, est-elle dans la liste de la langue ?
elseif (transtable[langue][lettre_base]) then
table.insert(resultat, transtable[langue][lettre_base])
-- Pas de translittération alors ? Message d'erreur.
else
return "Caractère non valide " .. lettre_base .. " pour le code de langue " .. langue .. "."
end
end
return table.concat(resultat)
end
-- Fonction de modèle pour {{transliterator}}
function p.transliterate(frame)
local args = frame:getParent().args
local langue = args[1]
local texte = args[2]
-- Pas de texte donné ? On utilise le nom de la page alors.
if (texte == nil) then
local article = mw.title.getCurrentTitle()
texte = article.text
end
return p.translitteration_de(texte, langue)
end
return p