Ce module regroupe des fonctions liés à l'alphabet phonétique international.
Utilisation
Fonctions exportables :
mapi( frame ) – retourne un la liste des symbole API fourni en paramètres, avec lien vers la page correspondant à chaque symbole et si possible un exemple en infobulle.msapi() – retourne entre crochet la fonction mapi.
Autres fonctions :
symbolWithExemple( symbol ) – retourne le symbole API avec si possible un exemple en infobulle (span avec title)symbolWithLink( symbol ) – retourne le symbole API avec lien vers la page correspondant au symbole et si possible un exemple en infobulle (span avec title)separateSymbols( args ) – si args n'a qu'un seul paramètre, sépare les symboles API en autant de paramètre.
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
Modèles appelant directement ce module :
Exemples
{{#invoke:API|mapi|m|ɛ|ʁ|s|i| |b|i|ɛ̃}} →mɛʁsibiɛ̃{{#invoke:API|mapi|mɛʁsi biɛ̃}} →mɛʁsibiɛ̃{{#invoke:API|msapi|m|ɛ|ʁ|s|i| |b|i|ɛ̃}} →[mɛʁsibiɛ̃]{{#invoke:API|msapi|mɛʁsi biɛ̃}} →[mɛʁsibiɛ̃]
localIPA={}localOutils=require('Module:Outils')localsuccess,toolTip=pcall(mw.loadData,'Module:API/Infobulle')-- error if data not loadedlocalmessageFormat=[[<strong class="error">Le chargement du module API/Infobulle génère une erreur : </strong><br> %s<br><span class="error">Cette erreur doit être corrigée pour que les infobulles explicatives soient de nouveau affichées.</span>]]localerrorMessageifnotsuccessthenerrorMessage=string.format(messageFormat,toolTip)toolTip={}endlocalipaClass=' class="API nowrap"'localipaTitle=' title="Alphabet phonétique international"'localipaStyle=' style="font-family:'.."'Segoe UI',"-- Widonws Vista, 7, 8.."'DejaVu Sans',"-- Most linux, OpenOffice, LibreOffice.."'Lucida Grande',"-- MacOsX.."'Lucida Sans Unicode',"-- Windows XP (but lack U+203F & U+035C).."'Arial Unicode MS',"-- MS Office (provides U+203F & U+035C to Windows XP users).."'Hiragino Kaku Gothic Pro',"-- ios 3+.."sans-serif"-- default, Android...';"'localfunctionsymbolWithExemple(symbol)iftype(symbol)=='string'thenlocaltitle=toolTip[Outils.trim(symbol)]iftitlethenreturn'<span title="'..title..'">'..symbol..'</span>'elsereturnsymbolendendendlocalfunctionsymbolWithLink(symbol)ifsymbol=='['orsymbol==']'thenreturnmw.text.nowiki(symbol)elseifsymbol~='/'andOutils.trim(symbol)thenreturn'[[API '..symbol..'|'..symbolWithExemple(symbol)..']]'elsereturnsymbolendendlocalfunctionseparateSymbols(args)locallen1=args[1]andmw.ustring.len(args[1])ifargs[2]==nilandlen1andlen1>1thenlocalapi=args[1]localapiCodes={mw.ustring.codepoint(args[1],1,len1)}localresult={}locali=1whileapiCodes[i]dolocaltmplen=0ifapiCodes[i+2]andapiCodes[i+1]>859andapiCodes[i+1]<867then-- tietmplen=2endifapiCodes[i+tmplen+1]andapiCodes[i+tmplen+1]>767andapiCodes[i+tmplen+1]<860then-- Diacriticaltmplen=tmplen+1endtable.insert(result,mw.ustring.sub(api,i,i+tmplen))i=i+tmplen+1endreturnresultendreturnargsendlocalfunctionsymbolsWithLink(args)localwikiTable={'<span'..ipaClass..ipaTitle..ipaStyle..'>'}localsymbolsTable=separateSymbols(args)locali=1localsymbolwhilesymbolsTable[i]dosymbol=symbolWithLink(symbolsTable[i])ifsymbolthentable.insert(wikiTable,symbol)endi=i+1endtable.insert(wikiTable,'</span>')returnwikiTableendfunctionIPA.mapi(frame)localargs=Outils.extractArgs(frame)localwikiTable=symbolsWithLink(args)returntable.concat(wikiTable)endfunctionIPA.msapi(frame)localargs=Outils.extractArgs(frame)localwikiTable=symbolsWithLink(args)ifmw.ustring.match(wikiTable[2],'[ʃɲjʄɟ]')thentable.insert(wikiTable,2,' ')--   = Six-Per-Em Space, otherwise ʃ touches [ on windows.endifmw.ustring.match(wikiTable[#wikiTable-1],'[ʃʈɭʄɖɻʠʧ]')thentable.insert(wikiTable,#wikiTable,' ')endifnot(wikiTable[2]=='['orwikiTable[2]=='/')thentable.insert(wikiTable,2,'[')-- [ = <nowiki>[</nowiki>table.insert(wikiTable,#wikiTable,']')-- ] = <nowiki>]</nowiki>endreturntable.concat(wikiTable)endfunctionIPA.api()end-- erreurModuleData affiche d'un message d'erreur si le Module:Langue/Data n'a pas été chargé correctement,-- pour la page de discussion de la base de donnée et ceux qui veulent surveiller cette page.functionIPA.toolTipModuleError()ifsuccess==falsethenreturnerrorMessageendendreturnIPA