Aller au contenu

Module:API

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 8 juin 2014 à 16:56 et modifiée en dernier par Zebulon84 (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[voir] [modifier] [historique] [purger]

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

local API = { }

local Outils = require ( 'Module:Outils' )


local exempleTable = {
	['b'] = "[b] 'b' dans 'beau'",
	['d'] = "[d] 'd' dans 'doux'",
	['f'] = "[f] 'f' dans 'fête'",
	['g'] = "[g] 'g' dans 'gain'",
	['k'] = "[k] 'c' dans 'cabas'",
	['l'] = "[l] 'l' dans 'loup'",
	['m'] = "[m] 'm' dans 'mou",
	['n'] = "[n] 'n' dans 'nous'",
	['ɲ'] = "[ɲ] 'gn' dans 'agneau'",
	['ŋ'] = "[ŋ] 'ng' dans 'parking'",
	['p'] = "[p] 'p' dans 'passé",
	['ʁ'] = "[ʁ] 'r' dans 'roue'",
	['s'] = "[s] 's' dans 'sa",
	['ʃ'] = "[ʃ] 'ch' dans 'chou'",
	['t̪'] = "[t̪] 't' dans 'tous",
	['v'] = "[v] 'v' dans 'vous",
	['z'] = "[z] 'z' dans 'zéro",
	['ʒ'] = "[ʒ] 'j' dans 'joue'",
	['j'] = "[j] 'y' dans 'payer', 'll' dans 'fille'",
	['w'] = "[w] 'w' dans 'web', 'ou' dans 'oui'",
	['ɥ'] = "[ɥ] 'u' dans 'huit",
	['a'] = "[a] 'a' dans 'patte'",
	['ɑ'] = "[ɑ] 'a' dans 'pâte'",
	['e'] = "[e] 'é' dans 'clé'",
	['ɛ'] = "[ɛ] 'è' dans 'mère",
	['ɛː']= "[ɛː] 'è' dans 'fête'",
	['ə'] = "[ə] 'ə' dans 'repeser",
	['i'] = "[i] 'i' dans 'si'",
	['œ'] = "[œ] 'œ' dans 'sœur'",
	['ø'] = "[ø] 'eu' dans 'ceux'",
	['o'] = "[o] 'o' dans 'sot'",
	['ɔ'] = "[ɔ] 'o' dans 'sort'",
	['u'] = "[u] 'ou' dans 'coup'",
	['y'] = "[y] 'u' dans 'tu'",
	['ɑ̃'] = "[ɑ̃] 'en' dans 'vent'",
	['ɛ̃'] = "[ɛ̃] 'in' dans 'vin'",
	['œ̃'] = "[œ̃] 'un' dans 'brun'",
	['ɔ̃'] = "[ɔ̃] 'on' dans 'son'",
	--[''] = ""
}

local ipaFonts = "'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+
	.. "'Bitstream Vera Sans',"       -- Most UNIX
	.. "sans-serif"                   -- default, Android.


local function symbolWithExemple( symbol )
	if type( symbol ) == 'string' then
		local title = exempleTable[ Outils.trim( symbol ) ]
		local result
		if title then 
			result = '<span title="' .. title ..'">' .. symbol .. '</span>'
		else
			result = symbol
		end
		return result
	end
end

local function symbolWithLink( symbol )
	if Outils.trim( symbol ) then
		return '[[API ' .. symbol .. '|'.. symbolWithExemple( symbol ) .. ']]'
	else 
		return symbol
	end
end

function API.mapi( frame )
	local args = Outils.extractArgs( frame )
	local wikiTable = {
		'<span class="API" title="Alphabet phonétique international" style="font-familly:' .. ipaFonts .. ';">' 
	}
	
	local i = 1
	local symbol
	while args[i] do
		symbol = symbolWithLink( args[i] )
		if symbol then 
			table.insert( wikiTable, symbol )
		end
		i = i + 1
	end
	
	return table.concat( wikiTable )
end

function API.msapi ( frame )
	return '[' .. API.mapi( frame ) .. ']'
end

return API