< Initiation au Lua avec Scribunto
fin de la boite de navigation du chapitre

Présentation de la librairie message

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

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

mw.message.getDefaultLanguage()

Retourne un objet Language pour la langue courante.


Méthodes de la librairie message

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

msg:exists()

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


mw.message:isBlank

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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

Image logo indiquant un demande d'attention particulièreCette section est vide, pas assez détaillée ou incomplète. Votre aide est la bienvenue !

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 "-".


Cet article est issu de Wikiversity. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.