Шаблон:Namespace detect/doc: различия между версиями

Материал из Буквицы
Перейти к навигации Перейти к поиску
м (Karaby переименовал страницу Page 216 в Шаблон:Namespace detect/doc без оставления перенаправления)
Нет описания правки
 
Строка 1: Строка 1:
{{documentation subpage}}
<noinclude>{{docpage}}</noinclude>
{{high-risk|3,000,000+}}
{{lua|Module:Namespace detect}}
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->
<!-- PLEASE ADD CATEGORIES AND INTERWIKIS AT THE BOTTOM OF THIS PAGE -->


This is the {{tl|namespace detect}} meta-template.  It helps other templates detect what type of page they are on.
Этот мета-шаблон предназначен для определения типа страницы по имени пространства.


It detects and groups all the different [[Wikipedia:Namespace#Enumeration|namespaces]] used on Wikipedia into several types:
Шаблон определяет и разделяет все [[w:Википедия:Пространство имён|пространства]] страниц используемые в Википедии на несколько типов:


:'''main''' = Main/article space, where normal Wikipedia articles are kept.
:'''<code>main</code>''' = основное/пространство статей, в котором располагаются обычные статьи Википедии.
:'''talk''' = Any talk space, including page names that start with "Talk:", "User talk:", "File talk:" and so on.
:'''<code>talk</code>''' = любые пространства обсуждения страниц, начинающиеся со слов «Обсуждение:», «Обсуждение участника:», «Обсуждение файла:» и т.п.
:'''user, wikipedia, file, mediawiki, template, help, category''', '''portal''' and '''book''' = Other namespaces except the talk pages.
:'''<code>user, wikipedia, file, mediawiki, template, help, category</code>''' и '''<code>portal</code>''' = другие пространства кроме пространств обсуждения.
:'''other''' = Any namespaces that were not specified as a parameter to the template. See explanation below.
:'''<code>other</code>''' = любые пространства не указанные в параметре шаблона. См. пояснение ниже.


For backwards compatibility this template also understands '''image''' for '''file'''. '''Image''' is now deprecated.
Для обратной совместимости этот шаблон понимает старое имя '''<code>image</code>''' (изображение) для пространства '''<code>file</code>''' (файл). Однако использовать '''<code>image</code>''' теперь нежелательно.


'''Note:''' For most cases it may be better to use the simpler namespace detection templates (see the [[#See also|see also]] section below). This template is more prone to human errors such as misspelling parameter names.
'''Внимание!''' В большинстве случаев лучше использовать более простые шаблоны определения пространств страниц (смотри раздел [[#См. также|См. также]] ниже), так как этот шаблон более уязвим к таким человеческим ошибкам, как описки в имени параметров.  


=== Usage ===
=== Использование ===
This template takes one or more parameters named after the different page types as listed above. Like this:
Этот шаблон принимает один или более параметров названных ниже, которые задают типы страниц перечисленные выше. Например:


<pre>
<pre>
{{namespace detect
{{namespace detect
| main  = Article text
| main  = текст в статье
| talk  = Talk page text
| talk  = текст на странице обсуждения
| other = Other pages text
| other = текст на остальных страницах
}}
}}
</pre>
</pre>


If the template is on a main (article) page, it will return this:
Если шаблон будет вызван в статье, находящейся в основном пространстве, он вернёт следующее:


:{{namespace detect| demospace=main
:{{namespace detect| demospace=main
| main  = Article text
| main  = текст в статье
| talk  = Talk page text
| talk  = текст на странице обсуждения
| other = Other pages text
| other = текст на остальных страницах
}}
}}


If the template is on any other page than an article or a talk page it will return this:
Если шаблон будет вызван на любой другой странице, кроме статьи или страницы обсуждения, он вернёт:


:{{namespace detect
:{{namespace detect
| main  = Article text
| main  = текст в статье
| talk  = Talk page text
| talk  = текст на странице обсуждения
| other = Other pages text
| other = текст на остальных страницах
}}
}}


The example above made the template return something for all page types. But if we don't use the '''other''' parameter or leave it empty then it will not return anything for the other page types. Like this:
Примеры выше обязательно что-то вернут на любом типе страниц, но если мы не будем задавать параметр '''<code>other</code>''' или оставим его пустым, то ничего не вернётся на остальных страниц. Например:


<pre>
<pre>
{{namespace detect
{{namespace detect
| file    = File page text
| file    = текст на странице описания файла
| category = Category page text
| category = текст на странице категории
| other    =
| other    =
}}
}}
</pre>
</pre>


On any pages other than file and category pages the code above will render nothing.
На любых страницах, кроме страниц описания фалов и страниц категорий шаблон ничего не отобразит.
<!-- Do not remove this one. It is supposed to render nothing, but we have it here for testing purposes. -->
<!-- Не убирайте этот пример. Он ничего не отображает, но нужен для целей тестирования. -->
:{{namespace detect
:{{namespace detect
| file    = File page text
| file    = текст на странице описания фала
| category = Category page text
| category = текст на странице категории
| other    =
| other    =
}}
}}


By using an empty parameter you can make it so the template doesn't render anything for some specific page type. Like this:
Используя пустое значение параметра можно указать, чтобы шаблон ничего не отображал на указанном типе страниц. Например:


<pre>
<pre>
{{namespace detect
{{namespace detect
| main  =  
| main  =  
| other = Other pages text
| other = текст на остальных страницах
}}
}}
</pre>
</pre>


The code above will render nothing when on mainspace (article) pages, but will return this when on other pages:
Код выше ничего не отобразит в статье, но вернёт следующее на остальных страницах:


:{{namespace detect
:{{namespace detect
| main  =  
| main  =  
| other = Other pages text
| other = текст на остальных страницах
}}
}}


=== Demospace and page ===
=== Параметры demospace и page ===
For testing and demonstration purposes this template can take two parameters named '''demospace''' and '''page'''.  
Для проверки и демонстрации работы шаблон обрабатывает два параметра '''<code>demospace</code>''' (демо-пространство) и '''<code>page</code>''' (страница).  


Demospace understands any of the page type names used by this template, including the '''other''' type. It tells the template to behave like it is on some specific type of page. Like this:
Параметр <code>demospace</code> может принимать любое значение типа страницы которое используемое в шаблоне, включая тип '''<code>other</code>'''. Он указывает шаблону вести себя так, так бы он вёл себя будучи вызван на указанном типе страниц. Например:


<pre>
<pre>
{{namespace detect  
{{namespace detect  
| main  = Article text
| main  = текст в статье
| other = Other pages text
| other = текст на остальных страницах
| demospace = main
| demospace = main
}}
}}
</pre>
</pre>


No matter on what kind of page the code above is used it will return this:
Не важно на каком типе странице вы поместите код, указанный выше он всегда вернёт:


:{{namespace detect  
:{{namespace detect  
| main  = Article text
| main  = текст в статье
| other = Other pages text
| other = текст на остальных страницах
| demospace = main
| demospace = main
}}
}}


The '''page''' parameter instead takes a normal pagename. It makes this template behave exactly as if on that page. The pagename doesn't have to be an existing page. Like this:
В отличие от него параметр <code>page</code> задаёт имя страницы, которое заставляет шаблон вести себя именно так, как если бы он был помещён на указанной в нём странице, которая не обязательно должна существовать на самом деле. Например:


<pre>
<pre>
{{namespace detect  
{{namespace detect  
| user  = User page text
| user  = текст на личной странице пользователя
| other = Other pages text
| other = текст на остальных страницах
| page = User:Example
| page = Участник:Например
}}
}}
</pre>
</pre>


No matter on what kind of page the code above is used it will return this:
Не важно на каком типе страниц будет помещён пример, указанный выше, он всегда вернёт:


:{{namespace detect  
:{{namespace detect  
| user  = User page text
| user  = текст на личной странице пользователя
| other = Other pages text
| other = текст на остальных страницах
| page = User:Example
| page = Участник:Например
}}
}}


It can be convenient to let your template understand the demospace and/or page parameter and send it on to the {{tl|namespace detect}} template. Then do like this:
С помощью параметров <code>page</code> и <code>demospace</code> удобно демонстрировать различное поведение вашего шаблона если он использует шаблон {{tl|namespace detect}}. Для этого их нужно поддержать в вызывающем шаблоне и передать в {{tl|namespace detect}} следующим образом:


<pre>
<pre>
{{namespace detect  
{{namespace detect  
| main  = Article text
| main  = текст в статье
| other = Other pages text
| other = текст на остальных страницах
| demospace = {{{demospace|}}}
| demospace = {{{demospace|}}}
| page  = {{{page|}}}
| page  = {{{page|}}}
Строка 128: Строка 126:
</pre>
</pre>


If both the '''demospace''' and '''page''' parameters are empty or undefined then the template will detect page types as usual.
Если оба параметра '''<code>demospace</code>''' and '''<code>page</code>''' пусты или не заданы, то шаблон будет определять тип страницы как обычно.


=== Parameters ===
=== Параметры ===
List of all parameters:
Список всех параметров:


<pre>
<pre>
Строка 140: Строка 138:
| demospace = {{{demospace|}}} / main / talk / user /  
| demospace = {{{demospace|}}} / main / talk / user /  
               wikipedia / file / mediawiki / template /  
               wikipedia / file / mediawiki / template /  
               help / category / portal / book / other
               help / category / portal / other
| page  = {{{page|}}} / User:Example
| page  = {{{page|}}} / Участник:Например
}}
}}
</pre>
</pre>


Note: Empty values to the "main" ... "book" parameters have special meaning.
Примечание: Пустые значения параметров для "main" ... "portal" имеют специальное назначение.


=== Technical details ===
=== Технические детали  ===
Namespace "Image" was renamed to "File" on 11 December 2008. This template was updated to understand both names well before that, thus it still works fine. For backwards compatibility it still understands "image" both as a parameter name, such as "image = File page text", and as a value "demospace = image".
Пространство «Image» (Изображение) было переименовано в «File» (Файл) 11 декабря 2008 года. Этот шаблон обновлён и понимает оба эти названия, как это было раньше. Для обратной совместимости шаблон корректно обрабатывает название «image», как в названии параметра «image = страница описания фала», так и значении параметра «demospace = image».


Namespace "Book" was added to the English Wikipedia on 28 December 2009. This template has been updated so it detects the "Book:" namespace as type '''book''', and it already automatically detected "Book talk:" as type '''talk'''.
Если вы намереваетесь передавать таблицы в значениях параметров в этот шаблон, вам необходимо учесть:


If you intend to feed tables as content to the numbered parameters of this template, then you need to know this:
[[w:Википедия:Механизм шаблонов|Механизм шаблонов]] не позволяет передавать символ разделителя параметров  «<code>|</code>» внутри значений параметров, если только он не используется внутри другого шаблона <code><nowiki>{{name|param1}}</nowiki></code> или не является разделителем в ссылке <code><nowiki>[[w:Википедия:Механизм шаблонов|помощь]]</nowiki></code>. Поэтому в шаблон нельзя передавать [[w:Википедия:Оформление таблиц|таблицы]] в викиразметке в значениях параметров, если только вы не делаете это безопасным способом используя шаблон {{tl|!}} вместо «<code>|</code>». Чтобы избежать этих сложностей лучше использовать HTML разметку для таблиц, что более продуктивно.


[[Help:Template|Templates]] do have a problem to handle parameter data that contains pipes "<code>|</code>", unless the pipe is inside another template <code><nowiki>{{name|param1}}</nowiki></code> or inside a piped link <code><nowiki>[[Help:Template|help]]</nowiki></code>. Thus templates can not handle [[Help:Table|wikitables]] as input unless you escape them by using the {{tn|!}} template. This makes it hard to use wikitables as parameters to templates. Instead the usual solution is to use "[[Help:HTML in wikitext|HTML wikimarkup]]" for the table code, which is more robust.
== См. также ==
 
* {{tl|main other}}
For more technical details such as about "copying to other projects" and "CSS based namespace detection" see {{tl|main talk other}} and its talk page.
* {{tl|talk other}}
 
* {{tl|user other}}
=== See also ===
* {{tl|template other}}
{{namespace detect see also}}
* {{tl|category other}}


<includeonly>
<includeonly>
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
<!-- CATEGORIES AND INTERWIKIS HERE, THANKS -->
[[Category:Namespace manipulation templates]]
[[Категория:Шаблоны:Для шаблонов|{{PAGENAME}}]]
 
[[ar:قالب:كشف نطاق]]
[[ba:Ҡалып:Namespace detect]]
[[be:Шаблон:Namespace detect]]
[[be-x-old:Шаблён:Вызначэньне прасторы назваў]]
[[bjn:Citakan:Namespace detect]]
[[bn:টেমপ্লেট:Namespace detect]]
[[ca:Plantilla:Detecta espai de noms]]
[[cy:Nodyn:Namespace detect]]
[[dsb:Pśedłoga:Namespace detect]]
[[dv:ފަންވަތް:Namespace detect]]
[[en:Template:Namespace detect]]
[[eo:Ŝablono:Determinas nomspacon]]
[[fa:الگو:Namespace detect]]
[[hi:साँचा:Namespace detect]]
[[hif:Template:Namespace detect]]
[[hsb:Předłoha:Namespace detect]]
[[hu:Sablon:Namespace detect]]
[[ja:Template:Namespace detect]]
[[ko:틀:이름공간 검출]]
[[map-bms:Cithakan:Namespace detect]]
[[mhr:Кышкар:Namespace detect]]
[[mn:Загвар:Namespace detect]]
[[mzn:شابلون:Namespace detect]]
[[no:Mal:Namespace detect]]
[[pa:ਫਰਮਾ:Namespace detect]]
[[pam:Template:Namespace detect]]
[[pt:Predefinição:Namespace detect]]
[[sl:Predloga:Namespace detect]]
[[sr:Шаблон:Namespace detect]]
[[tt:Калып:Namespace detect]]
[[uk:Шаблон:Namespace detect]]
[[ur:سانچہ:Namespace detect]]
[[zh:Template:Namespace detect]]
</includeonly><noinclude>


</includeonly>
[[Категория:Шаблоны:Документация|{{PAGENAME}}]]
</noinclude>

Текущая версия от 04:33, 25 сентября 2013

Этот мета-шаблон предназначен для определения типа страницы по имени пространства.

Шаблон определяет и разделяет все пространства страниц используемые в Википедии на несколько типов:

main = основное/пространство статей, в котором располагаются обычные статьи Википедии.
talk = любые пространства обсуждения страниц, начинающиеся со слов «Обсуждение:», «Обсуждение участника:», «Обсуждение файла:» и т.п.
user, wikipedia, file, mediawiki, template, help, category и portal = другие пространства кроме пространств обсуждения.
other = любые пространства не указанные в параметре шаблона. См. пояснение ниже.

Для обратной совместимости этот шаблон понимает старое имя image (изображение) для пространства file (файл). Однако использовать image теперь нежелательно.

Внимание! В большинстве случаев лучше использовать более простые шаблоны определения пространств страниц (смотри раздел См. также ниже), так как этот шаблон более уязвим к таким человеческим ошибкам, как описки в имени параметров.

Использование

Этот шаблон принимает один или более параметров названных ниже, которые задают типы страниц перечисленные выше. Например:

{{namespace detect
| main  = текст в статье
| talk  = текст на странице обсуждения
| other = текст на остальных страницах
}}

Если шаблон будет вызван в статье, находящейся в основном пространстве, он вернёт следующее:

текст в статье

Если шаблон будет вызван на любой другой странице, кроме статьи или страницы обсуждения, он вернёт:

текст на остальных страницах

Примеры выше обязательно что-то вернут на любом типе страниц, но если мы не будем задавать параметр other или оставим его пустым, то ничего не вернётся на остальных страниц. Например:

{{namespace detect
| file     = текст на странице описания файла
| category = текст на странице категории
| other    =
}}

На любых страницах, кроме страниц описания фалов и страниц категорий шаблон ничего не отобразит.

Используя пустое значение параметра можно указать, чтобы шаблон ничего не отображал на указанном типе страниц. Например:

{{namespace detect
| main  = 
| other = текст на остальных страницах
}}

Код выше ничего не отобразит в статье, но вернёт следующее на остальных страницах:

текст на остальных страницах

Параметры demospace и page

Для проверки и демонстрации работы шаблон обрабатывает два параметра demospace (демо-пространство) и page (страница).

Параметр demospace может принимать любое значение типа страницы которое используемое в шаблоне, включая тип other. Он указывает шаблону вести себя так, так бы он вёл себя будучи вызван на указанном типе страниц. Например:

{{namespace detect 
| main  = текст в статье
| other = текст на остальных страницах
| demospace = main
}}

Не важно на каком типе странице вы поместите код, указанный выше он всегда вернёт:

текст в статье

В отличие от него параметр page задаёт имя страницы, которое заставляет шаблон вести себя именно так, как если бы он был помещён на указанной в нём странице, которая не обязательно должна существовать на самом деле. Например:

{{namespace detect 
| user  = текст на личной странице пользователя
| other = текст на остальных страницах
| page = Участник:Например
}}

Не важно на каком типе страниц будет помещён пример, указанный выше, он всегда вернёт:

текст на остальных страницах

С помощью параметров page и demospace удобно демонстрировать различное поведение вашего шаблона если он использует шаблон {{namespace detect}}. Для этого их нужно поддержать в вызывающем шаблоне и передать в {{namespace detect}} следующим образом:

{{namespace detect 
| main  = текст в статье
| other = текст на остальных страницах
| demospace = {{{demospace|}}}
| page  = {{{page|}}}
}}

Если оба параметра demospace and page пусты или не заданы, то шаблон будет определять тип страницы как обычно.

Параметры

Список всех параметров:

{{namespace detect
| main  = 
...
| other =
| demospace = {{{demospace|}}} / main / talk / user / 
              wikipedia / file / mediawiki / template / 
              help / category / portal / other
| page  = {{{page|}}} / Участник:Например
}}

Примечание: Пустые значения параметров для "main" ... "portal" имеют специальное назначение.

Технические детали

Пространство «Image» (Изображение) было переименовано в «File» (Файл) 11 декабря 2008 года. Этот шаблон обновлён и понимает оба эти названия, как это было раньше. Для обратной совместимости шаблон корректно обрабатывает название «image», как в названии параметра «image = страница описания фала», так и значении параметра «demospace = image».

Если вы намереваетесь передавать таблицы в значениях параметров в этот шаблон, вам необходимо учесть:

Механизм шаблонов не позволяет передавать символ разделителя параметров «|» внутри значений параметров, если только он не используется внутри другого шаблона {{name|param1}} или не является разделителем в ссылке [[w:Википедия:Механизм шаблонов|помощь]]. Поэтому в шаблон нельзя передавать таблицы в викиразметке в значениях параметров, если только вы не делаете это безопасным способом используя шаблон {{!}} вместо «|». Чтобы избежать этих сложностей лучше использовать HTML разметку для таблиц, что более продуктивно.

См. также