Manual:Magic words/fr



Les mots magiques sont une technique pour mapper une variété de chaînes de texte wiki à un ID unique associé à une fonction. Les variables et les fonctions d'analyse (fonctions parser) utilisent cette technique. Tout le texte mappé à cet ID sera remplacé par la valeur de retour de la fonction. Le mappage entre les chaînes de texte et l'ID est stocké dans la variable  dans un fichier qui peut être chargé en utilisant.

Les mots magiques par défaut sont implémentés dans.

Comment fonctionnent les mots magiques
Chaque fois que MediaWiki trouve du texte entre doubles accolades, il doit décider si XXX est une variable, une fonction analyseur, ou un modèle. Pour ce faire, il pose une série de questions :


 * 1) Existe-t-il un ID de mot magique associé ? Dans une première étape de résolution du marquage de la forme , MediaWiki tente de traduire XXX en ID de mot magique. La table de transaction est définie par $magicWords.
 * 2) * Si aucun ID de mot magique n'est associé à XXX, XXX est supposé être un modèle.
 * 3) Est-ce une variable ? Si un ID de mot magique est trouvé, MediaWiki vérifie ensuite l'existence de paramètres éventuels.
 * 4) *S'il ne trouve aucun paramètre, MediaWiki vérifie si l'ID de mot magique a été déclaré comme ID de variable. Pour vérifier cela, il récupère la liste des mots magiques servant en appelant . Cette méthode obtient sa liste d'IDs de variables à partir d'une liste codée en dur d'IDs de variables (voir ) et d'une liste d'IDs de variables personnalisée fournie par toutes les fonctions attachées au point d'accroche.
 * 5) **Si l'ID du mot magique a été classé comme variable, les accroches de MediaWiki appellent les fonctions associées au nom de l'événement jusqu'à ce que l'une soit trouvée, qui reconnaît le mot magique et peut donner sa valeur.
 * 6) Est-ce une fonction d'analyse ? S'il y a des paramètres ou si l'ID du mot magique est absent de la liste des IDs de mots magiques qui sont des variables, alors MediaWiki suppose que le mot magique est une fonction d'analyse ou un modèle. Si l'ID du mot magique est trouvé parmi la liste des fonctions d'analyse déclarée via un appel à, il est traité comme une fonction d'analyse et interprété en utilisant la fonction appelée  . Sinon, on suppose qu'il s'agit d'un modèle.
 * 1) Est-ce une fonction d'analyse ? S'il y a des paramètres ou si l'ID du mot magique est absent de la liste des IDs de mots magiques qui sont des variables, alors MediaWiki suppose que le mot magique est une fonction d'analyse ou un modèle. Si l'ID du mot magique est trouvé parmi la liste des fonctions d'analyse déclarée via un appel à, il est traité comme une fonction d'analyse et interprété en utilisant la fonction appelée  . Sinon, on suppose qu'il s'agit d'un modèle.
 * 1) Est-ce une fonction d'analyse ? S'il y a des paramètres ou si l'ID du mot magique est absent de la liste des IDs de mots magiques qui sont des variables, alors MediaWiki suppose que le mot magique est une fonction d'analyse ou un modèle. Si l'ID du mot magique est trouvé parmi la liste des fonctions d'analyse déclarée via un appel à, il est traité comme une fonction d'analyse et interprété en utilisant la fonction appelée  . Sinon, on suppose qu'il s'agit d'un modèle.

{{note|1= By convention:


 * The magic words called variables are capitalised, case-sensitive and do not have space characters.
 * Parserfunctions are prefixed with a hash sign ( {{# ), are case insensitive and do not include space characters.

This is however a convention and one not consistently applied (for historic reasons).


 * Variables do not have space characters, but some translations of variables in other languages DO have spaces
 * Variables generally are capitalised and case-sensitive, but some parser functions also use this convention.
 * Some parser functions start with a hash sign, but some do not.

Where possible you should follow the conventions when defining or translating magic words. Magic words are higher in priority than templates, so any magic word defined, will block the usage of that defined name as a template. Following the conventions avoids adding more and more potential collisions. }}

Définir des mots magiques
Pour que des mots deviennent réellement magiques, il faut définir deux choses :
 * une correspondance entre le texte wiki et un ID de mot magique,
 * une correspondance entre un ID de mot magique et une fonction PHP quelconque qui interprète ce mot magique.


 * a mapping between wiki text and a magic word ID
 * a mapping between a magic word ID and some php function that interprets the magic word.

Faire correspondre le code wiki aux IDs des mots magiques
La variable $magicWords est utilisée pour associer chaque ID de mot magique avec un tableau dépendant de la langue qui décrit toutes les chaînes textuelles correspondant à l'ID du mot magique. Important: ceci ne met à jour que la correspondance i18n dans le coeur, vous devez encore écrire le code pour que MediaWiki puisse utiliser ce mot magique. Also, make sure that you initialize  as an empty array before adding language-specific values or you will get errors when trying to load the magic word and will need to rebuild your localization cache before it will work.

Le premier élément de ce tableau est un drapeau entier qui indique si le mot magique est sensible à la casse ou pas. Les autres éléments sont une liste des textes qui doivent être associés à l'ID du mot magique. Si le drapeau de sensibilité à la casse est à 0, toute combinaison de casse des lettres composant le nom sera acceptée. S'il est à 1, seule la correspondance exacte des majuscules/minuscules sera associée à l'ID du mot magique. Ainsi, le format est

Cette association est créée par $magicWords dans un fichier enregistré en utilisant.

Dans l'exemple ci-dessous, une installation du MediaWiki espagnol va associer l'ID de mot magique 'MAG_CUSTOM' avec « personalizado", "custom", « PERSONALIZADO »,  « CUSTOM » et toutes les autres variantes de casse. Pour un MediaWiki anglais, seul  « custom » avec toutes ses variantes de casse sera associé à 'MAG_CUSTOM':  In an English MediaWiki only "custom" in various case combinations will be mapped to 'MAG_CUSTOM':

Fichier :

En partie dans le fichier extension.json :

Notez que « ExampleMagic » est différent de la clé que vous utiliseriez pour un fichier d'internationalisation brut (normalement simplement le titre de l'extension, par exemple « Example »). « Magic » a été délibérément ajouté pour ne pas qu'ils se marchent dessus.

En PHP intégré
Vous pouvez associer des mots magiques en ligne en PHP plutôt que via un fichier i18n. Ceci est utile lors de la définition d'accroches (hooks) dans

Associer un ID de mot magique à une fonction PHP
Le mécanisme pour associer les identifiants de mots magiques aux fonctions de rendu dépend du fait que le mot magique sera utilisé comme fonction parser ou comme variable. Pour plus d'informations, veuillez consulter :



Enregistrer les mots magiques
Vous n'êtes pas obligé d'enregistrer les IDs des mots magiques. Il vous suffit d'enregistrer les fonctions d'analyse ou les variables qui les utilisent.

Internationalisation

 * Voir la localisation pour l'aide.

Vous pouvez en savoir plus sur la définition et l’utilisation des mots magiques pour l’internationalisation sur Manual:Messages API, Manual:Langue#Espace de noms ; Évitez  dans les messages.

Sélecteur de comportement (mots magiques avec souligné double)
Les sélecteurs de comportement sont un type particulier de mot magique. Ils peuvent être reconnus par la double utilisation du caractère souligné (plutôt que les doubles accolades). Par exemple,. Example:

Ces mots magiques ne produisent généralement aucun contenu, mais modifient plutôt le comportement d'une page et/ou définissent une propriété de page. Ces mots magiques sont répertoriés dans  et aussi dans Aide:Mots magiques#Changements de comportement. L'effet de chaque changement de comportement est défini dans. Si aucun effet spécifique n'est défini, le mot magique définira simplement une propriété de page dans la table page_props.

Custom behavior switch
To implement a custom behavior switch.

Voir aussi

 * - Liste de variables comme et