Leçons de niveau 10

Initiation au Lua avec Scribunto/Librairie Message

Une page de Wikiversité.
Sauter à la navigation Sauter à la recherche
Début de la boite de navigation du chapitre
Librairie Message
Icône de la faculté
Chapitre no 17
Leçon : Initiation au Lua avec Scribunto
Chap. préc. :Librairie Language
Chap. suiv. :Librairie Site

Exercices :

Sur les librairies Scribunto
fin de la boite de navigation du chapitre
Icon falscher Titel.svg
En raison de limitations techniques, la typographie souhaitable du titre, « Initiation au Lua avec Scribunto : Librairie Message
Initiation au Lua avec Scribunto/Librairie Message
 », n'a pu être restituée correctement ci-dessus.

Présentation de la librairie message[modifier | modifier le wikicode]

Cette librairie est une interface aux versions localisées des messages et à l'espace de noms MediaWiki:.

Les fonctions documentées comme mw.message.name sont disponibles dans la table globale mw.message. Les fonctions documentées comme mw.message:name sont des méthodes des objets Message (voir mw.message.new).


Fonctions de la librairie Message[modifier | modifier le wikicode]

Les exemples de ce chapitre se trouveront dans le Module:Message


Nous commencerons par visualiser le contenu de la librairie Message grâce au programme suivant :

local p = {}

function p.visualisation(frame)
	reponse = ""
	for index, objet in pairs(mw.message) do
		reponse = reponse.."</br>À la clé "..index..", on trouve un objet de type : "..type(objet)
	end
	return reponse
end

return p


{{#invoke:Message|visualisation}} nous donne :
À la clé numParam, on trouve un objet de type : function
À la clé getDefaultLanguage, on trouve un objet de type : function
À la clé rawParam, on trouve un objet de type : function
À la clé newFallbackSequence, on trouve un objet de type : function
À la clé newRawMessage, on trouve un objet de type : function
À la clé new, on trouve un objet de type : function


Nous voyons que nous avons 6 fonctions.


Étudions ces fonctions :


mw.message.new[modifier | modifier le wikicode]

mw.message.new( key, ... )

Crée un nouvel objet Message pour le message indiqué key.

L'objet message n'a aucune propriété mais de nombreuses méthodes documentées ci-dessous.


mw.message.newFallbackSequence[modifier | modifier le wikicode]

mw.message.newFallbackSequence( ... )

Crée un nouvel objet message pour les messages indiqués (le premier qui existe sera utilisé).

L'objet message n'a aucune propriété mais de nombreuses méthodes documentées ci-dessous.


mw.message.newRawMessage[modifier | modifier le wikicode]

mw.message.newRawMessage( msg, ... )

Crée un nouvel objet message en utilisant le texte indiqué plutôt qu'en cherchant un message internationalisé. Les paramètres additionnels sont passés à la méthode params() du nouvel objet.

L'objet message n'a aucune propriété mais de nombreuses méthodes documentées ci-dessous.


mw.message.rawParam[modifier | modifier le wikicode]

mw.message.rawParam( value )

Traite la valeur value de façon qu'elle ne soit pas interprétée comme du wikitexte par msg:parse().


mw.message.numParam[modifier | modifier le wikicode]

mw.message.numParam( value )

Traite la valeur value de façon à ce qu'elle soit automatiquement formatée comme avec lang:formatNum(). Notez que ceci ne dépend pas de la librairie Language actuellement disponible dans Scribunto.


mw.message.getDefaultLanguage[modifier | modifier le wikicode]

mw.message.getDefaultLanguage()

Retourne un objet Language pour la langue courante.


Méthodes de la librairie message[modifier | modifier le wikicode]

Nous commencerons par visualiser le contenu d'un objet Message grâce au programme suivant :

local p = {}

function p.visualise(frame)
	reponse = ""
	message = mw.message.new("essai")
	for index, objet in pairs(message) do
		reponse = reponse.."</br>À la clé "..index..", on trouve un objet de type : "..type(objet)
	end
	return reponse
end

return p


{{#invoke:Message|visualise}} nous donne :
À la clé inLanguage, on trouve un objet de type : function
À la clé isDisabled, on trouve un objet de type : function
À la clé isBlank, on trouve un objet de type : function
À la clé exists, on trouve un objet de type : function
À la clé useDatabase, on trouve un objet de type : function
À la clé plain, on trouve un objet de type : function
À la clé numParams, on trouve un objet de type : function
À la clé rawParams, on trouve un objet de type : function
À la clé params, on trouve un objet de type : function


Nous voyons qu’il y a 9 méthodes.


Étudions ces méthodes :

mw.message:params[modifier | modifier le wikicode]

msg:params( ... )
msg:params( params )

Ajoute des paramètres au message, qui peuvent être passés en tant que paramètres individuels ou dans une séquence. Les paramètres doivent être des nombres, chaînes ou des valeurs spéciales retournées par mw.message.numParam() ou mw.message.rawParam(). Si une table non associative est utilisée, les paramètres doivent être directement présents dans la table ; les références utilisant la méta-méthode __index ne marcheront pas.

Retourne l’objet msg pour autoriser des appels chaînés.


mw.message:rawParams[modifier | modifier le wikicode]

msg:rawParams( ... )
msg:rawParams( params )

Comme :params() mais chaque paramètre est passé préalablement par mw.message.rawParam().

Retourne l’objet msg pour autoriser des appels chaînés.


mw.message:numParams[modifier | modifier le wikicode]

msg:numParams( ... )
msg:numParams( params )

Comme :params() mais chaque paramètre est passé préalablement par mw.message.numParam().

Retourne l’objet msg pour autoriser des appels chaînés.


mw.message:inLanguage[modifier | modifier le wikicode]

msg:inLanguage( lang )

Précise la langue à utiliser pour traiter le message. lang peut être une chaîne ou une table avec une méthode getCode() (par exemple un objet Language).

La langue par défaut est celle retournée par mw.message.getDefaultLanguage().

Retourne l’objet msg pour autoriser des appels chaînés.


mw.message:useDatabase[modifier | modifier le wikicode]

msg:useDatabase( bool )

Précise s'il faut chercher les messages dans l'espace de noms MediaWiki: (donc regarder dans la base de données) ou seulement utiliser les messages par défaut distribués avec MediaWiki.

La valeur par défaut est true.

Retourne l’objet msg pour autoriser des appels chaînés.


mw.message:plain[modifier | modifier le wikicode]

msg:plain()

Remplace les paramètres et retourne le message tel quel en wikitexte. Les appels à des modèles et à des parser-functions sont laissés intacts.


mw.message:exists[modifier | modifier le wikicode]

msg:exists()

Retourne un booléen indiquant si la clé de message existe.


mw.message:isBlank[modifier | modifier le wikicode]

msg:isBlank()

Retourne un booléen indiquant si la clé de message correspond à un contenu. Retourne vrai si la clé n'existe pas ou si le message est la chaîne vide.


mw.message:isDisabled[modifier | modifier le wikicode]

msg:isDisabled()

Retourne un booléen indiquant si la clé de message est désactivée. Retourne vrai si la clé n'existe pas, si le message est la chaîne vide ou la chaîne "-".