Help:Namespaces

From: Everything Food & Drink.org
Jump to: navigation, search

Pages on a MediaWiki wiki are grouped into collections called "namespaces", which differentiate between the purpose of the pages at a high level. Pages in certain namespaces can also have special properties or behave differently when they interact with other pages.

Namespaces are indicated in page titles by prefixing the page name with "namespace:", so the prefix "Help:" in this page's title ("Help:Namespaces") indicates that this page is in the Help namespace. Note, however, that colons and prefixes can also appear in page titles without indicating a namespace: The page Foo:Namespaces is a page located in the mainspace because the namespace "Foo" does not exist. Similarly the page Help:Foo:Namespaces is in the "Help" namespace.

Standard namespaces

The standard MediaWiki installation has sixteen namespaces which can contain user-generated content; there are also two special namespaces which contain pages created 'on the fly' by the MediaWiki software. The standard namespaces are organised in pairs, with each pair containing a 'subject namespace' and a 'discussion namespace'. The namespaces are numbered from zero such that all subject namespaces have even indices, and all talk namespaces have odd indices.

-2: Media

This namespace is an alias used for direct linking to media files: the link Media:Prop1.jpg links to just the image rather than the image description page, which would be File:Prop1.jpg.

-1: Special

This namespace is used to group special pages, reports and interfaces that are generated 'on demand' by MediaWiki and which are not directly editable. It is not possible to create pages in this namespace except by modifying or extending the MediaWiki software.

0:Main / Project

Everything Food & Drink namespaces
Basic namespaces Talk namespaces
0 Main Talk 1
2 User User talk 3
4 Everything Food & Drink Everything Food & Drink talk 5
6 File File talk 7
8 MediaWiki MediaWiki talk 9
10 Template Template talk 11
12 Help Help talk 13
14 Category Category talk 15
100 Book (EFD) Book talk 101
200 Music (MYW) Music talk 201
Virtual namespaces
-1 Special
-2 Media

Namespace zero is the 'null' namespace, commonly called the "main namespace" or "mainspace". This namespace typically contains the bulk of the content pages in a wiki. This namespace generally has no special properties.

The main namespace, recipes namespace or mainspace is the namespace of the Everything Food & Drink project that contains the cookbook proper—that is, where Everything Food & Drink recipes reside.

The main namespace is the default namespace and does not use a prefix in recipe page names. This is distinct from other namespaces where page names are always prefixed by an indicator of the particular namespace in which the page resides. For example, all user pages are prefixed by "User:", their talk pages by "User talk:" templates by "Template:" and various types of internal administrative and project pages by "Everything Food & Drink:". Thus, any page created without such a prefix will automatically be placed in the article namespace.

Not all pages in the recipe namespace are considered to be recipes. The most notable exceptions are:

  • the Main Page;
  • for statistical purposes, some extremely short and simple pages (the criteria have varied over time);
  • thousands of disambiguation pages which are used to resolve naming conflicts;
  • a few hundred redirect pages which are used to re-route one page to another page; and
  • many project lists which serve as navigation tools rather than project recipes.

Every page in the main namespace can have a companion talk page, and these belong to the "Talk" namespace, i.e., the pagenames start with the prefix "Talk:", followed by the name of the page in the main namespace. For example "Talk:Main Page" is the talk page for Everything Food & Drink's main page on the Everything Food & Drink project itself.

1: Talk

The "Talk" namespace is the discussion namespace attached to the mainspace. It has no special properties.

2: User

Each user has a corresponding page in the User namespace, which is linked to from edit histories, watchlists, recent changes, etc; wherever an individual user is uniquely identified. This page, and subpages of it, can be used by users to record information about themselves or to test and draft new content. Pages of the form "User:Example/Foo.js" or "User:Example/Foo.css" can only be edited by the user themselves or by administrators.

3: User talk

This namespace is the talkspace associated with the User namespace. Pages in this namespace are mainly used to leave messages for particular users or inform them of discussions that may be of interest to them. To facilitate this, when a page User talk:Example is edited, whenever the user 'Example' loads a page, a notice is displayed at the top of the page informing them of the edit:

This notice continues to appear until the user loads their user talk page to read the message.

4: Everything Food & Drink

This namespace is normally used for meta-discussions related to the operation and development of the wiki. It has no special properties.

5: Everything Food & Drink talk

This is a talk namespace that is normally used for discussions related to the associated subject pages. It has no special properties.

6: File

Prop1.jpg

The File namespace is used to store metadata for images, videos, sound files and other media accessed via the Media namespace. Each file has a corresponding page in the File namespace which is often used to hold licensing data. Linking directly to a page in this namespace instead includes the media file inline in the page: [[File:Prop1.jpg|150px|right]] produces the image to the right. See Help:Images for more details of this link syntax. To create an internal link to the file page, you need to add a colon to the front of the namespace: [[:File:Prop1.jpg|right]] produces File:Prop1.jpg. The standard MediaWiki installation has alias "Image" for File namespace - See Namespace aliases.

7: File talk

This is a talk namespace that is normally used for discussions related to the associated media files. It has no special properties.

8: MediaWiki

The MediaWiki namespace also known as System messages is used to hold system messages and other important content. For instance, the page MediaWiki:Edit (or MediaWiki:Vector-view-edit in the default "Vector" skin) contains the text that fills the "Edit" tab at the top of every page. If that page exists, it overrides the default content, which is "edit this page". Similarly, MediaWiki:Common.css is the system message which holds the CSS code that is loaded for all users for each page. It has the special property that the entire namespace is fully protected and can only be edited by administrators.

The MediaWiki namespace is one of the 16 standard MediaWiki namespaces. It allows administrators to change the default system messages. The MediaWiki namespace is enabled by Template:H:mwg=true;, which is the default.

For example, see MediaWiki:Aboutpage, MediaWiki:Aboutpage/fr, and MediaWiki:Aboutpage/de.

However, MediaWiki:Sidebar/language_code does not work (for a sidebar for users with that interface language); instead, the page MediaWiki:Sidebar can refer to message IDs which provides link labels dependent on the user-specified interface language. If the message is neither defined in the message file concerned, nor on the MediaWiki page, the message in the message file for English is used.

When viewing a "non-existing" page of which the name is an existing message name, the page shows the default. A "non-existing" page can be recognized by the lack of a history link. When editing such a page, the default is automatically preloaded into the edit window. Transclusion of a "non-existing" page in the MediaWiki namespace trancludes the default.

For the names of all "existing" pages see @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

For all supported languages, all default messages and current versions can be viewed at Special:Allmessages. When creating a page to override the default it is useful to first save the default version, to allow diffs with it.

An administrator with access to the language files can choose between adapting these and creating pages in the MediaWiki namespace. The latter makes it easier to update to a new version of MediaWiki while keeping the own versions of messages. On the other hand, is easier to transfer a language file to another MediaWiki site than to export and import pages, for the benefit of users who have selected the language concerned as interface language.

Also, an administrator can add extra pages to the MediaWiki namespace, to be accessed, for example, by function int (e.g. MediaWiki:Lang), or by a gadget. These are not shown in Special:Allmessages.

An extension can set e.g. message key aaa to bbb by:

  global $wgMessageCache;
  $wgMessageCache->addMessages( array ('aaa' => 'bbb') );

The key has to start with a lowercase letter, even though message files define messages using an ID written with a capital, and even though the corresponding MediaWiki page has a capital after the colon, in this case MediaWiki:Aaa, even on wikis which allow a lowercase first letter in page names. (The default content of MediaWiki:aaa becomes bbb, but changing it has no effect.)

After getting the array $ma of extension messages:

  $ma = $wgMessageCache->getExtensionMessagesFor( 'en' );

the value can be retrieved with $ma['aaa'], e.g. by:

  $wgOut->addWikiText( $ma['aaa'] );

The result after possible overriding by the contents of the MediaWiki page can be retrieved by wfMsg('aaa').

This applies not only for a message in the strict sense; for example, an extension can allow the user community, through an administrator, to supply parameters in this way; this can even be the name of an extension tag, see e.g. mw:Extension:PropertyTable, where the tag <properties> is the default, but e.g. the tag <pr> can be used after creating the page "MediaWiki:propertyTable tag" with the content "pr" (but note that for portability of wikitext across wikis with the same extension this flexibility has also disadvantages).

All characters of namespace prefixes are case-insensitive, so one can write "mediawiki:".

LocalSettings.php can set messages too, see thread.

Template

The Template namespace is used to hold templates, blocks of text or wikicode that are intended to be transcluded into several other pages. To facilitate this it has the special property that it is the default namespace for transclusions: the wikicode {{Foo}} is equivalent to {{Template:Foo}}.

Template talk

This is a talk namespace that is normally used for discussions related to the associated template pages. It has no special properties.

Protection

By default, the whole MediaWiki namespace is protected. This is necessary for a number of reasons:

  • Many messages are in plain HTML, hence users could insert malicious scripts
  • Vandalism of some messages would be extremely disruptive, for example changes to the text of the links in the sidebar would immediately be visible to all users

On the other hand, especially for pages MediaWiki:message_ID/language_code the protection is somewhat impractical because administrators do not know all the languages that can be set for the user interface.

If an administrator wishes to allow general editing of a system message, a template call can be placed in the MediaWiki page, with the template containing the message itself.

A few messages can in theory cause the software to stop working if they are changed, for example "linktrail". Therefore and for processing efficiency the effect of page MediaWiki:Linktrail has been disabled: the software ignores its contents, taking the regular expression straight out of the message files.

Technical details

The namespace number of MediaWiki messages is 8, with a corresponding MediaWiki talk namespace 9 to discuss individual messages. Some MediaWiki wikis offer templates like Template:Links-small to propose modifications, others have a page like Meta:Requests for help from a sysop or bureaucrat for this purpose.

For links to MediaWiki messages, existence detection applies to existence of the message, not existence of the page:

Each message in the $wgAllMessagesEn array in Messages.php corresponds to a page in the MediaWiki namespace. For example, there is a line in the php file:

'protect-text' => 'Protect-text',

To this corresponds the page MediaWiki:Protect-text, and Template:Xpdoc. When this page is edited the new message is automatically used for say http://www.everythingfoodanddrink.org/w/index.php?title=M:Main_page&action=protect. Similarly w:fr:MediaWiki:Protect-text has the content Confirmer la protection, note that the page name itself is not translated.

Transclusion

Transclusion of a system message can be done with the regular tranclusion syntax for the MediaWiki page, even if the page does not exist and the default is used:

Template:Xpdoc, the content of MediaWiki:Edit, or if it does not exist, the system message with id "edit" for the site language

Also, parser function int can be used (for an application, see e.g. Template:Ed):

Template:Xpdoc, the content of MediaWiki:Edit/xx where xx is the user language, or if it does not exist, the system message with id "edit" for this language.

If there is neither a page nor a default the result of "int" is different from "MediaWiki:" even if the user uses the default interface language of the site:

Template:Xpdoc
Template:Xpdoc

Messages defined in extensions, even if they are in Special:Allmessages, may or may not be transcluded:

Template:Xpdoc
Template:Xpdoc

However many messages are not suited for inclusion, because they contain $1 and similar parameters not evaluated by the template parser, or raw CSS and XHTML markup not permitted on normal pages.

While $1, $2, etc. do not work as parameters when using "mediawiki":

  • "{{mediawiki:revertpage|a|b}}" gives "Reverted edits by $2 (talk) to last revision by $1" [1]

they do when using "int":

  • "{{int:revertpage|a|b}}" gives "Reverted edits by b (talk) to last revision by a" [2]

Error messages

Error messages are in the site language, e.g. Template:Xpdoc. This allows branching depending on the type of error, independent of the user language. Note however that wikitext for such branching has to be adapted when transferring it to a wiki with an other site language. This is not needed in the case of branching depending on whether any error occurs, with #iferror.

Interlanguage links

Interlanguage links in MediaWiki messages typically do not work: noinclude tags and the link syntax may not be interpreted.

Instead, one can use in-page interlanguage links on the talk pages, Template:Ilm does this for some major MediaWiki wikis.

Strings exclusive to language file

Some text strings cannot be customised using this feature, and so can only be changed by editing the language file:

  • The namespace titles "User", "Wikipedia", "Image", etc. ($namespaceNames)
  • The names of the special pages ($specialPageAliases)
  • $skinNames (shown in Special:Preferences)
  • $bookstoreList
  • $separatorTransformTable
  • $linkTrail
  • $dateFormats

9: MediaWiki talk

This is a talk namespace that is normally used for discussions related to the associated system messages. It has no special properties.

10: Template

The Template namespace is used to hold templates, blocks of text or wikicode that are intended to be transcluded into several other pages. To facilitate this it has the special property that it is the default namespace for transclusions: the wikicode {{Foo}} is equivalent to {{Template:Foo}}.

11: Template talk

This is a talk namespace that is normally used for discussions related to the associated template pages. It has no special properties.

12: Help

The Help namespace is usually used to hold help files, instructions and 'how-to' guides. It has no special properties.

13: Help talk

This is a talk namespace that is normally used for discussions related to the associated help pages. It has no special properties.

14: Category

The Category namespace contains categories, dynamic lists of other pages. To facilitate this, linking directly to a category page does not output an inline link, but instead includes the page into the associated category page. So the code [[Category:Help]] causes a category link to appear at the bottom of the page (at the bottom in the box marked "Categories"). Clicking on that link takes you to the category page, where this page is visible in the category list. To create an inline link to a category page, you need to add a colon to the front of the namespace: [[:Category:Help]] produces Category:Help. See Help:Categories for more details on category link syntax.

15: Category talk

This is a talk namespace that is normally used for discussions related to the associated category pages. It has no special properties.

Localization

Namespace names and aliases can be localized in TranslateWiki.net, using the special page AdvancedTranslate. To get started, visit Special:FirstSteps.

Renaming namespaces

Canonical name Localized name
Media Media
Special Special
(Main)
Talk Talk
User User
User talk User talk
Project Everything Food & Drink
Project talk Everything Food & Drink talk
File File
File talk File talk
MediaWiki MediaWiki
MediaWiki talk MediaWiki talk
Template Template
Template talk Template talk
Help Help
Help talk Help talk
Category Category
Category talk Category talk

Namespace names can be translated into languages other than English and individual namespaces can be renamed, as set by a wiki's system admins. These names are known as the 'localized' namespace names. However, all namespaces have a 'canonical name', the original English name which will work on any installation of MediaWiki. So linking to User:Foo will always locate the user page for the user foo, whether the wiki is in French (where the localized name would be Utilisateur:Foo), Russian (Участник:Foo), or Hindi (सदस्य:Foo). The canonical namespace names are given in the table to the right along with their localized names on this wiki.

Namespace aliases

On some wikis there are also namespace aliases: alternative names that will also be resolved to the localized names. For instance, a wiki might define "T" as an alias for Template, such that typing T:Foo is equivalent to Template:Foo, saving a few characters and seconds. An actual example would be on the English Wikipedia, where "WP" is an alias for Everything Food & Drink, which is the namespace "Wikipedia". By default, "File" is an alias for File, so [[File:Prop1.jpg]] is equivalent to [[File:Prop1.jpg]].

Custom namespaces

See Template:Mww:Manual:Using custom namespaces for more information.

Some wikis may wish to organize their content in ways that do not fit into this standard set of namespaces. A wiki may define additional namespaces to facilitate this; these namespaces behave exactly like normal namespaces, and generally have indices greater than or equal to 100. These custom namespaces generally have no special properties.

Identifying namespaces

There are a number of ways by which the namespace of a particular page can be identified:

Magic words

The magic word {{NAMESPACE}} returns the value of the namespace the page is in.

JavaScript

The JavaScript variable wgCanonicalNamespace contains the full namespace name. The variable wgNamespaceNumber contains the numerical index of the namespace.

CSS

The <body> tag of the HTML page output is given two CSS classes that vary by namespace: A class ns-#, where # is the index of the namespace, and ns-XXX, where XXX is "subject" for all subject namespaces, "special" for pages in the Special namespace, and "talk" for talk namespaces. So CSS code such as the following can be used to change the appearance of an object based on its namespace:

.ns-subject a 
{   /* Almost all links on subject pages to be green. */
    color: #00FF00;
}
.ns-talk a 
{      /* Links on talk pages to be blue. */
    color: #0000FF;
}
.ns-3 a 
{         /* and links on user talk pages to be red */
    color: #FF0000;
}
API

You can get a complete list of all the namespaces used on this wiki from the API:

http://www.everythingfoodanddrink.org/w/api.php?action=query&meta=siteinfo&siprop=namespaces

Project namespace shortcuts

Index Name Shortcut Purpose
0 Main CNT: Project content recipes/cocktails
1 Main talk CNTT: Project content talk
2 User USR:
3 User talk USRT:
4 Project EFD:
5 Project talk EFDT:
6 File FL:
7 File talk FLT:
8 MediaWiki MW:
9 MediaWiki talk MWT:
10 Template TM:
11 Template talk TMT:
12 Help HP:
13 Help talk HPT:
14 Category CAT:
15 Category talk CATT:

See also

Language: English