Module:sgpron
Apparence
Ce module crée la représentation phonétique des mots en sango. L’orthographe est en effet phonétique et la représentation peut être déduite dans un grand nombre de cas.
Usage du modèle {{sg-pron}} :
- Soit un mot ajouté en paramètre, Soit l’article de la page est utilisé par défaut
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis la page Module:sgpron/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={}
function p.pron(frame)
local args = frame:getParent().args
local titre = args[1] and mw.text.trim(args[1]) or ''
local pron=string.lower(titre)
pron="[."..string.gsub(pron,"['' %-’]",".")..".]"
local t1={["tch"]="x", ["ngb"]="Q", ["qu"]="k", ["nz"]="C", ["ny"]="N", ["ng"]="G", ["nd"]="D", ["mv"]="V", ["mp"]="P", ["mb"]="B", ["gb"]="q", ["ch"]="x", ["z"]="z", ["j"]="C", ["y"]="j", ["x"]="C", ["w"]="w", ["v"]="v", ["u"]="u1.", ["t"]="t", ["s"]="s", ["r"]="r", ["q"]="k", ["p"]="p", ["O"]="O1.", ["o"]="o1.", ["n"]="n", ["m"]="m", ["l"]="l", ["k"]="k", ["i"]="i1.", ["h"]="h", ["g"]="g", ["f"]="f", ["E"]="E1.", ["e"]="e1.", ["d"]="d", ["b"]="b", ["a"]="a1.", ["ü"]="u3.", ["ö"]="o3.", ["ï"]="i3.", ["ë"]="e3.", ["ä"]="a3.", ["û"]="u5.", ["ô"]="o5.", ["î"]="i5.", ["ê"]="e5.", ["â"]="a5."}
for k,v in pairs(t1) do
pron=string.gsub(pron,k,v)
end
pron=string.gsub(pron,"%.%.+",".")
-- les sons longs
pron=string.gsub(pron,"([aeEioOu])([135])%.%1%2(n?)%.","%1%3ː%2.")
pron=string.gsub(pron,"wu([135])(n?)%.","uː%1.")
pron=string.gsub(pron,"ji([135])(n?)%.","iː%1.")
-- les sons modulés
pron=string.gsub(pron,"([aeiouOE])([135])%.%1([135])(n?)%.","%1%4%2%3.")
-- les diphtongues spéciales
pron=string.gsub(pron,"w([aeEioO])([135])(n?)%.","u%1%3%2.")
pron=string.gsub(pron,"j([aeEoOu])([135])(n?)%.","i%1%3%2.")
-- les diphtongues tout court
pron=string.gsub(pron,"([^aeEioOu])([aeEioOu])([135])%.([aeEioOu])([135])(n*)%.","%1%2%4%6%3%5.")
-- les nasales
pron=string.gsub(pron,"([aeEioOu])([135]+)n%.","%1n%2.")
pron=string.gsub(pron,"11+","1")
pron=string.gsub(pron,"33+","3")
pron=string.gsub(pron,"55+","5")
local pron1=pron
local t2={["x"]="t͡ʃ", ["Q"]="ⁿɡ͡b", ["un"]="ũ", ["on"]="ɔ̃", ["C"]="ⁿd͡ʒ", ["N"]="ŋ", ["G"]="ŋ͡ɡ", ["D"]="n͡d", ["V"]="ɱ͡v", ["P"]="m͡p", ["B"]="m͡b", ["in"]="ĩ", ["q"]="ɡ͡b", ["en"]="ɛ̃", ["x"]="ʃ", ["an"]="ã", ["z"]="z", ["C"]="ⁿd͡ʒ", ["w"]="w", ["v"]="v", ["u"]="u", ["t"]="t", ["s"]="s", ["r"]="r", ["k"]="", ["p"]="p", ["o"]="ɔ", ["O"]="o", ["n"]="n", ["m"]="m", ["l"]="l", ["k"]="k", ["j"]="", ["i"]="i", ["h"]="h", ["g"]="ɡ", ["f"]="f", ["e"]="ɛ", ["E"]="e", ["d"]="d", ["b"]="b", ["a"]="a", ["1"]="˩", ["3"]="˧", ["5"]="˥"}
for k,v in pairs(t2) do
pron=string.gsub(pron,k,v)
end
pron=string.gsub(pron,"^%[%.(.*)%.%]$","%1")
--return pron1.."/"..pron
return pron
end
return p