Initiation au Lua avec Scribunto/Librairie Message
Présentation de la librairie message
modifierCette 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
modifierLes 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
modifiermw.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
modifiermw.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
modifiermw.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
modifiermw.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
modifiermw.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
modifiermw.message.getDefaultLanguage()
Retourne un objet Language pour la langue courante.
Méthodes de la librairie message
modifierNous 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
modifiermsg: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
modifiermsg: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
modifiermsg: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
modifiermsg: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
modifiermsg: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
modifiermsg: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
modifiermsg:exists()
Retourne un booléen indiquant si la clé de message existe.
mw.message:isBlank
modifiermsg: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
modifiermsg: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 "-".