rastrillo / fiesta Public

Clone
git clone https://amadan.net/rastrillo/fiesta

Plain git — no account needed to clone.

Download

Download this file

1{
2 "examples.actor.blurb": "Кто что сделал, словами: имя человека, либо агент и человек, от имени которого он действовал. Без значка и без иконки.",
3 "examples.actor.states.an-agent-acting-for-a-person": "Имя агента, затем человек, от имени которого он действовал. Когда что-то сделало само приложение, ничего не показывайте.",
4 "examples.api-tokens.blurb": "Страница API-токенов: однократный показ секрета, форма создания, список и кнопки отзыва.",
5 "examples.api-tokens.states.four-tokens-two-of-them-live": "Формы отзыва отправляются на /tokens/revoke, /tokens/revoke-agent и /tokens/revoke-all под путём самой страницы. Направьте их туда, где их обрабатывает ваше приложение.",
6 "examples.api-tokens.states.just-created-the-secret-shown-once": "Покажите это в ответе на саму форму создания и не перенаправляйте его: секрет есть только в этом ответе и больше нигде.",
7 "examples.back-nav.blurb": "Ссылка на уровень выше, над экраном просмотра или редактирования.",
8 "examples.badge.blurb": "Небольшая рамочная метка прописными буквами для статичных пометок. Это не status-pill: тот показывает статус записи.",
9 "examples.box.blurb": "Карточка раздела с отступами и заголовок, который стоит вне её.",
10 "examples.bulk-bar.blurb": "Верхняя полоса режима выбора, заменяющая панель списка: счётчик, ссылка расширить выбор и меню действий.",
11 "examples.bulk-bar.states.three-rows-selected": "Опасный пункт идёт последним: первый пункт — это то, что окружающая форма выполнит по неявному Enter.",
12 "examples.button.blurb": "Кнопки бывают четырёх видов и трёх размеров, а ссылка может выглядеть как кнопка. Индикатор, который форма показывает во время отправки, смотрите в form-foot.",
13 "examples.callout.blurb": "Единственный словарь предупреждений: цветная полоса, значок тона, необязательный жирный заголовок и один абзац текста.",
14 "examples.callout.states.negative-announced-as-an-alert": "role=\"alert\" заставляет экранный диктор объявить сообщение сразу, как оно появится. Оставьте его для сообщений, которые не могут ждать.",
15 "examples.choice-field.blurb": "Карточки вариантов: предпочтительная группа радиокнопок или флажков. Заголовок остаётся коротким, объясняет описание.",
16 "examples.confirm-form.blurb": "Строка действий на странице подтверждения. У необратимых действий свой маршрут, а не диалог, поэтому писать скрипт не для чего.",
17 "examples.confirm-form.states.ordinary-default-cancel-wording": "Ссылка отмены говорит «Отмена», это обычная формулировка. Измените её, когда собственные слова формы понятнее.",
18 "examples.detail-list.blurb": "Список определений о записи на экране подробностей. Моноширинная пометка — для машинных значений.",
19 "examples.dropdown.blurb": "Раскрывающийся блок вовсе без JavaScript: кнопка summary над панелью обычных ссылок. Ставьте его в ряд рядом с тем, на что он действует, и никогда не на отдельной строке.",
20 "examples.dropdown.states.menu-idiom": "Меню на details/summary, стоящее за меню переполнения в шапке и за фильтром панели списка, плюс применённый фильтр в виде снимаемой метки.",
21 "examples.empty-state.blurb": "Карточка пустого состояния. Пустое состояние с подсказками, с чего начать.",
22 "examples.error-page.blurb": "Всё тело ответа с ошибкой: статус, одна честная фраза, путь назад и ссылки для 500, которыми может воспользоваться администратор.",
23 "examples.error-page.states.500-server-error": "500 — единственный статус со ссылкой: администратор может найти её в логах через grep.",
24 "examples.error-page.states.anything-else-the-generic-pair": "Любой статус без собственной формулировки получает эту общую пару: заголовок, сообщающий, что что-то не так, и текст с просьбой попробовать ещё раз.",
25 "examples.field-check.blurb": "Единственный механизм переключения: настоящий флажок с видом тумблера, клавиатура и экранный диктор не страдают.",
26 "examples.field-date.blurb": "Обычное поле даты плюс комбобокс с разбором обычной речи, который добавляет datetime.js, когда у поля есть data-rst-date. Наберите в нём \"завтра\".",
27 "examples.field-date.states.enhanced-input-type-tomorrow-or-in-3-weeks": "Слова, которые оно разбирает, лежат в data-rst-date-words, здесь на языке страницы. В i18n/<lang>.json они есть на двенадцати языках, так что поле может разбирать любой язык, на котором написана страница.",
28 "examples.field-date.states.plain-the-bare-native-input": "Никаких атрибутов улучшения, поэтому datetime.js нечего найти. Родной выбор даты всё равно открывается.",
29 "examples.field-daterange.blurb": "Начало и конец как один подписанный fieldset. Дайте каждому полю свои name и id.",
30 "examples.field-daterange.states.date-and-time-seeded": "Задайте начало, оставив конец пустым, и datetime.js подставит конец на час позже. Разметка этого не делает, это делает скрипт.",
31 "examples.field-datetime.blurb": "Дата и время в одном поле, одно значение.",
32 "examples.field-datetime.states.enhanced-input-type-tomorrow-or-in-3-weeks": "Слова, которые оно разбирает, лежат в data-rst-date-words, здесь на языке страницы. В i18n/<lang>.json они есть на двенадцати языках, так что поле может разбирать любой язык, на котором написана страница.",
33 "examples.field-datetime.states.plain-the-bare-native-input": "Никаких атрибутов улучшения, поэтому datetime.js нечего найти. Родной выбор даты всё равно открывается.",
34 "examples.field-money.blurb": "Денежная сумма в одной валюте. Код валюты показан рядом с подписью и отправляется вместе с формой, так что валюта, сменившаяся, пока человек печатал, обнаружится при сохранении.",
35 "examples.field-select.blurb": "Обёртка поля вокруг обычного select. Добавьте data-rst-select, и select.js превратит его в комбобокс с фильтром; форма по-прежнему отправляет обычный select. Имеет смысл примерно с десяти вариантов.",
36 "examples.field-select.states.hand-written-with-optgroups": "Сгруппированные варианты — это optgroup, которые вы пишете сами. select.js сохраняет группы, а не выбрасывает их; select может и вовсе отказаться от улучшения с помощью data-rst-select=\"false\".",
37 "examples.field-select.states.twelve-options-the-filterable-combobox": "Добавляйте data-rst-select примерно с десяти вариантов. Если меньше, не добавляйте: поиск среди горстки пунктов — мебель, а не помощь.",
38 "examples.field-text.blurb": "Одно подписанное текстовое поле. Звёздочка обязательного поля скрыта через aria-hidden; программный сигнал — атрибут required у поля.",
39 "examples.field-text.states.the-headline-field": "Главному полю формы, заголовку или имени, задайте rst-input=\"primary\", чтобы поле было заметнее.",
40 "examples.field-textarea.blurb": "Обёртка field-text вокруг textarea.",
41 "examples.field-time.blurb": "Та же обёртка вокруг родного поля времени. Улучшение читает часы, а не календарь.",
42 "examples.field-url.blurb": "Поле веб-адреса, которое принимает example.com с https:// и без. Тот, кто читает форму, должен добавить схему и проверить адрес.",
43 "examples.field.blurb": "Подпись, поле, необязательная подсказка, пояснение и ошибка. Обычный текстовый элемент с явным ID.",
44 "examples.form-error.blurb": "Строка с итогом ошибок формы, role=\"alert\". Не выводите её, когда ошибки нет.",
45 "examples.form-foot.blurb": "Завершающая строка формы: одна главная кнопка отправки и необязательная ссылка отмены. Отмена — ссылка, потому что уйти с формы значит перейти на другую страницу.",
46 "examples.form-foot.states.idle-the-button-before-anything-happens": "Кнопка, которая что-то МЕНЯЕТ, получает состояние загрузки; кнопка, которая только что-то показывает (раскрывающийся блок, выпадающее меню, вкладка), не получает. busy.js применяет это правило к каждой кнопке отправки в каждой форме, включать ничего не нужно.",
47 "examples.form-foot.states.working-what-busy-js-writes-on-the-way-out": "Только нажатая кнопка: остальные кнопки отправки в форме сохраняют свои name и value, а сама форма защищена от повторной отправки. data-busy=\"false\" отключает это — на форме или на одной кнопке; data-busy-label заменяет текст. Без скриптов ничего этого не происходит и форма отправляется точно как всегда, так что ловить повторную отправку по-прежнему должно ваше приложение.",
48 "examples.form-layout.blurb": "Атрибуты, которые задают форме ритм и панель сохранения. Они оборачивают ряд полей, которые вы собираете сами.",
49 "examples.format-abbr.blurb": "Тег <abbr> показывает полную формулировку при наведении. На телефоне это не работает, а программы чтения с экрана часто его пропускают. В первый раз пишите слова полностью тоже.",
50 "examples.format-addresses.blurb": "Тег <address> — не для почтовых адресов. Он говорит, кто написал страницу. Адрес доставки — обычный текст. Список сотрудников — это список.",
51 "examples.format-dates.blurb": "Поместите дату в тег <time> вместе с вариантом, который может прочитать компьютер. Саму дату пишите так, как ваши читатели ожидают её увидеть. Fiesta не будет её форматировать за вас.",
52 "examples.format-durations.blurb": "Для длительности тоже используйте <time>. Машиночитаемая запись выглядит странно: PT2H30M — это 2 часа 30 минут.",
53 "examples.format-filesizes.blurb": "Показывайте округлённый размер вроде 4 МБ, а точное число байт кладите в тег <data>. Программы чтения с экрана читают то, что на экране, и тег игнорируют, поэтому округлённый размер должен быть полезен сам по себе.",
54 "examples.format-identifiers.blurb": "Их не разбивают. Заказ 4471, а не заказ 4,471. Годы, номера версий и портов — так же. Используйте rst-mono, чтобы они читались как коды, и никогда не кладите такой номер в тег <time>, даже если он похож на дату.",
55 "examples.format-money.blurb": "Храните каждую сумму целым числом в наименьших единицах валюты, например в центах, с кодом валюты рядом. Пишите её так, как принято в языке читателя. Валюта всегда берётся из ваших данных, а не от читателя.",
56 "examples.format-numbers.blurb": "Разбивайте длинные числа, чтобы их читали с одного взгляда: 54,173 по-английски, 54.173 по-немецки, ٥٤٬١٧٣ по-арабски. Никогда не показывайте длинное число сплошными цифрами. В таблице используйте цифры одинаковой ширины, чтобы колонки выстроились.",
57 "examples.format-output.blurb": "Когда страница что-то складывает, положите результат в тег <output>. Текущий итог, пересчитанная цена, обратный отсчёт.",
58 "examples.format-people.blurb": "Имя может быть на любом языке, в том числе на тех, что читаются справа налево. Когда имя стоит посреди строки, оберните его в <bdi>, иначе оно перепутает слова вокруг. Чтобы показать имя с картинкой рядом, используйте person.",
59 "examples.format-ratios.blurb": "Показать, насколько что-то заполнено, — это <meter>. Показать, докуда дошла задача, — <progress>. Число всегда печатайте рядом с полосой. Одна полоса ничего не говорит тому, кто её не видит.",
60 "examples.help.blurb": "Вопросительный знак в рамке, ведущий к статье справки. Его CSS-подсказка — украшение; ссылка несёт собственную подпись целым предложением.",
61 "examples.job-status.blurb": "Ход фоновой задачи: индикатор-вертушка, строка текста и полоса. Атрибуты data-poll говорят, откуда страница могла бы получать свежую копию и как часто. Скрипта, который это делает, в Fiesta нет, так что подключите его сами, а когда задача закончится, уберите атрибуты.",
62 "examples.job-status.states.running": "Атрибуты data-poll говорят, откуда скрипт получал бы свежую копию и как часто. В Fiesta этого ничто не делает, поэтому на этой странице задача так и остаётся выполняющейся.",
63 "examples.layout-column.blurb": "Простая центрированная страница, с которой начинается приложение: ссылка пропуска, заголовок, колонка содержимого и строка подвала для меню языка и цветовой схемы.",
64 "examples.layout-console-page.blurb": "Полоса сверху и навигационная рейка сбоку одновременно: такую форму имеет большинство административных консолей. На телефоне меню полосы открывается карточкой, а рейка становится страницей-оглавлением. JavaScript не нужен.",
65 "examples.layout-console.blurb": "Полоса сверху и навигационная рейка сбоку одновременно: такую форму имеет большинство административных консолей. На телефоне меню полосы открывается карточкой, а рейка становится страницей-оглавлением. JavaScript не нужен.",
66 "examples.layout-sidebar-page.blurb": "Навигационная рейка сбоку от страницы. На телефоне рейка становится страницей-оглавлением, а на каждой другой странице есть кнопка «назад». JavaScript не нужен.",
67 "examples.layout-sidebar.blurb": "Навигационная рейка сбоку от страницы. На телефоне рейка становится страницей-оглавлением, а на каждой другой странице есть кнопка «назад». JavaScript не нужен.",
68 "examples.layout-stage.blurb": "Одна карточка посреди фона во всю страницу — для экрана, который стоит особняком. Она нужна для экрана входа.",
69 "examples.layout-topbar.blurb": "Логотип, навигация и меню аккаунта по верхнему краю, а под страницей — подвал.",
70 "examples.list-bar-search.blurb": "Отдельная форма поиска для списков, которые только ищут. Обычная форма method=\"get\".",
71 "examples.list-bar-search.states.empty-accessible-name-from-the-catalog": "Без placeholder. Доступное имя поля — его aria-label, который приложение пишет на языке страницы.",
72 "examples.list-bar-search.states.with-a-query": "✕ — ссылка на тот же экран без запроса. Фильтр по статусу едет в скрытом поле и сохраняется.",
73 "examples.list-bar-search.states.with-a-query-on-page-4": "Номер страницы едет в скрытом поле, так что новый поиск унёс бы page=4 в выдачу, где уже нет четырёх страниц. Ссылка ✕ его убирает: направьте её на первую страницу списка.",
74 "examples.list-bar.blurb": "Панель инструментов вверху карточки списка, с поиском и фильтром.",
75 "examples.list-grid.blurb": "Настоящий словарь таблиц данных: карточка задаёт колонки один раз, строки только выбирают ячейки.",
76 "examples.list-row-action.blurb": "Одна строка списка: имя записи как основная ссылка, строка сведений и второстепенное действие.",
77 "examples.list-row-action.states.a-short-status-beside-the-name": "rst-status=\"inline\" оставляет короткий статус на строке имени на телефоне. Без него статус переходит под имя.",
78 "examples.list-search-submit.blurb": "Настоящая кнопка отправки формы поиска: визуально скрыта, но в порядке табуляции, и показывается при фокусе с клавиатуры.",
79 "examples.list-search-submit.states.default-label": "Здесь ничего не видно, пока вы не перейдёте сюда клавишей Tab.",
80 "examples.locale-menu.blurb": "Переключатель языка: меню details из POST-форм с одним полем, так что выбор отправляется вашему приложению, а читатель остаётся на том же пути.",
81 "examples.locale-menu.states.twelve-languages-current-highlighted": "Каждый язык — форма с одним полем, так что выбор языка — это POST, на который отвечает ваше приложение. Статический сайт может вместо этого использовать меню из обычных ссылок.",
82 "examples.media-grid.blurb": "Сетка плиток с изображениями. Каждая рамка 4:3, поэтому высокие снимки экрана и широкие баннеры помещаются в одну ровную сетку.",
83 "examples.media-grid.states.screenshots-a-logo-and-a-banner": "Логотипу или баннеру задайте rst-media-frame=\"contain\". Скриншот сохраняет значение по умолчанию и показывает свой верх. Плитка без описания говорит «Без описания».",
84 "examples.media-grid.states.select-mode-one-tile-selected": "Оберните сетку и bulk-bar в одну форму. Флажок каждой плитки отправляет своё значение под именем \"id\"; переименуйте его, если ваше приложение ждёт другое. Внутри формы пункты меню должны быть ссылками.",
85 "examples.meter.blurb": "Полоса заполнения вместе с числом.",
86 "examples.meter.states.over-budget": "При перерасходе полоса заполнена, а число говорит, на сколько: напишите value=\"100\", а настоящую цифру оставьте тексту.",
87 "examples.modal.blurb": "У модального окна есть собственный URL, а не состояние на клиенте: страница под ним помечена inert, панель над ней и обычная ссылка, чтобы закрыть.",
88 "examples.notice.blurb": "Подтверждение в одну строку после перенаправления: одно предложение в абзаце с role=\"status\". Не выводите его, когда сказать нечего.",
89 "examples.page-header.blurb": "Заголовочная полоса экрана: h1, необязательный подзаголовок и основное действие.",
90 "examples.pagination.blurb": "Полоса обычных пронумерованных ссылок, чтобы разбивка на страницы работала и с выключенным JavaScript.",
91 "examples.pagination.states.first-page-default-accessible-name": "aria-label у nav — просто «Навигация по страницам». Если на странице их больше одной, скажите, какой список она листает.",
92 "examples.person.blurb": "Аватар с инициалами, имя и почта. Помогает быстро узнать записи о людях.",
93 "examples.row-menu.blurb": "Прочие действия строки скрыты за кнопкой ⋮. Разрушительное действие ведёт на свою страницу подтверждения.",
94 "examples.row-menu.states.links-a-form-and-a-destructive-item": "Ставьте разрушительный пункт последним и заканчивайте его подпись на …. Он открывает страницу, которая спрашивает, прежде чем что-либо удалить.",
95 "examples.row-menu.states.links-only-for-a-list-inside-a-selection-form": "Внутри формы каждый пункт должен быть ссылкой. Действие, которое отправляет данные, проходит через собственную страницу.",
96 "examples.scheme-menu.blurb": "Переключатель цветовой схемы: меню details из POST-форм с одним полем для вариантов «Светлая», «Тёмная» и «Как в системе». При отправке выбор уходит вашему приложению; без него fiesta.js запоминает выбор в браузере.",
97 "examples.scheme-menu.states.standalone": "За ним нет приложения: у форм нет action, а с data-rst-scheme-store=\"local\" на элементе <html> fiesta.js запоминает выбор в браузере. Этот вариант использует шапка самой галереи.",
98 "examples.scheme-menu.states.three-choices-dark-current": "Каждая схема — форма с одним полем, так что выбор схемы — это POST, на который отвечает ваше приложение, и страница возвращается с выбранной схемой, отмеченной как текущая.",
99 "examples.seg-tabs.blurb": "Сегментированный переключатель из ссылок или кнопок. Текущая ссылка — это aria-current, нажатая кнопка — aria-pressed=\"true\".",
100 "examples.seg-tabs.states.buttons-that-switch-in-place": "Кнопки — для выбора, который меняет страницу на месте, например вид. Ваш скрипт переносит aria-pressed на нажатую кнопку.",
101 "examples.selbox.blurb": "Флажок выбора, который строка списка носит в режиме выбора. Его подпись повторяет, что это за строка.",
102 "examples.shell-sidebar.blurb": "Обрамление оболочки sidebar на странице с содержимым: на телефоне это кнопка возврата к оглавлению.",
103 "examples.shell-topbar.blurb": "Собственная обвязка оболочки с верхней панелью, в виде разметки. Целая страница, к которой она относится, — layout-topbar в разделе «Оболочки».",
104 "examples.side-nav.blurb": "Боковое меню внутри панели: столбец ссылок рядом с содержимым панели. В узкой панели ссылки выстраиваются в строку, которая прокручивается вбок.",
105 "examples.side-nav.states.four-sections-the-first-open": "rst-side берёт ширину у родителя. В flex-строке задайте ему flex: 1 1 0, иначе он может сжаться до нуля.",
106 "examples.signin.blurb": "Экран входа во всех состояниях, через которые он проходит: просьба ввести адрес, возвращение, после отправки ссылки, когда что-то пошло не так, и другие способы войти.",
107 "examples.signin.states.a-passkey": "Самый быстрый вход для того, у кого он есть, и ничего не нужно печатать. Предложите и второй способ: люди теряют устройства, а ключ, который не срабатывает, — это запертая дверь.",
108 "examples.signin.states.after-the-link-is-sent": "Повторите адрес как есть. Это единственный шанс заметить опечатку до того, как человек начнёт ждать письмо, которое никогда не придёт.",
109 "examples.signin.states.after-the-link-is-sent-in-another-browser": "Если адрес отправлял не этот браузер, страница его не угадывает.",
110 "examples.signin.states.an-address-that-does-not-look-right": "Сообщение относится к полю, и фокус начинается именно там.",
111 "examples.signin.states.asking-for-an-address": "Одно поле и одна кнопка. Нечего запоминать и нечего красть.",
112 "examples.signin.states.coming-back-with-an-email-link": "Адрес указан на кнопке, так что печатать ничего не нужно.",
113 "examples.signin.states.coming-back-with-keymail": "Для вернувшегося: адрес, которым он пользовался в прошлый раз, написан на кнопке, так что одно касание его отправляет. Помнить этот адрес и проверять его заново — работа вашего приложения.",
114 "examples.signin.states.email-and-password": "Если вы всё же используете пароли, оставьте ту же схему с одним главным входом и разместите сброс прямо под кнопкой, а не прячьте его.",
115 "examples.signin.states.google-apple-and-the-rest": "Мы даём кнопки, нарисованные так, как требует каждая компания. Сам вход мы не даём: его вы подключаете к своему провайдеру.",
116 "examples.signin.states.on-the-way-to-keymail": "Страница ожидания, пока человека отправляют дальше на вход. Ваше приложение само переводит страницу дальше; ссылка на случай, если этого не произойдёт.",
117 "examples.signin.states.when-keymail-could-not-confirm-it": "Кнопка меняется и вместо этого отправляет ссылку, чтобы никто не застрял.",
118 "examples.signin.states.when-keymail-was-offered-and-a-link-went-out": "Одна строка сообщает, что на этот раз отправлена ссылка. Причину она не угадывает.",
119 "examples.signin.warnings.email-and-password.body": "Люди используют их повторно, они утекают, а хранить их безопасно приходится вам. Используйте ссылку в письме вместе с ключом доступа или только ключи доступа. Разметка здесь потому, что некоторым продуктам она всё ещё нужна.",
120 "examples.signin.warnings.email-and-password.title": "Мы не рекомендуем пароли",
121 "examples.snippet.blurb": "Строка кода для копирования: код в рамке и кнопка «Копировать», которую copy.js показывает там, где у браузера есть буфер обмена.",
122 "examples.stat-band.blurb": "Ряд показателей вдоль верха панели.",
123 "examples.stat-band.states.two-to-a-line-on-a-phone": "rst-stats=\"pairs\" ставит на телефоне по два показателя в строку. Без него они идут по одному в строке.",
124 "examples.stat.blurb": "Одно число на панели, с подписью и тем, насколько оно изменилось.",
125 "examples.stat.states.a-shortened-number": "Показываете 4.1k вместо 4120? Поместите полное число в value тега <data>. Экранные дикторы читают только то, что на экране, поэтому всё, что нужно человеку, оставляйте в самом числе.",
126 "examples.stat.states.a-smaller-number": "Нужны только подпись и число. Всё остальное необязательно.",
127 "examples.stat.states.the-big-number": "Задайте одному показателю в ряду rst-stat=\"lead\", чтобы сделать его крупным. Это тот же компонент, просто больше.",
128 "examples.stat.states.when-going-down-is-good": "Цвет задаёте вы, а не компонент. Здесь число снизилось, и это хорошая новость, поэтому изменение зелёное.",
129 "examples.stat.states.when-going-up-is-bad": "Здесь число выросло, и это плохая новость, поэтому изменение красное.",
130 "examples.stat.states.when-you-cannot-say": "Не задавайте цвет, и изменение будет серым. Так и делайте, когда нельзя сказать, хорошо это или плохо.",
131 "examples.status-pill.blurb": "Статус записи в виде цветной плашки — цвет и подпись.",
132 "examples.status-pill.states.neutral": "neutral — тон по умолчанию, так что rst-tone=\"neutral\" можно было не писать.",
133 "examples.tblock.blurb": "Карточка с рамкой, тело которой раскрывается только при включённом переключателе, через :has(). Главное — переключатель; раскрытие лишь удобство отображения.",
134 "families.choices-and-actions.blurb": "Элементы, которыми выбирают из вариантов, и строки, которыми заканчивается форма. Каждый стоит внутри rst-box с отступами, потому что именно в такой карточке живёт форма.",
135 "families.choices-and-actions.title": "Выбор и действия",
136 "families.date-and-time.blurb": "Четыре поля, которые улучшает datetime.js: под каждым остаётся встроенный элемент ввода, так что читатель без скриптов получает простой элемент управления, а не сломанный.",
137 "families.date-and-time.title": "Дата и время",
138 "families.display.blurb": "Мелкие части словаря, из которых собирается экран: статус, личность, прогресс и единственная форма предупреждения.",
139 "families.display.title": "Отображение",
140 "families.form.blurb": "Поля, в которые человек что-то вводит, в тех состояниях, в которые их ставит настоящая форма. Каждое стоит внутри rst-box с отступами, потому что именно в такой карточке живёт форма.",
141 "families.form.title": "Форма",
142 "families.formats.blurb": "Как показывать даты, числа, деньги, имена и адреса — и какие из них путают друг с другом.",
143 "families.formats.title": "Даты, числа и имена",
144 "families.list-screen.blurb": "Обычный экран списка: заголовок, панель инструментов и строки, работающие и на десктопе, и на телефоне.",
145 "families.list-screen.title": "Экран списка",
146 "families.primitives.blurb": "Формы, которыми компонент быть не может, потому что они оборачивают тело, известное только вызывающему: карточки, сетки данных, меню и собственная обвязка каркасов.",
147 "families.primitives.title": "Примитивы интерфейса",
148 "families.route.blurb": "Части, которые сами по себе целый ответ, а не кусок ответа.",
149 "families.route.title": "Маршрут",
150 "families.screens.blurb": "Целые экраны, собранные из компонентов. Начните свой с одного из них.",
151 "families.screens.title": "Экраны",
152 "families.shells.blurb": "Каркасы страниц, в которых строится приложение: колонка, верхняя панель, боковая панель, консоль и сцена. Каждый открывается на всю ширину.",
153 "families.shells.title": "Оболочки",
154 "gallery.back": "Назад к дизайн-системе",
155 "gallery.brand": "Fiesta",
156 "gallery.copied": "Скопировано",
157 "gallery.copy": "Копировать",
158 "gallery.copy.failed": "Не удалось скопировать. Выделите код и скопируйте его сами.",
159 "gallery.demo.callout.body": "Каждый экран — отдельная страница, простой HTML в оболочке с боковой панелью, и работает так же с выключенным JavaScript. На телефоне разделы становятся списком, а у каждого экрана есть путь назад.",
160 "gallery.demo.heading": "Демоприложение",
161 "gallery.demo.lead": "Работающее приложение, собранное только из этой системы: сводка, список, одна открытая запись. У каждого свой адрес. Без JavaScript.",
162 "gallery.demo.open": "Открыть демоприложение",
163 "gallery.demos.app": "Демоприложение",
164 "gallery.demos.modal": "Маршрут модального окна",
165 "gallery.demos.shell": "Оболочка {shell}",
166 "gallery.example.html": "HTML показывает разметку для копирования.",
167 "gallery.example.live": "Каждый пример работает, но его ссылки никуда не ведут.",
168 "gallery.filter": "Фильтр",
169 "gallery.filter.empty": "Совпадений нет",
170 "gallery.frame.title": "{example}: {state}",
171 "gallery.html": "HTML",
172 "gallery.icons.kebab": "kebab и menu — та пара, которую стоит не путать: kebab — это три точки, означающие «ещё действия для этой строки», а menu — три линии, означающие навигацию. Оболочки при сворачивании используют menu.",
173 "gallery.icons.lead": "{total} иконок из Lucide, каждая — встроенный SVG, размер которого задаёт соседний текст через собственное правило .icon в tokens.css; здесь показан именно этот размер.",
174 "gallery.icons.lucide": "Полный набор — на {link}.",
175 "gallery.icons.names.body": "{renamed} из {total} отличаются от имени, которое публикует lucide.dev. Если последняя строка под иконкой не повторяет её имя, это одна из них. Имена останутся прежними, из какого бы набора иконки ни рисовались потом.",
176 "gallery.icons.names.heading": "Имена принадлежат Fiesta",
177 "gallery.icons.source": "Откуда взяты глифы",
178 "gallery.icons.source.body": "Lucide под лицензией ISC, скопированный в репозиторий, а не загружаемый. Выпуск содержит встроенные SVG и спрайт; галерея рисует каждую иконку так же, как это делает компонент.",
179 "gallery.kind.getting-started": "Начало работы",
180 "gallery.kind.icons": "Иконки",
181 "gallery.kind.overview": "Обзор",
182 "gallery.kind.tokens": "Токены",
183 "gallery.language": "Язык",
184 "gallery.language.current": ", сейчас {language}",
185 "gallery.locale.name": "Русский",
186 "gallery.modal.account": "Аккаунт",
187 "gallery.modal.billing": "Оплата",
188 "gallery.modal.body": "Измените имя и фото, которые показываются по всему аккаунту.",
189 "gallery.modal.close": "Закрыть настройки",
190 "gallery.modal.inapp": "В настоящем приложении ✕ вернул бы вас на экран, который виден позади.",
191 "gallery.modal.nojs": "Ссылка закрытия сделана так, чтобы работать без JS.",
192 "gallery.modal.notifications": "Уведомления",
193 "gallery.modal.own": "У модальных окон есть собственный URL.",
194 "gallery.modal.profile": "Профиль",
195 "gallery.modal.settings": "Настройки",
196 "gallery.modal.sub": "Страница, над которой открылось модальное окно. Она помечена inert, поэтому, пока панель наверху, ничто здесь не получает фокус и не доходит до экранного диктора.",
197 "gallery.nav.demos": "Демо",
198 "gallery.nav.overview": "Обзор",
199 "gallery.nav.overview.aria": "Обзор: {section}",
200 "gallery.nav.sections": "Разделы и демо",
201 "gallery.newtab": "откроется в новой вкладке",
202 "gallery.overview.intro": "Fiesta — это система дизайна Rastrillo как самостоятельный проект: согласованные, отточенные, доступные компоненты для любого сайта или приложения, с любым стеком или без него, без JavaScript или с самым малым его количеством, на двенадцати языках, на чистом современном HTML и CSS. Одна таблица стилей, и готово; разметку можно копировать и переделывать как угодно.",
203 "gallery.overview.next": "Куда дальше",
204 "gallery.prefs": "Настройки отображения",
205 "gallery.primitives.modal.live": "Посмотрите его вживую по тому URL, которому он принадлежит",
206 "gallery.primitives.sidebar.live": "Откройте демо каркаса с боковой панелью — отдельный просмотр.",
207 "gallery.primitives.topbar.live": "Откройте демо каркаса с верхней панелью — отдельный просмотр для него.",
208 "gallery.route.tokens": "Все пользовательские свойства, из которых собрана система: цвет и шрифт темы, а также шкалы размера, отступов и скругления.",
209 "gallery.routes": "В приложении это вело бы на {routes}. Здесь его ссылки и формы никуда не ведут.",
210 "gallery.routes.getting-started": "Что входит в поставку: таблица стилей по одной ссылке, каждая тема, необязательные скрипты и строки, и сколько весит каждый файл.",
211 "gallery.routes.icons": "Каждый slug иконки в том размере, в каком её рисуют компоненты, с файлом для копирования и её именем на lucide.dev.",
212 "gallery.shell.open": "Открыть оболочку {shell}",
213 "gallery.skip": "Перейти к содержимому",
214 "gallery.started.file.anchor-js": "Удерживает меню выпадающего списка на экране в браузерах без якорного позиционирования CSS. Там, где оно есть, ничего не делает: удалите файл, когда оно появится во всех браузерах, которые вы поддерживаете.",
215 "gallery.started.file.bundle": "Токены и тема {theme} в одном файле: каждый класс компонентов, каждая шкала и цвета, каждый объявлен один раз парой light-dark().",
216 "gallery.started.file.busy-js": "Правило занятости: пока форма отправляется, её кнопка показывает индикатор не меньше 650ms и не даёт отправить второй раз, а «Назад» возвращает её как было.",
217 "gallery.started.file.calendar-js": "Сетка месяца, которую открывает кнопка календаря этого поля. Бездействует, пока datetime.js не запросит панель; удаляется отдельно: без неё кнопка возвращается к собственному выбору браузера.",
218 "gallery.started.file.copy-js": "Кнопка «Копировать» у сниппета: копирует код, пишет «Скопировано» и остаётся скрытой там, где у браузера нет буфера обмена. Удаляется отдельно.",
219 "gallery.started.file.datetime-js": "Ввод дат на естественном языке. Бездействует, пока поле не подключится через data-rst-date или data-rst-time; удаляется отдельно.",
220 "gallery.started.file.fiesta-js": "Улучшения, которые нужны большинству страниц: меню, закрывающиеся по щелчку снаружи и по Escape, перетаскивание переключателя, нажатое состояние в iOS и меню цветовой схемы. Загружайте его первым.",
221 "gallery.started.file.light-js": "Свет, который читают стили глубины: тени, освещение которых зависит от времени суток, и блик на кнопке под указателем. Удалите его ради неподвижного дизайна.",
222 "gallery.started.file.select-js": "Комбобокс с поиском для field-select. Бездействует, пока select не подключится через data-rst-select; удаляется отдельно.",
223 "gallery.started.file.shell-css": "Сдвиг между страницами на телефоне, для оболочек sidebar и console. Удаляется вместе с shell.js.",
224 "gallery.started.file.shell-js": "Навигация на телефоне для оболочек sidebar и console: сдвиг между страницами, «Назад», который использует историю, и фокус, возвращённый на раздел, откуда вы ушли. Удаляется отдельно.",
225 "gallery.started.file.sprite": "Спрайт с одним symbol на каждую иконку — для сайта, который отдаёт свою копию Fiesta. С CDN вместо этого встраивайте SVG из icons/<slug>.svg.",
226 "gallery.started.file.strings": "Слова, которые select.js, datetime.js и copy.js выводят на экран, на языке {language}. Загружайте тот файл, что совпадает с lang вашей страницы.",
227 "gallery.started.file.theme": "Цвет, гарнитура и форма для темы {theme}: один блок :root, где каждый цвет объявлен один раз парой light-dark().",
228 "gallery.started.file.tokens": "Структура: все классы компонентов, все шкалы и ни одного цветового литерала. Один и тот же файл при любой теме.",
229 "gallery.started.file.transition-js": "Не даёт записать ошибку при пропуске перехода на страницах column, stage и topbar. Загружайте его до таблиц стилей, без defer. Страницам sidebar и console он не нужен.",
230 "gallery.started.lead": "Fiesta — это одна таблица стилей и горстка необязательных скриптов. Всё работает с выключенными скриптами; скрипты — улучшения, каждый в своём файле, так что вы загружаете те, что использует страница, и ничего больше.",
231 "gallery.started.link.body": "Подключите fiesta.css с CDN, и ваша разметка получит стили. /1/ — самая новая 1.x; изменение, которое сломало бы существующую разметку, — это новая мажорная версия. Закрепите точную версию, когда нужны байты, которые никогда не меняются.",
232 "gallery.started.link.heading": "Одна ссылка",
233 "gallery.started.own.body": "Возьмите из выпуска tokens.css и одну тему или объединённый файл и отдавайте их со своим сайтом; у файлов в releases/<version>/ в репозитории есть SHA256SUMS. Подключайте tokens.css первым.",
234 "gallery.started.own.heading": "Своя копия на своём сервере",
235 "gallery.started.scripts": "Скрипты",
236 "gallery.started.scripts.body": "fiesta.js закрывает меню, позволяет перетаскивать ручку переключателя, даёт iOS нажатое состояние и управляет меню цветовой схемы; загружайте его первым. busy.js, light.js, anchor.js, shell.js, transition.js, copy.js, select.js, datetime.js и calendar.js бездействуют, пока страница не использует то, что они улучшают, и каждый можно удалить отдельно. calendar.js загружайте последним.",
237 "gallery.started.stylesheets": "Таблицы стилей",
238 "gallery.started.stylesheets.body": "fiesta.css — это tokens.css и тема Day вместе, без комментариев, меньше 25 KiB после gzip. Токены задают раскладку и поведение каждого компонента; тема их раскрашивает. fiesta-plain.css и fiesta-signal.css — те же токены с темами Plain и Signal. Страница с оболочкой sidebar или console подключает ещё и shell.css; больше он никому не нужен.",
239 "gallery.started.total": "Страница, подключающая fiesta.css и все скрипты, получает {raw} CSS и JavaScript в исходном виде, {gzip} после gzip.",
240 "gallery.started.upgrading": "Обновление",
241 "gallery.started.upgrading.body": "Страница на /1/ получает каждый выпуск 1.x в день его выхода; что изменилось, сказано в журнале изменений. Страница, закреплённая на точной версии, меняется, когда вы меняете ссылку, и не раньше.",
242 "gallery.started.weight": "{raw} в исходном виде · {gzip} после gzip · {stripped} после gzip без комментариев",
243 "gallery.started.weights": "Сколько весит каждый файл",
244 "gallery.started.weights.note": "Размеры в KiB. Посетитель скачивает версию после gzip.",
245 "gallery.step.next": "Дальше: {page}",
246 "gallery.step.prev": "Назад: {page}",
247 "gallery.steps.label": "Назад и дальше",
248 "gallery.theme.label": "Тема",
249 "gallery.title": "{page} · Fiesta · {theme}",
250 "gallery.tokens.group.accent": "Акцент",
251 "gallery.tokens.group.controls": "Элементы управления",
252 "gallery.tokens.group.depth": "Глубина",
253 "gallery.tokens.group.radius": "Скругление",
254 "gallery.tokens.group.spacing": "Отступы",
255 "gallery.tokens.group.status-tones": "Тона статусов",
256 "gallery.tokens.group.surfaces-and-lines": "Поверхности и линии",
257 "gallery.tokens.group.text": "Текст",
258 "gallery.tokens.group.type-choices": "Типографические решения",
259 "gallery.tokens.group.type-family": "Семейство шрифтов",
260 "gallery.tokens.group.type-scale": "Шкала кегля",
261 "gallery.tokens.lead": "Пользовательские свойства, которые читает каждый компонент. Цвет, гарнитура и форма берутся из темы, css/themes/{theme}.css. Шкала шрифта и шаги отступов — это структура, одинаковая во всех темах, и берутся из css/tokens.css.",
262 "gallery.tokens.note": "Показаны светлые значения. Каждый цвет объявлен один раз парой light-dark(), а образцы следуют меню схемы выше. Минимумы WCAG 2.2 AA: 4.5:1 для текста, 3:1 для рамок элементов управления.",
263 "gallery.up": "Назад: {name}",
264 "gallery.up.label": "Разделы",
265 "gallery.view.desktop": "Компьютер",
266 "gallery.view.legend": "Предпросмотр",
267 "gallery.view.mobile": "Телефон",
268 "gallery.wrap": "Поместите это внутрь {wrapper}.",
269 "labels.actor.a-person": "Человек",
270 "labels.actor.an-agent-acting-for-a-person": "Агент, действующий от имени человека",
271 "labels.api-tokens.four-tokens-two-of-them-live": "Четыре токена, два из них действуют",
272 "labels.api-tokens.just-created-the-secret-shown-once": "Только что создан: секрет показан один раз",
273 "labels.api-tokens.no-tokens-yet": "Токенов пока нет",
274 "labels.back-nav.back-to-a-record": "Назад к записи",
275 "labels.badge.negative": "negative",
276 "labels.badge.neutral": "neutral",
277 "labels.badge.no-tone-quiet-default": "Без тона (тихое значение по умолчанию)",
278 "labels.badge.positive": "positive",
279 "labels.badge.warning": "warning",
280 "labels.bulk-bar.three-rows-selected": "Выбрано три строки",
281 "labels.callout.info": "info",
282 "labels.callout.negative": "negative",
283 "labels.callout.negative-announced-as-an-alert": "negative, объявляется как предупреждение",
284 "labels.callout.positive": "positive",
285 "labels.callout.warning": "warning",
286 "labels.choice-field.pick-any": "Выберите любые",
287 "labels.choice-field.pick-one": "Выберите одно",
288 "labels.confirm-form.destructive": "Необратимое действие",
289 "labels.confirm-form.ordinary-default-cancel-wording": "Обычный случай, текст отмены по умолчанию",
290 "labels.detail-list.four-facts-one-machine-ish": "Четыре факта, один машинный",
291 "labels.dropdown.a-filter-menu-with-one-choice-applied": "Меню фильтра с одним применённым выбором",
292 "labels.empty-state.sentence-only": "Только фраза",
293 "labels.empty-state.with-a-post-call-to-action": "С призывом к действию через POST",
294 "labels.error-page.403-forbidden": "403: нет доступа",
295 "labels.error-page.404-not-found": "404: не найдено",
296 "labels.error-page.422-unprocessable": "422: не удалось обработать",
297 "labels.error-page.500-server-error": "500: ошибка сервера",
298 "labels.error-page.503-unavailable": "503: недоступно",
299 "labels.error-page.anything-else-the-generic-pair": "Всё остальное: общая пара",
300 "labels.field-check.disabled": "Отключено",
301 "labels.field-check.off": "Выключено",
302 "labels.field-check.on": "Включено",
303 "labels.field-date.bounded": "С границами",
304 "labels.field-date.enhanced-input-type-tomorrow-or-in-3-weeks": "Улучшенное поле: введите «завтра» или «через 3 недели»",
305 "labels.field-date.plain-the-bare-native-input": "Plain: голое родное поле",
306 "labels.field-date.required-with-an-error": "Обязательное, с ошибкой",
307 "labels.field-daterange.date-and-time-seeded": "Дата и время, с начальными значениями",
308 "labels.field-daterange.dates-only-with-an-error-on-the-end": "Только даты, с ошибкой на конце",
309 "labels.field-datetime.bounded": "С границами",
310 "labels.field-datetime.enhanced-input-type-tomorrow-or-in-3-weeks": "Улучшенное поле: введите «завтра» или «через 3 недели»",
311 "labels.field-datetime.plain-the-bare-native-input": "Plain: голое родное поле",
312 "labels.field-datetime.required-with-an-error": "Обязательное, с ошибкой",
313 "labels.field-money.bare": "Без ничего",
314 "labels.field-money.with-a-hint": "С подсказкой",
315 "labels.field-money.with-an-error": "С ошибкой",
316 "labels.field-select.hand-written-with-optgroups": "Написан вручную, с optgroup",
317 "labels.field-select.required-with-an-error": "Обязательное, с ошибкой",
318 "labels.field-select.three-options-a-native-select": "Три варианта: обычный select",
319 "labels.field-select.twelve-options-plain-the-enhancement-opted-out": "Двенадцать вариантов, Plain: от улучшения отказались",
320 "labels.field-select.twelve-options-the-filterable-combobox": "Двенадцать вариантов: комбобокс с фильтром",
321 "labels.field-text.bare": "Без ничего",
322 "labels.field-text.required": "Обязательное",
323 "labels.field-text.the-headline-field": "Главное поле",
324 "labels.field-text.with-a-hint": "С подсказкой",
325 "labels.field-text.with-an-error": "С ошибкой",
326 "labels.field-textarea.bare": "Без ничего",
327 "labels.field-textarea.required": "Обязательное",
328 "labels.field-textarea.with-a-hint": "С подсказкой",
329 "labels.field-textarea.with-an-error": "С ошибкой",
330 "labels.field-time.bounded": "С границами",
331 "labels.field-time.enhanced-input-type-half-seven-or-noon": "Улучшенное поле: введите «полвосьмого» или «полдень»",
332 "labels.field-time.plain-the-bare-native-input": "Plain: голое родное поле",
333 "labels.field-time.required-with-an-error": "Обязательное, с ошибкой",
334 "labels.field-url.bare": "Без ничего",
335 "labels.field-url.with-a-hint": "С подсказкой",
336 "labels.field-url.with-an-error": "С ошибкой",
337 "labels.field.bare": "Без ничего",
338 "labels.field.required": "Обязательное",
339 "labels.field.short": "Короткое",
340 "labels.field.the-headline-field": "Главное поле",
341 "labels.field.with-a-hint": "С подсказкой",
342 "labels.field.with-an-error": "С ошибкой",
343 "labels.field.with-help-under-the-control": "Со справкой под элементом управления",
344 "labels.form-error.a-rejected-submission": "Отклонённая отправка",
345 "labels.form-foot.idle-the-button-before-anything-happens": "В покое: кнопка до того, как что-либо произошло",
346 "labels.form-foot.save-and-cancel": "Сохранить и отменить",
347 "labels.form-foot.submit-only": "Только отправка",
348 "labels.form-foot.working-what-busy-js-writes-on-the-way-out": "Работает: что пишет busy.js, когда форма уходит",
349 "labels.job-status.failed": "Не удалось",
350 "labels.job-status.finished": "Готово",
351 "labels.job-status.running": "Выполняется",
352 "labels.list-bar-search.empty-accessible-name-from-the-catalog": "Пусто, доступное имя берётся из каталога",
353 "labels.list-bar-search.with-a-query": "С запросом",
354 "labels.list-bar-search.with-a-query-on-page-4": "С запросом, на странице 4",
355 "labels.list-bar.search-with-a-filter-dropdown": "Поиск с выпадающим фильтром",
356 "labels.list-row-action.a-short-status-beside-the-name": "Короткий статус рядом с именем",
357 "labels.list-row-action.lead-marker-status-and-an-action": "Начальная метка, статус и одно действие",
358 "labels.list-row-action.name-and-meta-line-only": "Только имя и строка сведений",
359 "labels.list-search-submit.default-label": "Подпись по умолчанию",
360 "labels.locale-menu.twelve-languages-current-highlighted": "Двенадцать языков, текущий выделен.",
361 "labels.media-grid.screenshots-a-logo-and-a-banner": "Снимки экрана, логотип и баннер",
362 "labels.media-grid.select-mode-one-tile-selected": "Режим выбора, выбрана одна плитка",
363 "labels.meter.empty": "Пусто",
364 "labels.meter.full": "Заполнено",
365 "labels.meter.nearly-full": "Почти заполнено",
366 "labels.meter.over-budget": "Сверх лимита",
367 "labels.meter.part-way": "Наполовину",
368 "labels.notice.a-saved-message": "Сообщение о сохранении",
369 "labels.page-header.title-only": "Только заголовок",
370 "labels.page-header.title-subhead-and-a-primary-action": "Заголовок, подзаголовок и одно главное действие",
371 "labels.pagination.first-page-default-accessible-name": "Первая страница, доступное имя по умолчанию",
372 "labels.pagination.middle-of-a-long-list": "Середина длинного списка",
373 "labels.person.large-the-show-header-size": "Крупный: размер для шапки экрана просмотра",
374 "labels.person.name-and-email": "Имя и почта",
375 "labels.person.no-initial": "Без инициала",
376 "labels.row-menu.links-a-form-and-a-destructive-item": "Ссылки, форма и разрушительный пункт",
377 "labels.row-menu.links-only-for-a-list-inside-a-selection-form": "Только ссылки, для списка внутри формы выбора",
378 "labels.scheme-menu.standalone": "Сам по себе: страница запоминает выбор",
379 "labels.scheme-menu.three-choices-dark-current": "Три варианта, выбрана Тёмная.",
380 "labels.seg-tabs.buttons-that-switch-in-place": "Кнопки, которые переключают на месте",
381 "labels.seg-tabs.two-sections": "Два раздела",
382 "labels.side-nav.four-sections-the-first-open": "Четыре раздела, открыт первый",
383 "labels.signin.a-passkey": "Ключ доступа",
384 "labels.signin.after-the-link-is-sent": "После отправки ссылки",
385 "labels.signin.after-the-link-is-sent-in-another-browser": "После отправки ссылки, в другом браузере",
386 "labels.signin.an-address-that-does-not-look-right": "Адрес, который выглядит неправильно",
387 "labels.signin.asking-for-an-address": "Запрос адреса",
388 "labels.signin.coming-back-with-an-email-link": "Возвращение по ссылке из письма",
389 "labels.signin.coming-back-with-keymail": "Возвращение через Keymail",
390 "labels.signin.email-and-password": "Почта и пароль",
391 "labels.signin.google-apple-and-the-rest": "Google, Apple и остальные",
392 "labels.signin.on-the-way-to-keymail": "По пути в Keymail",
393 "labels.signin.when-keymail-could-not-confirm-it": "Когда Keymail не смог подтвердить",
394 "labels.signin.when-keymail-was-offered-and-a-link-went-out": "Когда предлагался Keymail, а ушла ссылка",
395 "labels.snippet.a-line-to-copy": "Строка для копирования",
396 "labels.stat-band.two-to-a-line-on-a-phone": "По два в строке на телефоне",
397 "labels.stat.a-shortened-number": "Сокращённое число",
398 "labels.stat.a-smaller-number": "Число поменьше",
399 "labels.stat.the-big-number": "Большое число",
400 "labels.stat.when-going-down-is-good": "Когда снижение: это хорошо",
401 "labels.stat.when-going-up-is-bad": "Когда рост: это плохо",
402 "labels.stat.when-you-cannot-say": "Когда сказать нельзя",
403 "labels.status-pill.negative": "negative",
404 "labels.status-pill.neutral": "neutral",
405 "labels.status-pill.positive": "positive",
406 "labels.status-pill.warning": "warning",
407 "pages.idioms.box.body": "У rst-list и rst-card намеренно нет отступов: они держат череду строк, а каждая строка отбивает себя сама. Положите внутрь форму, абзац, полосу ссылок или что угодно, что не строка, и это отрисуется вплотную к границе; текст, касающийся края, и есть примета. Карточка с отступами для произвольного содержимого: rst-box, а её заголовок стоит перед ней соседним rst-box-head.",
408 "pages.idioms.box.title": "Какая карточка какая",
409 "pages.idioms.list-grid.body": "Экран — это столбец: page-header, затем section-header и карточка, затем следующий section-header и карточка, в порядке чтения. Горизонтальная раскладка оставлена тем приёмам, которые её несут: rst-box-head, rst-field-row, rst-lbar, ячейки rst-lrow, rst-seg-tabs.",
410 "pages.idioms.list-grid.title": "Экраны складываются по вертикали"
411}
412