Update documentation and code snippets

This commit is contained in:
2025-12-02 22:59:58 +03:00
parent e6645730f0
commit 2800a7ffc2
30 changed files with 1494 additions and 3962 deletions
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"POT-Creation-Date: 2025-12-02 22:27+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -31,50 +31,43 @@ msgid ""
" снижает вероятность опечаток."
msgstr ""
#: ../../root/api/app/autocompleter.rst:8
msgid ""
"``AutoCompleter`` использует ``pyreadline3`` для реализации "
"функциональности `GNU readline` в `Windows`, что позволяет управлять "
"историей команд и автодополнением."
msgstr ""
#: ../../root/api/app/autocompleter.rst:13
#: ../../root/api/app/autocompleter.rst:11
msgid "Инициализация"
msgstr ""
#: ../../root/api/app/autocompleter.rst:20
#: ../../root/api/app/autocompleter.rst:18
msgid "Создаёт и настраивает экземпляр ``AutoCompleter``."
msgstr ""
#: ../../root/api/app/autocompleter.rst:22
#: ../../root/api/app/autocompleter.rst:20
msgid ""
"``history_filename``: Имя файла для сохранения истории команд. Если "
"указано, история будет сохраняться между сессиями. При значении `None` "
"история хранится только в памяти."
"указано, история будет сохраняться между сессиями. При значении ``None`` "
"история хранится только в контексте сессии."
msgstr ""
#: ../../root/api/app/autocompleter.rst:23
#: ../../root/api/app/autocompleter.rst:21
msgid ""
"``autocomplete_button``: Клавиша, активирующая автодополнение. По "
"умолчанию — **Tab**."
msgstr ""
#: ../../root/api/app/autocompleter.rst:28
#: ../../root/api/app/autocompleter.rst:26
msgid "Назначение и возможности"
msgstr ""
#: ../../root/api/app/autocompleter.rst:30
#: ../../root/api/app/autocompleter.rst:28
msgid "Основные возможности ``AutoCompleter``:"
msgstr ""
#: ../../root/api/app/autocompleter.rst:32
#: ../../root/api/app/autocompleter.rst:30
msgid ""
"**Автодополнение по истории**: При нажатии клавиши автодополнения (по "
"умолчанию **Tab**) система ищет в истории команды, начинающиеся с уже "
"введённого текста."
msgstr ""
#: ../../root/api/app/autocompleter.rst:34
#: ../../root/api/app/autocompleter.rst:32
msgid ""
"**Общий префикс**: Если найдено несколько команд с общим префиксом, будет"
" подставлена только общая часть. Например, для команд ``show_users`` и "
@@ -82,123 +75,30 @@ msgid ""
"``show_``."
msgstr ""
#: ../../root/api/app/autocompleter.rst:36
#: ../../root/api/app/autocompleter.rst:34
msgid ""
"**Постоянная история**: Если указан ``history_filename``, история команд "
"сохраняется в файл при выходе и загружается при следующем запуске. Это "
"делает автодополнение со временем «умнее»."
msgstr ""
#: ../../root/api/app/autocompleter.rst:38
#: ../../root/api/app/autocompleter.rst:36
msgid ""
"**Очистка истории**: При сохранении ``AutoCompleter`` удаляет дубликаты и"
" более не существующие команды, поддерживая историю в актуальном "
"состоянии."
" несуществующие команды, поддерживая историю в актуальном состоянии."
msgstr ""
#: ../../root/api/app/autocompleter.rst:40
#: ../../root/api/app/autocompleter.rst:38
msgid ""
"**Настройка клавиши**: Клавишу автодополнения можно изменить с помощью "
"параметра ``autocomplete_button``."
msgstr ""
#: ../../root/api/app/autocompleter.rst:45
#: ../../root/api/app/autocompleter.rst:43
msgid "Пример использования"
msgstr ""
#: ../../root/api/app/autocompleter.rst:47
#: ../../root/api/app/autocompleter.rst:45
msgid "``AutoCompleter`` передаётся как аргумент при инициализации `App`."
msgstr ""
#~ msgid "Autocompleter"
#~ msgstr ""
#~ msgid ""
#~ "Объект ``AutoCompleter`` является компонентом "
#~ "``Argenta``, отвечающим за интерактивное "
#~ "автодополнение команд. Его основная задача "
#~ "— улучшить опыт взаимодействия пользователя"
#~ " с командной строкой, предоставляя "
#~ "подсказки и автоматически завершая ввод "
#~ "на основе ранее введенных команд. Это"
#~ " значительно ускоряет работу и снижает "
#~ "вероятность опечаток."
#~ msgstr ""
#~ msgid ""
#~ "``AutoCompleter`` использует ``pyreadline3`` для "
#~ "имплементации ``readline GNU`` на ``Windows``"
#~ " для управления историей команд и "
#~ "реализации логики автодополнения."
#~ msgstr ""
#~ msgid "Создает и настраивает экземпляр ``AutoCompleter``."
#~ msgstr ""
#~ msgid ""
#~ "``history_filename``: Имя файла для сохранения"
#~ " и загрузки истории команд. Если "
#~ "указано, история будет персистентной между "
#~ "сессиями приложения. Если **None**, история"
#~ " будет храниться только в памяти "
#~ "текущей сессии."
#~ msgstr ""
#~ msgid ""
#~ "``autocomplete_button``: Название клавиши, которая"
#~ " активирует автодополнение. По умолчанию "
#~ "используется клавиша **\"tab\"**."
#~ msgstr ""
#~ msgid "``AutoCompleter`` обладает следующими возможностями:"
#~ msgstr ""
#~ msgid ""
#~ "**Автодополнение по истории**: Основная логика"
#~ " автодополнения основана на истории команд,"
#~ " которые пользователь вводил ранее. Когда"
#~ " пользователь начинает вводить команду и"
#~ " нажимает клавишу автодополнения (по "
#~ "умолчанию **Tab**), система ищет в "
#~ "истории все команды, начинающиеся с "
#~ "введенного текста."
#~ msgstr ""
#~ msgid ""
#~ "**Завершение по общему префиксу**: Если "
#~ "найдено несколько команд с общим "
#~ "префиксом, автодокомплитер подставит только "
#~ "общую часть. Например, если в истории"
#~ " есть команды ``show_users`` и "
#~ "``show_profile``, при вводе ``sho`` и "
#~ "нажатии **Tab** будет подставлено ``show_``."
#~ msgstr ""
#~ msgid ""
#~ "**Персистентная история**: При указании "
#~ "параметра ``history_filename`` в конструкторе, "
#~ "вся история команд сохраняется в файл"
#~ " при выходе из приложения и "
#~ "загружается при следующем запуске. Это "
#~ "делает автодополнение со временем все "
#~ "более \"умным\" и персонализированным."
#~ msgstr ""
#~ msgid ""
#~ "**Очистка истории**: При сохранении истории"
#~ " ``AutoCompleter`` автоматически удаляет "
#~ "дубликаты и команды, которые больше не"
#~ " зарегистрированы в приложении, поддерживая "
#~ "актуальность и чистоту файла истории."
#~ msgstr ""
#~ msgid ""
#~ "**Настройка клавиши активации**: Вы можете "
#~ "изменить клавишу, отвечающую за "
#~ "автодополнение, через параметр "
#~ "``autocomplete_button``."
#~ msgstr ""
#~ msgid "``AutoCompleter`` передается как аргумент при инициализации `App`."
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"POT-Creation-Date: 2025-12-02 22:27+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -31,7 +31,7 @@ msgid ""
msgstr ""
#: ../../root/api/app/dividing_lines.rst:11
msgid "Класс ``StaticDividingLine``"
msgid "``StaticDividingLine``"
msgstr ""
#: ../../root/api/app/dividing_lines.rst:13
@@ -52,20 +52,18 @@ msgid ""
msgstr ""
#: ../../root/api/app/dividing_lines.rst:24
msgid ""
"``length``: Фиксированная длина линии (keyword-only аргумент). По "
"умолчанию: ``25``."
msgid "``length``: Фиксированная длина линии. По умолчанию: ``25``."
msgstr ""
#: ../../root/api/app/dividing_lines.rst:29
msgid "Класс ``DynamicDividingLine``"
msgid "``DynamicDividingLine``"
msgstr ""
#: ../../root/api/app/dividing_lines.rst:31
msgid ""
"``DynamicDividingLine`` создаёт линию, длина которой **динамически** "
"подстраивается под самую длинную строку в выводе команды. Это требует "
"перехвата `stdout`, в результате чего разделители идеально обрамляют "
"перехвата ``stdout``, в результате чего разделители идеально обрамляют "
"выводимый контент."
msgstr ""
@@ -136,120 +134,3 @@ msgid ""
"через параметр ``dividing_line``."
msgstr ""
#: ../../root/api/app/dividing_lines.rst:70
msgid "Пример конфигурации"
msgstr ""
#~ msgid "DividingLines"
#~ msgstr ""
#~ msgid ""
#~ "Разделительные линии в ``Argenta`` играют "
#~ "важную роль в визуальном оформлении "
#~ "консольного интерфейса. Они используются для"
#~ " структурирования вывода, отделения блоков "
#~ "информации друг от друга (например, "
#~ "вывода команды от следующего приглашения "
#~ "к вводу). Библиотека предлагает два "
#~ "подхода к управлению разделительными линиями:"
#~ " статический и динамический, каждый из "
#~ "которых имеет свои преимущества и "
#~ "сценарии использования."
#~ msgstr ""
#~ msgid ""
#~ "``StaticDividingLine`` — это класс, который"
#~ " создает разделительную линию **фиксированной**"
#~ " длины. Длина и символ-заполнитель задаются"
#~ " при инициализации объекта. Этот тип "
#~ "линии полезен, когда вам нужен "
#~ "предсказуемый и унифицированный внешний вид"
#~ " интерфейса, независимо от содержимого "
#~ "вывода."
#~ msgstr ""
#~ msgid "Создает экземпляр статической разделительной линии."
#~ msgstr ""
#~ msgid ""
#~ "``unit_part``: Символ, который будет "
#~ "использоваться для построения линии. "
#~ "Учитывается только первый символ строки. "
#~ "По умолчанию: ``-``."
#~ msgstr ""
#~ msgid ""
#~ "``length``: Целое число, определяющее "
#~ "фиксированную длину линии в символах. "
#~ "Является keyword-only аргументом. По "
#~ "умолчанию: ``25``."
#~ msgstr ""
#~ msgid ""
#~ "``DynamicDividingLine`` представляет собой более "
#~ "\"умный\" подход. Этот класс создает "
#~ "линию, длина которой **динамически** "
#~ "подстраивается под самую длинную строку, "
#~ "выведенную в консоль, в рамках "
#~ "выполнения одной команды. Это достигается "
#~ "за счет механизма перехвата `stdout`. В"
#~ " результате разделительные линии всегда "
#~ "идеально обрамляют выводимый контент, что "
#~ "выглядит очень аккуратно."
#~ msgstr ""
#~ msgid "Создает экземпляр динамической разделительной линии."
#~ msgstr ""
#~ msgid ""
#~ "``unit_part``: Символ, который будет "
#~ "использоваться для построения линии. По "
#~ "умолчанию: ``-``."
#~ msgstr ""
#~ msgid ""
#~ "Длина для этой линии не задается "
#~ "при инициализации, так как она "
#~ "вычисляется автоматически во время выполнения."
#~ msgstr ""
#~ msgid ""
#~ "Выбор между статической и динамической "
#~ "линией зависит от ваших потребностей в"
#~ " конкретном приложении или даже для "
#~ "конкретного ``Router``-а."
#~ msgstr ""
#~ msgid "Вам нужен строгий, консистентный дизайн."
#~ msgstr ""
#~ msgid ""
#~ "Вы используете роутеры с отключенным "
#~ "перехватом ``stdout`` (``disable_redirect_stdout=True``),"
#~ " так как в этом случае динамическое"
#~ " вычисление длины невозможно."
#~ msgstr ""
#~ msgid ""
#~ "**DynamicDividingLine** (используется по умолчанию)"
#~ " является предпочтительным выбором, если:"
#~ msgstr ""
#~ msgid "Вы хотите, чтобы интерфейс выглядел аккуратно и адаптивно."
#~ msgstr ""
#~ msgid ""
#~ "Вывод ваших команд имеет разную длину,"
#~ " и вы хотите, чтобы рамки всегда "
#~ "соответствовали контенту."
#~ msgstr ""
#~ msgid "В ваших хэндлерах нет ожидающих ``io`` операций."
#~ msgstr ""
#~ msgid ""
#~ "Тип разделительной линии для всего "
#~ "приложения задается при инициализации ``App``"
#~ " через параметр ``dividing_line``."
#~ msgstr ""
+32 -220
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"POT-Creation-Date: 2025-12-02 22:27+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
@@ -52,7 +52,9 @@ msgid "``farewell_message``: Сообщение, выводимое при вы
msgstr ""
#: ../../root/api/app/index.rst:43
msgid "``exit_command``: Команда, используемая для выхода из приложения."
msgid ""
"``exit_command``: Команда, которая маркируется как триггер для выхода из "
"приложения."
msgstr ""
#: ../../root/api/app/index.rst:44
@@ -63,20 +65,20 @@ msgstr ""
#: ../../root/api/app/index.rst:45
msgid ""
"``ignore_command_register``: Если ``True``, регистр команд игнорируется "
"при поиске обработчика."
"``ignore_command_register``: Если ``True``, регистр вводимых команд "
"игнорируется при поиске обработчика."
msgstr ""
#: ../../root/api/app/index.rst:46
msgid ""
"``dividing_line``: Стиль разделительной линии (``StaticDividingLine`` или"
" ``DynamicDividingLine``)."
"``dividing_line``: Тип разделительной линии (``StaticDividingLine`` или "
"``DynamicDividingLine``)."
msgstr ""
#: ../../root/api/app/index.rst:47
msgid ""
"``repeat_command_groups_printing``: Если ``True``, список доступных команд "
"выводится перед каждым вводом."
"``repeat_command_groups_printing``: Если ``True``, список доступных "
"команд выводится перед каждым вводом."
msgstr ""
#: ../../root/api/app/index.rst:48
@@ -86,13 +88,15 @@ msgid ""
msgstr ""
#: ../../root/api/app/index.rst:49
msgid "``autocompleter``: Объект, отвечающий за автодополнение команд."
msgid ""
"``autocompleter``: Экземпляр класса :ref:`AutoCompleter "
"<root_api_app_autocompleter>`, отвечающий за автодополнение команд."
msgstr ""
#: ../../root/api/app/index.rst:50
msgid ""
"``print_func``: Функция для вывода всех системных сообщений (по умолчанию"
" ``rich.print``)."
" ``rich.Console().print``)."
msgstr ""
#: ../../root/api/app/index.rst:55
@@ -124,7 +128,7 @@ msgstr ""
#: ../../root/api/app/index.rst:71
msgid ""
"Добавляет текстовое сообщение, которое выводится при запуске приложения "
"после `initial_message`."
"после ``initial_message``."
msgstr ""
#: ../../root/api/app/index.rst:73
@@ -154,17 +158,15 @@ msgid ""
msgstr ""
#: ../../root/api/app/index.rst:92
msgid "Устанавливает шаблон для форматирования строки описания команды."
msgid "Устанавливает шаблон для форматирования описания команды."
msgstr ""
#: ../../root/api/app/index.rst:94
msgid ""
"Обработчик принимает триггер команды (``str``) и её описание (``str``), а"
" возвращает отформатированную строку."
msgid "Обработчик принимает триггер команды (``str``) и её описание (``str``)."
msgstr ""
#: ../../root/api/app/index.rst:100
msgid "Устанавливает обработчик для некорректного синтаксиса флагов."
msgid "Устанавливает обработчик при некорректном введённом синтаксисе флагов."
msgstr ""
#: ../../root/api/app/index.rst:102 ../../root/api/app/index.rst:110
@@ -172,19 +174,19 @@ msgid "Обработчик принимает строку, введённую
msgstr ""
#: ../../root/api/app/index.rst:108
msgid "Устанавливает обработчик для повторяющихся флагов в команде."
msgid "Устанавливает обработчик при повторяющихся флагах в введённой команде."
msgstr ""
#: ../../root/api/app/index.rst:116
msgid "Устанавливает обработчик для неизвестной команды."
msgid "Устанавливает обработчик при вводе неизвестной команды."
msgstr ""
#: ../../root/api/app/index.rst:118
msgid "Обработчик принимает объект ``InputCommand``."
msgid "Обработчик принимает объект ``InputCommand`` - объект введённой команды."
msgstr ""
#: ../../root/api/app/index.rst:124
msgid "Устанавливает обработчик для пустого ввода."
msgid "Устанавливает обработчик при вводе пустой строки."
msgstr ""
#: ../../root/api/app/index.rst:126
@@ -205,227 +207,37 @@ msgstr ""
#: ../../root/api/app/index.rst:149
msgid ""
"`PredefinedMessages` — это перечисление (Enum), содержащее набор готовых "
"к использованию строковых сообщений. Они отформатированы с использованием"
" синтаксиса `rich` и предназначены для вывода стандартной информации, "
"такой как подсказки по использованию."
"``PredefinedMessages`` — это контейнер, содержащий набор готовых к "
"использованию сообщений. Они отформатированы с использованием синтаксиса "
"``rich`` и предназначены для вывода стандартной информации, такой как "
"подсказки по использованию."
msgstr ""
#: ../../root/api/app/index.rst:151
msgid "Реккомендуется использовать их при старте приложения."
msgstr ""
#: ../../root/api/app/index.rst:177
#: ../../root/api/app/index.rst:178
msgid "Строка: ``[b dim]Usage[/b dim]: [i]<command> <[green]flags[/green]>[/i]``"
msgstr ""
#: ../../root/api/app/index.rst:179
#: ../../root/api/app/index.rst:180
msgid "Отображается как: ``Usage: <command> <flags>``"
msgstr ""
#: ../../root/api/app/index.rst:183
#: ../../root/api/app/index.rst:184
msgid "Строка: ``[b dim]Help[/b dim]: [i]<command>[/i] [b red]--help[/b red]``"
msgstr ""
#: ../../root/api/app/index.rst:185
#: ../../root/api/app/index.rst:186
msgid "Отображается как: ``Help: <command> --help``"
msgstr ""
#: ../../root/api/app/index.rst:189
#: ../../root/api/app/index.rst:190
msgid "Строка: ``[b dim]Autocomplete[/b dim]: [i]<part>[/i] [bold]<tab>``"
msgstr ""
#: ../../root/api/app/index.rst:191
#: ../../root/api/app/index.rst:192
msgid "Отображается как: ``Autocomplete: <part> <tab>``"
msgstr ""
#~ msgid ""
#~ "Объект ``App`` является центральной сущностью"
#~ " библиотеки ``Argenta``. Он выступает в "
#~ "роли ядра вашего консольного приложения, "
#~ "отвечая за его конфигурацию, управление "
#~ "жизненным циклом, обработку команд и "
#~ "взаимодействие с пользователем. ``App`` "
#~ "координирует работу всех остальных "
#~ "компонентов, таких как роутеры, обработчики"
#~ " команд и системные сообщения."
#~ msgstr ""
#~ msgid "Создает и настраивает экземпляр приложения ``Argenta``."
#~ msgstr ""
#~ msgid ""
#~ "``prompt``: Строка-приглашение, которая "
#~ "отображается перед вводом каждой команды. "
#~ "По умолчанию: **\"What do you want "
#~ "to do?\\\\n\\\\n\"**."
#~ msgstr ""
#~ msgid ""
#~ "``initial_message``: Приветственное сообщение, "
#~ "которое выводится при запуске приложения."
#~ msgstr ""
#~ msgid ""
#~ "``farewell_message``: Прощальное сообщение при "
#~ "завершении работы приложения."
#~ msgstr ""
#~ msgid ""
#~ "``exit_command``: Сущность команды, которая "
#~ "будет маркирована как команда для выхода"
#~ " из приложения."
#~ msgstr ""
#~ msgid ""
#~ "``system_router_title``: Заголовок для системного"
#~ " роутера, который содержит команду выхода"
#~ " и другие системные команды."
#~ msgstr ""
#~ msgid ""
#~ "``ignore_command_register``: Если **True** (по "
#~ "умолчанию), регистр введенных команд будет "
#~ "игнорироваться при поиске обработчика."
#~ msgstr ""
#~ msgid ""
#~ "``dividing_line``: Объект, управляющий стилем "
#~ "разделительной линии. Может быть "
#~ "**StaticDividingLine** или **DynamicDividingLine**."
#~ msgstr ""
#~ msgid ""
#~ "``repeat_command_groups_printing``: Если **True** (по "
#~ "умолчанию), описание доступных команд будет"
#~ " выводиться перед каждым вводом."
#~ msgstr ""
#~ msgid ""
#~ "``override_system_messages``: Если **True** (по "
#~ "умолчанию), стандартное форматирование системных "
#~ "сообщений (цвета, ASCII-арт) будет отключено."
#~ msgstr ""
#~ msgid "``autocompleter``: Объект, отвечающий за логику автодополнения команд."
#~ msgstr ""
#~ msgid ""
#~ "``print_func``: Функция, используемая для "
#~ "вывода всех системных сообщений. По "
#~ "умолчанию используется ``rich.console.Console().print``."
#~ msgstr ""
#~ msgid ""
#~ "Регистрирует один ``Router`` в приложении. "
#~ "Все команды, определенные в этом "
#~ "роутере, становятся доступными для вызова."
#~ msgstr ""
#~ msgid "Объект роутера, который нужно зарегистрировать."
#~ msgstr ""
#~ msgid ""
#~ "Регистрирует несколько роутеров одновременно. "
#~ "Является удобной оберткой над "
#~ "``include_router``."
#~ msgstr ""
#~ msgid "Последовательность объектов ``Router`` для регистрации."
#~ msgstr ""
#~ msgid ""
#~ "Добавляет дополнительное текстовое сообщение, "
#~ "которое будет выведено на экран при "
#~ "запуске приложения, сразу после "
#~ "`initial_message`."
#~ msgstr ""
#~ msgid ""
#~ "``App`` позволяет гибко настраивать реакцию"
#~ " на различные события, такие как "
#~ "ошибки ввода или ввод неизвестной "
#~ "команды."
#~ msgstr ""
#~ msgid ""
#~ "Устанавливает пользовательский шаблон для "
#~ "форматирования строки, описывающей доступную "
#~ "команду (триггер + описание)."
#~ msgstr ""
#~ msgid "``DescriptionMessageGenerator`` -> ``Callable[[str, str], str]``"
#~ msgstr ""
#~ msgid ""
#~ "Где первый аргумент - это триггер "
#~ "команды, а второй - ее описание, "
#~ "возвращает строку, которая является "
#~ "форматированной строкой."
#~ msgstr ""
#~ msgid ""
#~ "Устанавливает обработчик, который вызывается "
#~ "при некорректном синтаксисе флагов в "
#~ "введенной команде."
#~ msgstr ""
#~ msgid "``NonStandardBehaviorHandler[str]`` -> ``Callable[[str], None]``"
#~ msgstr ""
#~ msgid ""
#~ "Где первый и единственный аргумент - "
#~ "это необработанная строка пользовательского "
#~ "ввода."
#~ msgstr ""
#~ msgid ""
#~ "Устанавливает обработчик для ситуации, когда"
#~ " пользователь вводит один и тот же"
#~ " флаг несколько раз."
#~ msgstr ""
#~ msgid ""
#~ "Устанавливает обработчик, который срабатывает, "
#~ "если введенная команда не была найдена"
#~ " ни в одном из зарегистрированных "
#~ "роутеров."
#~ msgstr ""
#~ msgid ""
#~ "``NonStandardBehaviorHandler[InputCommand]`` -> "
#~ "``Callable[[InputCommand], None]``"
#~ msgstr ""
#~ msgid ""
#~ "Где первый и единственный аргумент - "
#~ "это распаршенный в объект InputCommand "
#~ "ввод пользователя."
#~ msgstr ""
#~ msgid ""
#~ "Устанавливает обработчик для случая, когда "
#~ "пользователь отправляет пустую строку вместо"
#~ " команды."
#~ msgstr ""
#~ msgid "``EmptyCommandHandler`` -> ``Callable[[], None]``"
#~ msgstr ""
#~ msgid "Не принимает и не возвращает ничего."
#~ msgstr ""
#~ msgid ""
#~ "Позволяет переопределить стандартное поведение "
#~ "при вызове команды выхода. По умолчанию"
#~ " просто выводится ``farewell_message``."
#~ msgstr ""
#~ msgid ""
#~ "``NonStandardBehaviorHandler[Response]`` -> "
#~ "``Callable[[Response], None]``"
#~ msgstr ""
#~ msgid "Где первый и единственный аргумент - это объект ответа, ``Response``."
#~ msgstr ""