Initiation au Lua avec Scribunto/Librairie Message

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

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

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

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

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

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

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

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

mw.message.getDefaultLanguage()

Retourne un objet Language pour la langue courante.


Méthodes de la librairie message

modifier

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

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

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

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

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

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

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

msg:exists()

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


mw.message:isBlank

modifier

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

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