''Если вы хотите узнать шаги по установке заготовок тегов, смотрите [Help/Preferences/Map#TaggingPresets "Tagging Presets" tab in Preferences > Map Settings]''[[br]]
''Если вы хотите использовать заготовки тегов или необходима ссылка на заготовку, смотрите [wiki:Presets Presets]''[[br]]
''If you want to add the preset to the list of available presets see [[Extend JOSM#Custompresetsandpublication]]''
[[TranslatedPages(revision=1,outdated=Эта страница находится в процессе перевода или помечена для этой цели. Может содержать ошибки и непереведённые фрагменты)]]
[[PageOutline(2-10,Table of Contents)]]
= Заготовки тегов =
JOSM поддерживает distributed заготовки тегов. Это XML файл, описывающий графический интерфейс для ввода тегов (или свойства, аннотации, иногда называемый картой функции).
Предварительные настройки могут быть размещены в любом месте в интернете или у пользователей в локальной файловой системе. JOSM может быть настроен на использование пользовательских локальных или удаленных заготовок тегов.
== Разработка новой заготовки ==
Заготовки тегов описываются в очень простом XML файле. Подробнее смотрите [#XML ниже].
Смотрите для примера **[source:trunk/data/defaultpresets.xml defaultpresets.xml]**, охватывающий большую часть возможностей, перечисленных ниже.
Пример:
[[Image(Change 1 object.png,align=right)]]
{{{
#!preset
-
}}}
== Описание XML формата ==#XML
Полная схема XSD доступна по следующей ссылке (http://josm.openstreetmap.de/tagging-preset-1.0) а также [source:trunk/data/tagging-preset.xsd the source repository].
=== Теги ===
==== Вводная часть ====
::
Должен быть основным тегом файла. Поддерживает следующие атрибуты:
* '''xmlns="http://josm.openstreetmap.de/tagging-preset-1.0"'''
* '''author''' - имя автора заготовки
* '''version''' - номер версии файла. Для указания версии вы можете использовать две встроенные переменные: `[[revision]]` (номер последней версии страницы wiki) и `[[date]]` (дата последнего редактирования).
* '''description''' (i18n) - описание того, что содержит файл
* '''shortdescription''' (i18n) - очень краткое описание, т.е. "name" заготовки
* '''link''' (i18n) - веб-ссылка на дополнительную информацию (необязательна)
* '''icon''' - информационная иконка для всей заготовки. (Это необходимо для отображения значка в таблице [[Presets]].)
* '''baselanguage''' - когда основной язык не английский, укажите его здесь (при использовании не английских текстов в заготовках, предотвращает автоматический перевод)
(i18n) означает, что значения могут быть локализованы (например de.description).
[[BR]]
==== Коментарии ====
::
Документ может содержать встроенные комментарии.
[[BR]]
==== Создание группы заготовок ====
::
Используется для группировки элементов в меню. `name` необходимо, `icon` необязательный атрибут.
- ::
Every item is one annotation set to select from. `name` необходимо, `type` и `preset_name_label` рекомендуются, `icon` and `name_template` необязательные атрибуты.
::
Добавляет горизонтальную разделительную линию в меню.
[[BR]]
==== Preset window layout ====
::
Метки для отображения статического текста. `text` обязательный атрибут, `icon` и `icon_size` необязательные атрибуты.
::
Добавляет пустую строку (перевод строки).
::
Используется для группировки различных дополнительных параметров. `text` необязательный атрибут. Если используется без `text`, то это эквивалентно
::
Добавляет горизонтальную разделительную линию между элементами.
::
Используется для вставки веб-ссылки. Атрибут `href` необходим.
::
Група флажков. Атрибут `columns` необходим.
::
Это необходимо возле и добавляет заголовок ("Availible roles role count elements") к таблице, которая образуется за счет нескольких .
::
Чтобы указать возможные роли членов в отношениях. Атрибут `key` необходим, `text`, `requisite`, `count`, `type` и `member_expression` необязательные атрибуты.
::
Добавляет ссылку на другую заготовку. Атрибут `preset_name` необходим.
[[BR]]
==== Установка фиксированного значения у ключа ====
::
Этот тег позволяет присвоить какому-либо ключу определённое значение. `key` необходим и, если `value` присутствует, то ключ будет установлен. Если `value` отсутствует, то ключ удаляется. `match` является необязательным атрибутом.
[[BR]]
==== Атрибуты диалоговых окон ввода и выбора ====
::
Текстовое поле. Позволяет пользователю ввести любой текст. `key` обязателен; `text`, `default`, `use_last_as_default`, `auto_increment`, `length`, `alternative_autocomplete_keys` и `match` необязательны.
::
Отображает поле, в котором можно выбрать значение из раскрывающегося списка. `key` и `values` обязательны; `text`, `default`, `editable`, `delimiter`, `values_from`, `display_values`, `short_descriptions`, `use_last_as_default`, `values_searchable`, `length`, `values_no_i18n`, `values_sort` и `match` необязательны.\\
Если `editable="true"` (по умолчанию), блоки могут быть отредактированы как если бы они были текстовыми полями (в дополнение к выпадающему списку). Недоступные для редактирования блоки могут содержать только одно из указанных значений или ничего.
::
Отображает поле, в котором можно выбрать одно или несколько (с помощью клавиши Ctrl и левой кнопки мыши) значений из раскрывающегося списка. `key` и `values` обязательны; `text`, `default`, `delimiter`, `values_from`, `rows`, `display_values`, `short_descriptions`, `use_last_as_default`, `values_searchable`, `values_no_i18n`, `values_sort` и `match` необязательные атрибуты. Перечисленные значения разделяются по умолчанию точкой с запятой (default: semicolon) и записываются в значение тега. Если значение тега уже назначено, то, при открытии диалогового окна, multiselect попытается отметить соответствующие пункты в списке значений как выбранные. Если значение тега не может быть представлено комбинацией значений в списке, то список будет отключен, так чтобы пользователь не смог случайно перезаписать произвольное значение. В отличие от элемента "combo", "multiselect" предполагает использование разделителя в списке значений, описаний и т.д. (по умолчанию точка с запятой). Можно указать произвольный разделитель. Например delimiter="," и запятая будет использоваться в качестве разделителя перечисленных значений.
::
Используется в и . Более подробную информацию смотрите `short_descriptions`. Доступны атрибуты `value`, `display_value`, `short_description`, `icon` и `icon_size`.
::
Флажок, который пользователь может установить или снять (или сделать установленным/снятым по умолчанию). Атрибут `key` обязателен. `text`, `default`, `match`, `value_on` , `value_off` и `disable_off` необязательные атрибуты.
[[BR]]
==== Шаблоны ====
::
Используется для того, чтобы определить шаблон элементов для последующего (многократного) использования. Атрибут `id` обязателен.
::
Используется, чтобы вставить ссылку на ранее определённый шаблон. Атрибут `ref` обязателен.
[[BR]]
=== Атрибуты ===
Атрибуты тегов имеют следующие значения:
name="a_name"::
Указывается имя для элемента. Это имя будет использоваться в графическом интерфейсе для отображения в заготовках тегов.
name_context="context"::
Контекстный перевод `name` атрибутов, чтобы отличить слова с одинаковым написанием, но различным значением (not required for in-file translations)..
type="data_type"::
Если используется, то только с перечисленными объектами может работать заготовка. Могут быть "node", "way", "closedway", "multipolygon", "relation" или любое разделённое запятой их сочетание. Обратите внимание, что "multipolygon" не включается в "relation", поэтому, если preset should apply for multipolygons and other relation types, you need to specify both: "multipolygon,relation". Также используется в теге , чтобы указать, какие типы объектов разрешены для конкретного члена отношения.
icon="iconname"::
Имя файла или ссылка для иконки. Изображение будет использоваться в качестве значка для отображения в списке выбора и при добавлении заготовки на панель инструментов. Иконки могут быть использованы в - ,
и . Значок должен быть квадратными по размеру. См. [[Styles#Iconhandling]] как могут быть указаны иконки.
icon_size="a number"::
Максимальный размер иконки в пикселях px. Если значение не задано, то используется значение по умолчанию 16x16 px для (в и ).
key="some_key"::
Определяет свойство ключа, который будет изменен с помощью элемента. В случае с это name role используемое в отношении.
text="Any text"::
Текст, который будет отображаться перед (при использовании в - после) элементом в графическом интерфейсе пользователя. Также используется для и .
text_context="context"::
Контекстный перевод атрибутов `text`, чтобы отличить слова с одинаковым написанием, но различным значением (not required for in-file translations).
default="default_value"::
Значение по умолчанию для данного элемента. Если пользователем не указано значение для ключа, то текущее значение ключа выбирается по умолчанию (если это применимо). При использовании в - установлен ли флажок или нет по умолчанию (по умолчанию "off"). При использовании в , и по умолчанию "".
values="entry1,entry2,entry3"::
Список значений для и ). Значения должны быть разделены запятыми (для ) или указанным разделителем (для ). If a value contains the delimiter, the delimiter may be escaped with a backslash. If a value contains a backslash, it must also be escaped with a backslash.
values_from="JAVA code"::
To use instead of "values" if the list of values has to be obtained with a Java method of this form: public static String[] getValues(); The value must be: "full.package.name.ClassName#methodName".
values_no_i18n="true|false"::
Отключит internationalisation для значения, чтобы избежать ошибок. См. #11696. По умолчанию "false". Используется в и . (Полезно, например, для часов работы или названия торговых марок..)
values_sort="false"::
Значения в и сортируются по алфавиту на всех языках. С помощью этого атрибута вы можете отключить алфавитную сортировку, если значения должны перечисляться в заданном порядке. См #5509 и #11926. (В JOSM согласно внутренним настройкам по умолчанию для "smoothness" и "trail_visibility".) По умолчанию "true". Пользователи могут глобально отключить сортировку с помощью ключа `taggingpreset.sortvalues`.
values_context="context"::
Контекстный перевод атрибутов `values`, чтобы отличить слова с одинаковым написанием, но различным значением (not required for in-file translations)
display_values="Entry1,Entry2,Entry3"::
Текст отображаемый пользователю в качестве значений. Должно быть одинаковое количество и порядок записей в качестве `values` и `editable` должно быть false или не указано. Для символа разделителя используется тот же символ что и для `values`. Используется в и . Например: если для value="24/7" указать display_value="Круглосуточно", то для пользователя будет показан текст "Круглосуточно" вместо "24/7".
value="foobar"::
Укажите значение, которое будет назначено для тега .
value_on="foobar"::
Укажите значение, которое будет назначено для тега , при установке флажка в (по умолчанию "yes").
value_off="foobar"::
Укажите значение, которое будет назначено для тега , при снятии флажка в (по умолчанию "no").
disable_off="true"::
Использование данного атрибута в позволяет удалять тег вместо назначения ему параметра "no" при снятии флажка в диалоговом окне.
editable="false"::
Отключает возможность ввести произвольный текст в качестве значение тега в поле . По умолчанию "true", что означает, что пользователь может добавить другие значения в виде текста.
use_last_as_default="true|false|force"::
Для , или последние введённые значения используются по умолчанию. С помощью "force" навязывает такое поведение также для уже обозначенных на карте объектов. По умолчанию это "false".
rows="count"::
Указывает количество строк для отображения записей в (если не обозначено, то автоматически определяется Java).
name_template="template", name_template_filter="search expression"::
Custom name formatter for osm primitives matching this preset. Смотрите ниже [[#name_templatedetails]] for details.
match="none|key|key!|keyvalue|keyvalue!"::
Позволяет изменить метод сопоставления, т.е. определяет подходят ли теги объектов заготовке. Если заготовка подходит, то она linked in the [wiki:Help/Dialog/TagsMembership Tags/Membership dialog].
* none: neutral, т.е. не рассматривать этот пункт для сопоставления
* key: positive если key соответствует, в противном случае neutral
* key!: positive если key соответствует, в противном случае negative
* keyvalue: positive если key и value соответствуют, в противном случае neutral
* keyvalue!: positive если key и value соответствуют, в противном случае negative
Обратите внимание, что для match необходим по крайней мере один positive и нет negative. По умолчанию это "keyvalue!" для и "none" для , , и .
id="unique_identifier"::
Уникальный идентификатор для chunck
ref="unique_identifier"::
Уникальный идентификатор (должен быть заранее определен) для включаемого шаблона
columns="a number"::
Количество столбцов для групировки флажков
requisite="optional|required"::
Если член отношения необязателен или не требуется. По умолчанию "optional".
count="a number"::
How often can a role occur (if not given unlimited number is assumed)
member_expression="an expression"::
an expression (cf. search dialog) for objects of this role
preset_name="exact_name"::
Точное название для заготовки в ссылке.
preset_name_label="false|true"::
Whether to insert "[preset name]" метка в диалоговом окне (по умолчанию "false" для обеспечения обратной совместимости с внешними заготовками).
length="a number"::
Длинна ячеки для или box (number - количество символов).
alternative_autocomplete_keys="some_key(s)"::
Разделенный запятыми список альтернативных ключей используемых для автоприращения .
auto_increment="-2,-1,+1,+2"::
Отображаемые значения для автоприращения разделенных запятыми с целым шагом или дискретно, например "-2,-1,+1,+2". Кнопка будет отображаться рядом с полем для каждого значения. Существует также кнопка для отмены автоприращения. По умолчанию автоприращение отключено. Взаимоисключаемо с `use_last_as_default`.
delimiter="special character"::
Символ для разделения значений ключа. В по умолчанию запятая. In case of the default is semicolon and this will also be used to separate selected values in the tag. More information see .
short_descriptions=""Entry1,Entry2,Entry3"::
Список разделенных текстов, которые будут отображаться под каждым `display_value`. (Только если нет возможности описать значение ключа в два-три слова.) Instead of comma separated list instead using values, display_values and short_descriptions, the following form is also supported:
values_searchable="true|false"::
Whether to search in or (display_)values when searching for presets.
===== name_template детали =====
**Name templates can be used to define custom formatting for OSM primitives or GPX waypoints** (для примера в Отношениях или the Selection).
{{{
#!xml
-
}}}
'''Примеры'''
||= Template =||= Tags =||= Result =||
|| `House number {addr:housenumber}` || `addr:housenumber=10` || House number 10
|| `?{ 'House number {addr:housenumber} at {addr:street}' | 'House number {addr:housenumber}' }` || `addr:housenumber=10` || House number 10
|| || `addr:housenumber=10 addr:street=Abbey road` || House number 10 at Abbey road
|| `?{ admin_level = 2 'NUTS 1' | admin_level = 4 'NUTS 2' | admin_level = 6 'NUTS 3' | 'Admin level {admin_level}'}` || `admin_level=4` || NUTS 2
|| || `admin_level=5` || Admin level 5
|| `{admin_level} - {name} !{parent() type=boundary '?{'(part of {admin_level} - {name})' | ''}'}` || `admin_level=6 name=Vysocina`, member of relation `admin_level=4 name=Jihovychod` || 6 - Vysocina (part of Jihovychod)
|| || `admin_level=2 name=Czech republic` (no parents) || 2 - Czech republic
====== Синтаксис ======
* `{var}` - использование значениея переменной var
* `?{condition1 'value1' | condition2 'value2 | 'value3'}` - использовать значение1, если условие1 выполнено, value3 is no condition is satisfied. Состояние может быть либо явным - the same expression as in search or filters is used - или неявным; значение используется, когда все переменные, используемые внутри существуют
* `!{search_expression 'template'}` - search_expression is evaluated and first matching primitive is used as context for template. Полезно, например, чтобы получить теги родительского отношения.
====== Доступные значения ======
Для форматирования OSM примитивов , может быть использовано значение любого тега. Вы можете использовать `{special:everything}`, чтобы увидеть какие значения доступны для GPX путевых точек..
Некоторые дополнительные переменные доступны через специальный префикс:
- `{special:everything}` prints all available values, available for formatting of both primitives and waypoints.
- `{special:id}` prints the ID of an osm primitive
- `{special:localName}` prints the localized name, that is the value of name:lang for your language if it is available or the value of the name tag if it doesn't.
=== Устаревшие атрибуты ===
Следующие атрибуты являются устаревшими и больше не поддерживаются в JOSM:
delete_if_empty="true"::
Был удалён в [5155]. Вы можете просто удалить этот атрибут, если он до сих пор используется в вашей заготовке.
required="true"::
Заменён атрибутом `match` с [5155]
== Перевод ==
Для поддержки переводов, все текстовые элементы ("name", "text", "display_values") также могут быть локализованы. (Т.е. "ru.name" будет загружаться в случае выбора русского языка в интерфейсе программы.)
In JOSM internally ([source:josm/trunk/data/defaultpresets.xml internal preset]) all "name", "text" and "display_values" are translated when no specific translation has been given in XML file. When no "display_values" are supplied, then "values" will be treated as "display_values" and translated instead. When translations of equal words but different meanings may conflict, a translation context should be specified. Use "name_context", "text_context" or "values_context" for this. The context should be a meaningful short description to help translators.
The translation for the internal preset is done at [https://translations.launchpad.net/josm/trunk Launchpad] (and will probably change to another service in the future, since the Launchpad web interface often produces timeout errors, see #8645).
== Icon handling ==
See [wiki:Styles#Iconhandling Styles].
== See also ==
* [wiki:Help/Menu/Presets Presets menu]