# Initiation au Lua avec Scribunto/Librairie Message
## 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 :
{{#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

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

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

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

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

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

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 :
{{#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

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

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

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

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

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

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

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

#### mw.message:isBlank

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

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 "-".
| Librairie Language | Librairie Site |