Manual:Magic words/gl



As palabras máxicas son unha técnica para facer o mapeamento dunha variedade de expresións wiki a unha soa identidade (ID) que é asociada cunha función. Tanto variábeis coma funcións sintácticas utilizan esta técnica. Todo o texto catalogado à certa identidade será substituído polo valor de regreso da función. A representación das expresións e cada identidade é almacenada na variábel $magicWords nun arquivo que pode ser cargado utilizándose $wgExtensionMessagesFiles[].

As palabras máxicas estándares son implementadas en CoreParserFunctions.php.

Como funcionan as palabras máxicas
Sempre que MediaWiki atopa un texto entre chaves duplas, debe decidir se XXX é unha variábel, unha función sintáctica ou un modelo. Para facer isto, faise unha serie a preguntas:


 * 1) Hai unha palabra máxica asociada a unha ID? O primeiro paso ao resolver marcación do padrón . Este método acada a súa lista de identidades de variábeis dunha lista codificada de identidades de variábeis (véxase  Axuda:Variables) e dunha lista personalizada de variábeis, que é proporcionada por todas as funcións enlazadas no gancho MagicWordwgVariableIDs.
 * 2) **Se a identidade da palabra máxica foi clasificada coma variábel, MediaWiki chama as funcións asociadas co nome do evento 'ParserGetVariableValueSwitch' ata que sexa atopado un que corresponda á palabra máxica e poida devolver o seu valor.
 * 3) É unha función sintáctica? Se hai algún parámetro ou se a ID da palabra máxica non for atopada na lista de palabras máxicas variables, entón MediaWiki supón que a palabra máxica é unha función sintáctica ou modelo. Se a identidade da palabra máxica é atopada na lista de funcións sintácticas declaradas mediante unha chamada de, ela é tratado coma función sintáctica e executada utilizándose a función  . Doutra banda, suponse que é un modelo.
 * 1) É unha función sintáctica? Se hai algún parámetro ou se a ID da palabra máxica non for atopada na lista de palabras máxicas variables, entón MediaWiki supón que a palabra máxica é unha función sintáctica ou modelo. Se a identidade da palabra máxica é atopada na lista de funcións sintácticas declaradas mediante unha chamada de, ela é tratado coma función sintáctica e executada utilizándose a función  . Doutra banda, suponse que é un modelo.

Definindo palabras máxicas
Para que palabras máxicas fagan a súa meigaría, débese definir dúas cousas:
 * unha correspondencia entre texto wiki e unha identidade de palabra máxica
 * unha correspondencia entre unha identidade de palabra máxica e algunha función php que interpreta a palabra máxica.

Catalogando expresións wiki coma ID de palabra máxica
A variábel $magicWords é utilizada para asociar cada palabra máxica cunha matriz dependente de lingua que describe todas as expresións que son catalogadas á identidade da palabra máxica.

O primeiro elemento desta matriz é unha sinatura que indica se a palabra máxica é sensible a maiúsculas e minúsculas. Os elementos restantes son unha lista de texto que debería ser asociado coa identidade da palabra máxica. Se a sinatura de sensibilidade for 0, calquera variación nos nomes listados na matriz combinará. Se a sinatura de sensibilidade for 1, soamente combinacións exactas serán asociadas á identidade da palabra máxica.

Esta asociación é creada por $magicWords nun arquivo rexsitrado con $wgExtensionMessagesFiles[].

No exemplo abaixo, unha instalación española de MediaWiki asociará a identidade da palabra máxica 'MAG_CUSTOM' con "#personalizado", "#custom", "#PERSONALIZADO", "#CUSTOM" e en tódalas outras variantes pertinentes. En MediaWiki en inglés, soamente "#custom" nas diversas combinacións será catalogado coma 'MAG_CUSTOM':

Ficheiro

Ficheiro de inicialización de extensión :

Note que "ExampleMagic" é un tanto diferente da clave que sería utilizada para un ficheiro de internacionalización sinxelo (normalmente apenas a extensión, p. ex. "Exemple"). "Magic" foi engadida deliberadamente, destarte, un non sobrescribe o outro.

Asociando unha ID de palabra máxica a unha función PHP
O mecanismo para asociar o ID de palabra máxica con funcións de execución depende de que se a palabra máxica será utilizada como unha función sintáctica ou unha variábel. Para máis información, véxase:


 * Manual:Funcións sintácticas
 * Manual:Variables

Rexistrando palabras máxicas
En MediaWiki 1.8 e nas versións posteriores non hai ningún requisito explícito para rexistrarse unha identidade de palabra máxica. Definir a función de parser ou as variábeis que as utilizan é suficiente. Para versións anteriores a 1.8, véxase abaixo.

Localización

 * ''Véxase Help:Magic words#Localisation, para axuda.

Pódese ler máis de definición e uso de palabras máxicas para localización en Localisation#PLURAL and GENDER support in JavaScript, Localisation#Localizing namespaces and special page aliases, Localisation#Switches in messages…; Localisation#Be aware of PLURAL use on all numbers, Localisation#Users have grammatical genders, Avoid  in messages.

Palabras máxicas nas versións de MediaWiki antes de 1.8
MediaWiki versions prior to 1.8 differed in the following ways:

 Manual:Hooks/LanguageGetMagic did not pass a language parameter. To simulate this parameter, extensions backported to 1.7 or earlier can extract the language of $wgContLang on their own and proceed as normal and/or offer a language independent process for selecting the ID-text mapping. Extensions that used magic words had to explicitly register their magic word IDs using the hook MagicWordMagicWords. This method simply asked the implementer to supply the ID of the magic word.

 

Chaves de comportamento (palabras máxicas con subliñado duplo)
Behavior switches are a special type of magic word. They can be recognized by their use of double underscores (rather than double braces). For example,.

These magic words typically do no output any content, but instead change the behavior of a page and/or set a page property. These magic words are listed in  and also at Help:Magic words#Behavior switches. The effect of each behavior switch is defined in. If no specific effect is defined, the magic word will simply set a page property in the page_props table.

Véxase tamén

 * Help:Magic words - List of Variables like and
 * Markup spec