Update translations

This commit is contained in:
2025-11-03 19:01:43 +03:00
parent 767d742060
commit 270e91f705
28 changed files with 5250 additions and 1218 deletions
+133 -48
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-15 16:09+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -19,23 +19,27 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#: ../../index.rst:36 #: ../../index.rst:38
msgid "Контент:" msgid "Контент:"
msgstr "Content:" msgstr "Content:"
#: ../../index.rst:47 #: ../../index.rst:48
msgid "Продвинутое использование:"
msgstr ""
#: ../../index.rst:56
msgid "Для разработчиков:" msgid "Для разработчиков:"
msgstr "For developers:" msgstr "For developers:"
#: ../../index.rst:53 #: ../../index.rst:63
msgid "GitHub" msgid "GitHub"
msgstr "" msgstr ""
#: ../../index.rst:53 #: ../../index.rst:63
msgid "PyPI" msgid "PyPI"
msgstr "" msgstr ""
#: ../../index.rst:53 #: ../../index.rst:63
msgid "Ссылки проекта:" msgid "Ссылки проекта:"
msgstr "Project Links:" msgstr "Project Links:"
@@ -47,14 +51,16 @@ msgstr ""
msgid "" msgid ""
"**Библиотека для построения модульных CLI-приложений с простым и приятным" "**Библиотека для построения модульных CLI-приложений с простым и приятным"
" API.**" " API.**"
msgstr "Python library for building modular CLI applications with simple and agreeable API." msgstr ""
"Python library for building modular CLI applications with simple and "
"agreeable API."
#: ../../index.rst:11 #: ../../index.rst:11
msgid "" msgid ""
"У вас есть некая функциональность и вы хотите распространять её в виде " "Если у вас есть функциональность, которую вы хотите предоставить в виде "
"CLI? Argenta поможет вам. Основная цель библиотеки дать возможность " "CLI-приложения, Argenta поможет вам в этом. Основная цель библиотеки "
"разработчикам сфокусироваться на реализации своих идей, предоставляя для " "дать разработчикам возможность сосредоточиться на реализации своих идей, "
"этого удобные абстракциию." "предоставляя для этого удобные абстракции."
msgstr "" msgstr ""
#: ../../index.rst:14 #: ../../index.rst:14
@@ -63,68 +69,147 @@ msgstr ""
#: ../../index.rst:17 #: ../../index.rst:17
msgid "" msgid ""
"Argenta нужна для создания приложений, которым необходим свой скоуп, то " "Argenta предназначена для создания приложений, работающих в собственном "
"есть: при запуске приложения юзер входит в абстрагированный скоуп, в " "контексте (scope). Это означает, что при запуске пользователь входит в "
"котором у него есть доступ к созданной функциональности." "интерактивную сессию, где ему доступна вся реализованная вами "
"функциональность."
msgstr "" msgstr ""
#: ../../index.rst:20 #: ../../index.rst:19
msgid "" msgid ""
"Один из основных принципов библиотеки это цикличность, это значит, что " "Один из ключевых принципов библиотеки цикличность. После выполнения "
"после ввода юзером команды он не выходит из скоупа, в этом основное " "команды пользователь остаётся в интерактивной сессии, в отличие от таких "
"отличие от таких библиотек, как ``argparse``, ``click`` и ``typer``. " "библиотек, как ``argparse``, ``click`` и ``typer``. Выход из сессии "
"Выход из скоупа контролируется самим юзером." "контролируется самим пользователем."
msgstr ""
#: ../../index.rst:21
msgid "**Ключевые особенности:**"
msgstr "" msgstr ""
#: ../../index.rst:23 #: ../../index.rst:23
msgid "**Ключевые особенности:**" msgid ""
"**Интерактивные сессии**. В отличие от традиционных CLI-инструментов, "
"Argenta создаёт циклические сессии, позволяя пользователю выполнять "
"команды последовательно, не перезапуская приложение."
msgstr ""
#: ../../index.rst:24
msgid ""
"**Декларативный синтаксис**. Команды и их обработчики объявляются с "
"помощью простых декораторов, что делает код чистым и интуитивно понятным."
msgstr "" msgstr ""
#: ../../index.rst:25 #: ../../index.rst:25
msgid "" msgid ""
"**Обработчики**. Объекты представления приложения, непосредственные " "**Встроенное внедрение зависимостей (DI)**. Благодаря интеграции с "
"обработчики введённых команд. Создание обработчиков максимально " "`dishka <https://dishka.readthedocs.io/en/stable/>`_, вы можете легко "
"декларативно" "внедрять сервисы (например, подключения к БД) прямо в обработчики команд,"
" что упрощает их тестирование и переиспользование."
msgstr "" msgstr ""
#: ../../index.rst:26 #: ../../index.rst:26
msgid "" msgid ""
"**Маршрутизаторы**. Объекты маршрутизации, которые регистрируют " "**Автоматическая валидация и парсинг**. Библиотека берёт на себя "
"обработчиков, позволяя создавать кастомные настройки для групп " "обработку флагов и аргументов командной строки, включая их парсинг, "
"обработчиков, а также семантически их разделять." "валидацию и преобразование типов."
msgstr "" msgstr ""
#: ../../index.rst:27 #: ../../index.rst:27
msgid "" msgid ""
"**Приложение**. Объект управления жизненным циклом приложения, " "**Гибкая настройка**. Вы можете легко кастомизировать системные "
"подключения созданных маршрутизаторов, конфигурирования различных " "сообщения, форматирование вывода и даже перенаправлять стандартный вывод "
"вторичных утилит, таких как автокомплит, логирование и т.д." "(stdout) в свои обработчики."
msgstr "" msgstr ""
#: ../../index.rst:28 #: ../../index.rst:30
msgid "" msgid "Архитектура и жизненный цикл"
"**Оркестратор**. Объект *оркестрации*, который конфигурирует, запускает и"
" управляет всеми остальными компонентами программы."
msgstr "" msgstr ""
#: ../../index.rst:29 #: ../../index.rst:32
msgid "" msgid ""
"**Внедрение зависимостей**. ``Argenta`` нативно поддерживает ``dishka`` и" "Следующая диаграмма иллюстрирует, как компоненты Argenta взаимодействуют "
" предоставляет возможность инжектирования зависимостей в хэндлерах, " "друг с другом, обрабатывая ввод пользователя."
"резолвя тайпхинты, подробнее_."
msgstr ""
#: ../../index.rst:33
msgid ""
"**Поддержка флагов**. Библиотека поддерживает определение флагов, "
"введённых вместе с командой, ``Argenta`` сама парсит и валидирует их, "
"отдавая понятные сущности."
msgstr "" msgstr ""
#: ../../index.rst:34 #: ../../index.rst:34
msgid "" msgid "Request Lifecycle Diagram"
"**Поддержка аргументов**. Осуществленна поддержка аргументов командной "
"строки, позволяя пользователю передавать различные параметры при запуске "
"приложения."
msgstr "" msgstr ""
#~ msgid ""
#~ "У вас есть некая функциональность и "
#~ "вы хотите распространять её в виде "
#~ "CLI? Argenta поможет вам. Основная цель"
#~ " библиотеки дать возможность разработчикам "
#~ "сфокусироваться на реализации своих идей, "
#~ "предоставляя для этого удобные абстракциию."
#~ msgstr ""
#~ msgid ""
#~ "Argenta нужна для создания приложений, "
#~ "которым необходим свой скоуп, то есть:"
#~ " при запуске приложения юзер входит в"
#~ " абстрагированный скоуп, в котором у "
#~ "него есть доступ к созданной "
#~ "функциональности."
#~ msgstr ""
#~ msgid ""
#~ "Один из основных принципов библиотеки "
#~ "это цикличность, это значит, что после"
#~ " ввода юзером команды он не выходит"
#~ " из скоупа, в этом основное отличие"
#~ " от таких библиотек, как ``argparse``, "
#~ "``click`` и ``typer``. Выход из скоупа"
#~ " контролируется самим юзером."
#~ msgstr ""
#~ msgid ""
#~ "**Обработчики**. Объекты представления приложения,"
#~ " непосредственные обработчики введённых команд."
#~ " Создание обработчиков максимально декларативно"
#~ msgstr ""
#~ msgid ""
#~ "**Маршрутизаторы**. Объекты маршрутизации, которые"
#~ " регистрируют обработчиков, позволяя создавать"
#~ " кастомные настройки для групп "
#~ "обработчиков, а также семантически их "
#~ "разделять."
#~ msgstr ""
#~ msgid ""
#~ "**Приложение**. Объект управления жизненным "
#~ "циклом приложения, подключения созданных "
#~ "маршрутизаторов, конфигурирования различных "
#~ "вторичных утилит, таких как автокомплит, "
#~ "логирование и т.д."
#~ msgstr ""
#~ msgid ""
#~ "**Оркестратор**. Объект *оркестрации*, который "
#~ "конфигурирует, запускает и управляет всеми "
#~ "остальными компонентами программы."
#~ msgstr ""
#~ msgid ""
#~ "**Внедрение зависимостей**. ``Argenta`` нативно "
#~ "поддерживает ``dishka`` и предоставляет "
#~ "возможность инжектирования зависимостей в "
#~ "хэндлерах, резолвя тайпхинты, подробнее_."
#~ msgstr ""
#~ msgid ""
#~ "**Поддержка флагов**. Библиотека поддерживает "
#~ "определение флагов, введённых вместе с "
#~ "командой, ``Argenta`` сама парсит и "
#~ "валидирует их, отдавая понятные сущности."
#~ msgstr ""
#~ msgid ""
#~ "**Поддержка аргументов**. Осуществленна поддержка"
#~ " аргументов командной строки, позволяя "
#~ "пользователю передавать различные параметры "
#~ "при запуске приложения."
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-27 11:56+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -25,18 +25,17 @@ msgstr ""
#: ../../root/api/app/autocompleter.rst:6 #: ../../root/api/app/autocompleter.rst:6
msgid "" msgid ""
"Объект ``AutoCompleter`` является компонентом ``Argenta``, отвечающим за " "``AutoCompleter`` — это компонент, отвечающий за интерактивное "
"интерактивное автодополнение команд. Его основная задача — улучшить опыт " "автодополнение команд. Он улучшает пользовательский опыт, предлагая "
"взаимодействия пользователя с командной строкой, предоставляя подсказки и" "подсказки и завершая ввод на основе истории команд, что ускоряет работу и"
" автоматически завершая ввод на основе ранее введенных команд. Это " " снижает вероятность опечаток."
"значительно ускоряет работу и снижает вероятность опечаток."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:8 #: ../../root/api/app/autocompleter.rst:8
msgid "" msgid ""
"``AutoCompleter`` использует ``pyreadline3`` для имплементации ``readline" "``AutoCompleter`` использует ``pyreadline3`` для реализации "
" GNU`` на ``Windows`` для управления историей команд и реализации логики " "функциональности `GNU readline` в `Windows`, что позволяет управлять "
"автодополнения." "историей команд и автодополнением."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:13 #: ../../root/api/app/autocompleter.rst:13
@@ -44,20 +43,20 @@ msgid "Инициализация"
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:20 #: ../../root/api/app/autocompleter.rst:20
msgid "Создает и настраивает экземпляр ``AutoCompleter``." msgid "Создаёт и настраивает экземпляр ``AutoCompleter``."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:22 #: ../../root/api/app/autocompleter.rst:22
msgid "" msgid ""
"``history_filename``: Имя файла для сохранения и загрузки истории команд." "``history_filename``: Имя файла для сохранения истории команд. Если "
" Если указано, история будет персистентной между сессиями приложения. " "указано, история будет сохраняться между сессиями. При значении `None` "
"Если **None**, история будет храниться только в памяти текущей сессии." "история хранится только в памяти."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:23 #: ../../root/api/app/autocompleter.rst:23
msgid "" msgid ""
"``autocomplete_button``: Название клавиши, которая активирует " "``autocomplete_button``: Клавиша, активирующая автодополнение. По "
"автодополнение. По умолчанию используется клавиша **\"tab\"**." "умолчанию — **Tab**."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:28 #: ../../root/api/app/autocompleter.rst:28
@@ -65,46 +64,42 @@ msgid "Назначение и возможности"
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:30 #: ../../root/api/app/autocompleter.rst:30
msgid "``AutoCompleter`` обладает следующими возможностями:" msgid "Основные возможности ``AutoCompleter``:"
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:32 #: ../../root/api/app/autocompleter.rst:32
msgid "" msgid ""
"**Автодополнение по истории**: Основная логика автодополнения основана на" "**Автодополнение по истории**: При нажатии клавиши автодополнения (по "
" истории команд, которые пользователь вводил ранее. Когда пользователь " "умолчанию **Tab**) система ищет в истории команды, начинающиеся с уже "
"начинает вводить команду и нажимает клавишу автодополнения (по умолчанию " "введённого текста."
"**Tab**), система ищет в истории все команды, начинающиеся с введенного "
"текста."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:34 #: ../../root/api/app/autocompleter.rst:34
msgid "" msgid ""
"**Завершение по общему префиксу**: Если найдено несколько команд с общим " "**Общий префикс**: Если найдено несколько команд с общим префиксом, будет"
"префиксом, автодокомплитер подставит только общую часть. Например, если в" " подставлена только общая часть. Например, для команд ``show_users`` и "
" истории есть команды ``show_users`` и ``show_profile``, при вводе " "``show_profile`` при вводе ``sho`` и нажатии **Tab** ввод дополнится до "
"``sho`` и нажатии **Tab** будет подставлено ``show_``." "``show_``."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:36 #: ../../root/api/app/autocompleter.rst:36
msgid "" msgid ""
"**Персистентная история**: При указании параметра ``history_filename`` в " "**Постоянная история**: Если указан ``history_filename``, история команд "
"конструкторе, вся история команд сохраняется в файл при выходе из " "сохраняется в файл при выходе и загружается при следующем запуске. Это "
"приложения и загружается при следующем запуске. Это делает автодополнение" "делает автодополнение со временем «умнее»."
" со временем все более \"умным\" и персонализированным."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:38 #: ../../root/api/app/autocompleter.rst:38
msgid "" msgid ""
"**Очистка истории**: При сохранении истории ``AutoCompleter`` " "**Очистка истории**: При сохранении ``AutoCompleter`` удаляет дубликаты и"
"автоматически удаляет дубликаты и команды, которые больше не " " более не существующие команды, поддерживая историю в актуальном "
"зарегистрированы в приложении, поддерживая актуальность и чистоту файла " "состоянии."
"истории."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:40 #: ../../root/api/app/autocompleter.rst:40
msgid "" msgid ""
"**Настройка клавиши активации**: Вы можете изменить клавишу, отвечающую " "**Настройка клавиши**: Клавишу автодополнения можно изменить с помощью "
"за автодополнение, через параметр ``autocomplete_button``." "параметра ``autocomplete_button``."
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:45 #: ../../root/api/app/autocompleter.rst:45
@@ -112,9 +107,98 @@ msgid "Пример использования"
msgstr "" msgstr ""
#: ../../root/api/app/autocompleter.rst:47 #: ../../root/api/app/autocompleter.rst:47
msgid "``AutoCompleter`` передается как аргумент при инициализации `App`." msgid "``AutoCompleter`` передаётся как аргумент при инициализации `App`."
msgstr "" msgstr ""
#~ msgid "Autocompleter" #~ msgid "Autocompleter"
#~ msgstr "" #~ 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 "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-27 11:56+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -25,135 +25,231 @@ msgstr ""
#: ../../root/api/app/dividing_lines.rst:6 #: ../../root/api/app/dividing_lines.rst:6
msgid "" msgid ""
"Разделительные линии в ``Argenta`` играют важную роль в визуальном " "Разделительные линии в ``Argenta`` используются для визуального "
"оформлении консольного интерфейса. Они используются для структурирования " "структурирования вывода и отделения блоков информации друг от друга. "
"вывода, отделения блоков информации друг от друга (например, вывода " "Библиотека предлагает два типа линий: статическую и динамическую."
"команды от следующего приглашения к вводу). Библиотека предлагает два "
"подхода к управлению разделительными линиями: статический и динамический,"
" каждый из которых имеет свои преимущества и сценарии использования."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:12 #: ../../root/api/app/dividing_lines.rst:11
msgid "Класс ``StaticDividingLine``" msgid "Класс ``StaticDividingLine``"
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:14 #: ../../root/api/app/dividing_lines.rst:13
msgid "" msgid ""
"``StaticDividingLine`` — это класс, который создает разделительную линию " "``StaticDividingLine`` создаёт разделительную линию **фиксированной** "
"**фиксированной** длины. Длина и символ-заполнитель задаются при " "длины. Этот тип линии полезен для создания предсказуемого и "
"инициализации объекта. Этот тип линии полезен, когда вам нужен " "унифицированного интерфейса."
"предсказуемый и унифицированный внешний вид интерфейса, независимо от "
"содержимого вывода."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:22 #: ../../root/api/app/dividing_lines.rst:21
msgid "Создает экземпляр статической разделительной линии." msgid "Создаёт экземпляр статической разделительной линии."
msgstr ""
#: ../../root/api/app/dividing_lines.rst:23
msgid ""
"``unit_part``: Символ для построения линии (учитывается только первый "
"символ). По умолчанию: ``-``."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:24 #: ../../root/api/app/dividing_lines.rst:24
msgid "" msgid ""
"``unit_part``: Символ, который будет использоваться для построения линии." "``length``: Фиксированная длина линии (keyword-only аргумент). По "
" Учитывается только первый символ строки. По умолчанию: ``-``." "умолчанию: ``25``."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:25 #: ../../root/api/app/dividing_lines.rst:29
msgid ""
"``length``: Целое число, определяющее фиксированную длину линии в "
"символах. Является keyword-only аргументом. По умолчанию: ``25``."
msgstr ""
#: ../../root/api/app/dividing_lines.rst:30
msgid "Класс ``DynamicDividingLine``" msgid "Класс ``DynamicDividingLine``"
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:32 #: ../../root/api/app/dividing_lines.rst:31
msgid "" msgid ""
"``DynamicDividingLine`` представляет собой более \"умный\" подход. Этот " "``DynamicDividingLine`` создаёт линию, длина которой **динамически** "
"класс создает линию, длина которой **динамически** подстраивается под " "подстраивается под самую длинную строку в выводе команды. Это требует "
"самую длинную строку, выведенную в консоль, в рамках выполнения одной " "перехвата `stdout`, в результате чего разделители идеально обрамляют "
"команды. Это достигается за счет механизма перехвата `stdout`. В " "выводимый контент."
"результате разделительные линии всегда идеально обрамляют выводимый "
"контент, что выглядит очень аккуратно."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:39 #: ../../root/api/app/dividing_lines.rst:38
msgid "Создает экземпляр динамической разделительной линии." msgid "Создаёт экземпляр динамической разделительной линии."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:41 #: ../../root/api/app/dividing_lines.rst:40
msgid "" msgid "``unit_part``: Символ для построения линии. По умолчанию: ``-``."
"``unit_part``: Символ, который будет использоваться для построения линии."
" По умолчанию: ``-``."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:43 #: ../../root/api/app/dividing_lines.rst:42
msgid "" msgid "Длина вычисляется автоматически и не задаётся при инициализации."
"Длина для этой линии не задается при инициализации, так как она "
"вычисляется автоматически во время выполнения."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:46 #: ../../root/api/app/dividing_lines.rst:45
msgid "" msgid ""
"Обязательно почитайте про нюансы использования динамических линий и " "Обязательно почитайте про нюансы использования динамических линий и "
"перехвата ``stdout`` в :ref:`этом разделе<root_redirect_stdout>`." "перехвата ``stdout`` в :ref:`этом разделе<root_redirect_stdout>`."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:51 #: ../../root/api/app/dividing_lines.rst:50
msgid "Назначение и использование" msgid "Назначение и использование"
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:53 #: ../../root/api/app/dividing_lines.rst:52
msgid "" msgid "Выбор между статической и динамической линией зависит от ваших задач."
"Выбор между статической и динамической линией зависит от ваших "
"потребностей в конкретном приложении или даже для конкретного "
"``Router``-а."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:55 #: ../../root/api/app/dividing_lines.rst:54
msgid "**StaticDividingLine** идеально подходит, если:" msgid "**StaticDividingLine** идеально подходит, если:"
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:56
msgid "Вам нужен строгий и консистентный дизайн."
msgstr ""
#: ../../root/api/app/dividing_lines.rst:57 #: ../../root/api/app/dividing_lines.rst:57
msgid "Вам нужен строгий, консистентный дизайн." msgid ""
"Вы используете роутеры с отключённым перехватом ``stdout`` "
"(``disable_redirect_stdout=True``), где динамическое вычисление длины "
"невозможно."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:58 #: ../../root/api/app/dividing_lines.rst:59
msgid "" msgid ""
"Вы используете роутеры с отключенным перехватом ``stdout`` " "**DynamicDividingLine** (поведение по умолчанию) — предпочтительный "
"(``disable_redirect_stdout=True``), так как в этом случае динамическое " "выбор, если:"
"вычисление длины невозможно."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:60 #: ../../root/api/app/dividing_lines.rst:61
msgid "" msgid "Вы хотите, чтобы интерфейс был адаптивным."
"**DynamicDividingLine** (используется по умолчанию) является "
"предпочтительным выбором, если:"
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:62 #: ../../root/api/app/dividing_lines.rst:62
msgid "Вы хотите, чтобы интерфейс выглядел аккуратно и адаптивно." msgid "Вывод ваших команд имеет разную длину."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:63 #: ../../root/api/app/dividing_lines.rst:63
msgid "" msgid ""
"Вывод ваших команд имеет разную длину, и вы хотите, чтобы рамки всегда " "В ваших обработчиках нет интерактивных операций ввода (например, "
"соответствовали контенту." "``input()``)."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:64 #: ../../root/api/app/dividing_lines.rst:65
msgid "В ваших хэндлерах нет ожидающих ``io`` операций."
msgstr ""
#: ../../root/api/app/dividing_lines.rst:66
msgid "" msgid ""
"Тип разделительной линии для всего приложения задается при инициализации " "Тип разделителя для всего приложения задаётся при инициализации ``App`` "
"``App`` через параметр ``dividing_line``." "через параметр ``dividing_line``."
msgstr "" msgstr ""
#: ../../root/api/app/dividing_lines.rst:71 #: ../../root/api/app/dividing_lines.rst:70
msgid "Пример конфигурации" msgid "Пример конфигурации"
msgstr "" msgstr ""
#~ msgid "DividingLines" #~ msgid "DividingLines"
#~ msgstr "" #~ 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 ""
+288 -102
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-27 11:56+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -25,12 +25,10 @@ msgstr ""
#: ../../root/api/app/index.rst:6 #: ../../root/api/app/index.rst:6
msgid "" msgid ""
"Объект ``App`` является центральной сущностью библиотеки ``Argenta``. Он " "Объект ``App`` — это ядро вашего консольного приложения. Он отвечает за "
"выступает в роли ядра вашего консольного приложения, отвечая за его "
"конфигурацию, управление жизненным циклом, обработку команд и " "конфигурацию, управление жизненным циклом, обработку команд и "
"взаимодействие с пользователем. ``App`` координирует работу всех " "взаимодействие с пользователем, координируя работу всех компонентов: "
"остальных компонентов, таких как роутеры, обработчики команд и системные " "роутеров, обработчиков и системных сообщений."
"сообщения."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:11 #: ../../root/api/app/index.rst:11
@@ -38,71 +36,63 @@ msgid "Инициализация"
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:38 #: ../../root/api/app/index.rst:38
msgid "Создает и настраивает экземпляр приложения ``Argenta``." msgid "Создаёт и настраивает экземпляр приложения."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:40 #: ../../root/api/app/index.rst:40
msgid "" msgid "``prompt``: Приглашение к вводу, отображаемое перед каждой командой."
"``prompt``: Строка-приглашение, которая отображается перед вводом каждой"
" команды. По умолчанию: **\"What do you want to do?\\\\n\\\\n\"**."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:41 #: ../../root/api/app/index.rst:41
msgid "" msgid "``initial_message``: Сообщение, выводимое при запуске приложения."
"``initial_message``: Приветственное сообщение, которое выводится при "
"запуске приложения."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:42 #: ../../root/api/app/index.rst:42
msgid "" msgid "``farewell_message``: Сообщение, выводимое при выходе из приложения."
"``farewell_message``: Прощальное сообщение при завершении работы "
"приложения."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:43 #: ../../root/api/app/index.rst:43
msgid "" msgid "``exit_command``: Команда, используемая для выхода из приложения."
"``exit_command``: Сущность команды, которая будет маркирована как команда"
" для выхода из приложения."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:44 #: ../../root/api/app/index.rst:44
msgid "" msgid ""
"``system_router_title``: Заголовок для системного роутера, который " "``system_router_title``: Заголовок для системного роутера (содержит "
"содержит команду выхода и другие системные команды." "команду выхода)."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:45 #: ../../root/api/app/index.rst:45
msgid "" msgid ""
"``ignore_command_register``: Если **True** (по умолчанию), регистр " "``ignore_command_register``: Если ``True``, регистр команд игнорируется "
"введенных команд будет игнорироваться при поиске обработчика." "при поиске обработчика."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:46 #: ../../root/api/app/index.rst:46
msgid "" msgid ""
"``dividing_line``: Объект, управляющий стилем разделительной линии. Может" "``dividing_line``: Стиль разделительной линии (``StaticDividingLine`` или"
" быть **StaticDividingLine** или **DynamicDividingLine**." " ``DynamicDividingLine``)."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:47 #: ../../root/api/app/index.rst:47
msgid "" msgid ""
"``repeat_command_groups``: Если **True** (по умолчанию), описание " "``repeat_command_groups``: Если ``True``, список доступных команд "
"доступных команд будет выводиться перед каждым вводом." "выводится перед каждым вводом."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:48 #: ../../root/api/app/index.rst:48
msgid "" msgid ""
"``override_system_messages``: Если **True** (по умолчанию), стандартное " "``override_system_messages``: Если ``True``, стандартное форматирование "
"форматирование системных сообщений (цвета, ASCII-арт) будет отключено." "(цвета, ASCII-арт) отключается."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:49 #: ../../root/api/app/index.rst:49
msgid "``autocompleter``: Объект, отвечающий за логику автодополнения команд." msgid "``autocompleter``: Объект, отвечающий за автодополнение команд."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:50 #: ../../root/api/app/index.rst:50
msgid "" msgid ""
"``print_func``: Функция, используемая для вывода всех системных " "``print_func``: Функция для вывода всех системных сообщений (по умолчанию"
"сообщений. По умолчанию используется ``rich.console.Console().print``." " ``rich.print``)."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:55 #: ../../root/api/app/index.rst:55
@@ -111,8 +101,8 @@ msgstr ""
#: ../../root/api/app/index.rst:59 #: ../../root/api/app/index.rst:59
msgid "" msgid ""
"Регистрирует один ``Router`` в приложении. Все команды, определенные в " "Регистрирует роутер в приложении. Все команды из этого роутера становятся"
"этом роутере, становятся доступными для вызова." " доступными для вызова."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst #: ../../root/api/app/index.rst
@@ -120,126 +110,322 @@ msgid "Parameters"
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:61 #: ../../root/api/app/index.rst:61
msgid "Объект роутера, который нужно зарегистрировать." msgid "Экземпляр ``Router`` для регистрации."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:65 #: ../../root/api/app/index.rst:65
msgid "" msgid "Регистрирует несколько роутеров одновременно."
"Регистрирует несколько роутеров одновременно. Является удобной оберткой "
"над ``include_router``."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:67 #: ../../root/api/app/index.rst:67
msgid "Последовательность объектов ``Router`` для регистрации." msgid "Последовательность экземпляров ``Router`` для регистрации."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:71 #: ../../root/api/app/index.rst:71
msgid "" msgid ""
"Добавляет дополнительное текстовое сообщение, которое будет выведено на " "Добавляет текстовое сообщение, которое выводится при запуске приложения "
"экран при запуске приложения, сразу после `initial_message`." "после `initial_message`."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:73 #: ../../root/api/app/index.rst:73
msgid "Строка с сообщением." msgid "Строка с сообщением."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:78 #: ../../root/api/app/index.rst:76
msgid ""
"Для вывода стандартных сообщений можно использовать готовые шаблоны из "
":ref:`PredefinedMessages <root_api_predefined_messages>`."
msgstr ""
#: ../../root/api/app/index.rst:81
msgid "Методы установки обработчиков" msgid "Методы установки обработчиков"
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:80 #: ../../root/api/app/index.rst:83
msgid "" msgid ""
"``App`` позволяет гибко настраивать реакцию на различные события, такие " "``App`` позволяет настраивать реакцию на различные события, такие как "
"как ошибки ввода или ввод неизвестной команды." "ошибки ввода или неизвестные команды."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:83 #: ../../root/api/app/index.rst:86
msgid "" msgid ""
"Подробнее о исключениях и их обработке в соответствующем :ref:`разделе " "Подробнее о исключениях и их обработке в соответствующем :ref:`разделе "
"документации <root_error_handling>`." "документации <root_error_handling>`."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:89 #: ../../root/api/app/index.rst:92
msgid "Устанавливает шаблон для форматирования строки описания команды."
msgstr ""
#: ../../root/api/app/index.rst:94
msgid "" msgid ""
"Устанавливает пользовательский шаблон для форматирования строки, " "Обработчик принимает триггер команды (``str``) и её описание (``str``), а"
"описывающей доступную команду (триггер + описание)." " возвращает отформатированную строку."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:91 #: ../../root/api/app/index.rst:100
msgid "``DescriptionMessageGenerator`` -> ``Callable[[str, str], str]``" msgid "Устанавливает обработчик для некорректного синтаксиса флагов."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:93 #: ../../root/api/app/index.rst:102 ../../root/api/app/index.rst:110
msgid "Обработчик принимает строку, введённую пользователем."
msgstr ""
#: ../../root/api/app/index.rst:108
msgid "Устанавливает обработчик для повторяющихся флагов в команде."
msgstr ""
#: ../../root/api/app/index.rst:116
msgid "Устанавливает обработчик для неизвестной команды."
msgstr ""
#: ../../root/api/app/index.rst:118
msgid "Обработчик принимает объект ``InputCommand``."
msgstr ""
#: ../../root/api/app/index.rst:124
msgid "Устанавливает обработчик для пустого ввода."
msgstr ""
#: ../../root/api/app/index.rst:126
msgid "Обработчик не принимает аргументов."
msgstr ""
#: ../../root/api/app/index.rst:132
msgid "Переопределяет стандартное поведение при вызове команды выхода."
msgstr ""
#: ../../root/api/app/index.rst:134
msgid "Обработчик принимает объект ``Response``."
msgstr ""
#: ../../root/api/app/index.rst:147
msgid "PredefinedMessages"
msgstr ""
#: ../../root/api/app/index.rst:149
msgid "" msgid ""
"Где первый аргумент - это триггер команды, а второй - ее описание, " "`PredefinedMessages` — это перечисление (Enum), содержащее набор готовых "
"возвращает строку, которая является форматированной строкой." "к использованию строковых сообщений. Они отформатированы с использованием"
" синтаксиса `rich` и предназначены для вывода стандартной информации, "
"такой как подсказки по использованию."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:99 #: ../../root/api/app/index.rst:151
msgid "" msgid "Реккомендуется использовать их при старте приложения."
"Устанавливает обработчик, который вызывается при некорректном синтаксисе "
"флагов в введенной команде."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:101 ../../root/api/app/index.rst:111 #: ../../root/api/app/index.rst:177
msgid "``NonStandardBehaviorHandler[str]`` -> ``Callable[[str], None]``" msgid "Строка: ``[b dim]Usage[/b dim]: [i]<command> <[green]flags[/green]>[/i]``"
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:103 ../../root/api/app/index.rst:113 #: ../../root/api/app/index.rst:179
msgid "" msgid "Отображается как: ``Usage: <command> <flags>``"
"Где первый и единственный аргумент - это необработанная строка "
"пользовательского ввода."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:109 #: ../../root/api/app/index.rst:183
msgid "" msgid "Строка: ``[b dim]Help[/b dim]: [i]<command>[/i] [b red]--help[/b red]``"
"Устанавливает обработчик для ситуации, когда пользователь вводит один и "
"тот же флаг несколько раз."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:119 #: ../../root/api/app/index.rst:185
msgid "" msgid "Отображается как: ``Help: <command> --help``"
"Устанавливает обработчик, который срабатывает, если введенная команда не "
"была найдена ни в одном из зарегистрированных роутеров."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:121 #: ../../root/api/app/index.rst:189
msgid "" msgid "Строка: ``[b dim]Autocomplete[/b dim]: [i]<part>[/i] [bold]<tab>``"
"``NonStandardBehaviorHandler[InputCommand]`` -> "
"``Callable[[InputCommand], None]``"
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:123 #: ../../root/api/app/index.rst:191
msgid "" msgid "Отображается как: ``Autocomplete: <part> <tab>``"
"Где первый и единственный аргумент - это распаршенный в объект "
"InputCommand ввод пользователя."
msgstr "" msgstr ""
#: ../../root/api/app/index.rst:129 #~ msgid ""
msgid "" #~ "Объект ``App`` является центральной сущностью"
"Устанавливает обработчик для случая, когда пользователь отправляет пустую" #~ " библиотеки ``Argenta``. Он выступает в "
" строку вместо команды." #~ "роли ядра вашего консольного приложения, "
msgstr "" #~ "отвечая за его конфигурацию, управление "
#~ "жизненным циклом, обработку команд и "
#~ "взаимодействие с пользователем. ``App`` "
#~ "координирует работу всех остальных "
#~ "компонентов, таких как роутеры, обработчики"
#~ " команд и системные сообщения."
#~ msgstr ""
#: ../../root/api/app/index.rst:131 #~ msgid "Создает и настраивает экземпляр приложения ``Argenta``."
msgid "``EmptyCommandHandler`` -> ``Callable[[], None]``" #~ msgstr ""
msgstr ""
#: ../../root/api/app/index.rst:133 #~ msgid ""
msgid "Не принимает и не возвращает ничего." #~ "``prompt``: Строка-приглашение, которая "
msgstr "" #~ "отображается перед вводом каждой команды. "
#~ "По умолчанию: **\"What do you want "
#~ "to do?\\\\n\\\\n\"**."
#~ msgstr ""
#: ../../root/api/app/index.rst:139 #~ msgid ""
msgid "" #~ "``initial_message``: Приветственное сообщение, "
"Позволяет переопределить стандартное поведение при вызове команды выхода." #~ "которое выводится при запуске приложения."
" По умолчанию просто выводится ``farewell_message``." #~ msgstr ""
msgstr ""
#: ../../root/api/app/index.rst:141 #~ msgid ""
msgid "``NonStandardBehaviorHandler[Response]`` -> ``Callable[[Response], None]``" #~ "``farewell_message``: Прощальное сообщение при "
msgstr "" #~ "завершении работы приложения."
#~ msgstr ""
#: ../../root/api/app/index.rst:143 #~ msgid ""
msgid "Где первый и единственный аргумент - это объект ответа, ``Response``." #~ "``exit_command``: Сущность команды, которая "
msgstr "" #~ "будет маркирована как команда для выхода"
#~ " из приложения."
#~ msgstr ""
#~ msgid ""
#~ "``system_router_title``: Заголовок для системного"
#~ " роутера, который содержит команду выхода"
#~ " и другие системные команды."
#~ msgstr ""
#~ msgid ""
#~ "``ignore_command_register``: Если **True** (по "
#~ "умолчанию), регистр введенных команд будет "
#~ "игнорироваться при поиске обработчика."
#~ msgstr ""
#~ msgid ""
#~ "``dividing_line``: Объект, управляющий стилем "
#~ "разделительной линии. Может быть "
#~ "**StaticDividingLine** или **DynamicDividingLine**."
#~ msgstr ""
#~ msgid ""
#~ "``repeat_command_groups``: Если **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 ""
@@ -0,0 +1,101 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025, kolo
# This file is distributed under the same license as the Argenta package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../root/api/bridge.rst:4
msgid "DataBridge"
msgstr ""
#: ../../root/api/bridge.rst:6
msgid ""
"`DataBridge` — это сущность, предоставляющая временное хранилище данных, "
"которое существует в рамках одной сессии приложения (от запуска до "
"выхода). Она предназначена для обмена данными между вызовами разных "
"команд."
msgstr ""
#: ../../root/api/bridge.rst:8
msgid ""
"Основной способ получения доступа к `DataBridge` — через систему "
"внедрения зависимостей (DI)."
msgstr ""
#: ../../root/api/bridge.rst:19
msgid "**Практический пример: Аутентификация**"
msgstr ""
#: ../../root/api/bridge.rst:21
msgid ""
"Рассмотрим пример, где команда `login` сохраняет токен аутентификации, а "
"команда `get-profile` использует его."
msgstr ""
#: ../../root/api/bridge.rst:27
msgid "**Как это работает:**"
msgstr ""
#: ../../root/api/bridge.rst:29
msgid ""
"При вызове обработчика `dishka` автоматически внедряет экземпляр "
"`DataBridge`."
msgstr ""
#: ../../root/api/bridge.rst:30
msgid ""
"Команда ``login --username <имя>`` вызывает `login_handler`, который "
"через внедрённый `data_bridge` сохраняет токен."
msgstr ""
#: ../../root/api/bridge.rst:31
msgid ""
"Команда `get-profile` вызывает `get_profile_handler`, который так же "
"получает `data_bridge` и извлекает из него токен."
msgstr ""
#: ../../root/api/bridge.rst:34
msgid "API класса"
msgstr ""
#: ../../root/api/bridge.rst:40
msgid ""
"Инициализирует хранилище. При использовании через DI вызывается "
"автоматически."
msgstr ""
#: ../../root/api/bridge.rst:44
msgid "Обновляет хранилище данными из словаря."
msgstr ""
#: ../../root/api/bridge.rst:48
msgid "Возвращает все данные из хранилища."
msgstr ""
#: ../../root/api/bridge.rst:52
msgid "Возвращает значение по ключу или `None`, если ключ не найден."
msgstr ""
#: ../../root/api/bridge.rst:56
msgid "Удаляет значение по ключу. Вызывает `KeyError`, если ключ не найден."
msgstr ""
#: ../../root/api/bridge.rst:60
msgid "Полностью очищает хранилище."
msgstr ""
@@ -0,0 +1,342 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025, kolo
# This file is distributed under the same license as the Argenta package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../root/api/command/flag.rst:4
msgid "Flag"
msgstr ""
#: ../../root/api/command/flag.rst:6
msgid ""
"``Flag`` — это сущность, описывающая флаг команды. Её основная задача — "
"определить параметры флага, включая его имя, префикс и правила валидации."
" `Flag` используется при создании команд и предоставляет механизм для "
"проверки значений, введённых пользователем."
msgstr ""
#: ../../root/api/command/flag.rst:10
msgid ""
"Документация по :ref:`PossibleValues <root_api_command_possible_values>` "
"— перечисление, определяющее типы допустимых значений."
msgstr ""
#: ../../root/api/command/flag.rst:12
msgid ""
"Документация по :ref:`InputFlag <root_api_command_input_flag>` — объект "
"обработанного флага, введённого пользователем."
msgstr ""
#: ../../root/api/command/flag.rst:14
msgid ""
":ref:`Общая информация <root_flags>` о флагах и их использовании в "
"приложении ``Argenta``"
msgstr ""
#: ../../root/api/command/flag.rst:19
msgid "Инициализация"
msgstr ""
#: ../../root/api/command/flag.rst:30
msgid "Создаёт новый флаг для регистрации в команде."
msgstr ""
#: ../../root/api/command/flag.rst:32
msgid "``name``: Имя флага (обязательный параметр)."
msgstr ""
#: ../../root/api/command/flag.rst:33
msgid "``prefix``: Префикс флага (``-``, ``--``, ``---``). По умолчанию ``--``."
msgstr ""
#: ../../root/api/command/flag.rst:34
msgid ""
"``possible_values``: Правила валидации значения. Может быть списком "
"строк, регулярным выражением или значением из `PossibleValues`. По "
"умолчанию `PossibleValues.ALL`."
msgstr ""
#: ../../root/api/command/flag.rst:36
msgid "**Атрибуты:**"
msgstr ""
#: ../../root/api/command/flag.rst:40
msgid "Имя флага в виде строки."
msgstr ""
#: ../../root/api/command/flag.rst:44
msgid "Префикс флага. Один из: ``\"-\"``, ``\"--\"``, ``\"---\"``."
msgstr ""
#: ../../root/api/command/flag.rst:48
msgid "Определяет допустимые значения для флага:"
msgstr ""
#: ../../root/api/command/flag.rst:50
msgid "Список строк: флаг принимает только значения из этого списка."
msgstr ""
#: ../../root/api/command/flag.rst:51
msgid ""
"Регулярное выражение (`Pattern[str]`): значение проверяется на "
"соответствие паттерну."
msgstr ""
#: ../../root/api/command/flag.rst:52
msgid "`PossibleValues.ALL`: флаг принимает любое значение."
msgstr ""
#: ../../root/api/command/flag.rst:53
msgid "`PossibleValues.NEITHER`: флаг не должен иметь значения."
msgstr ""
#: ../../root/api/command/flag.rst:55 ../../root/api/command/flag.rst:81
#: ../../root/api/command/flag.rst:104 ../../root/api/command/flag.rst:124
#: ../../root/api/command/flag.rst:148 ../../root/api/command/flag.rst:265
msgid "**Пример использования:**"
msgstr ""
#: ../../root/api/command/flag.rst:64
msgid "Свойства"
msgstr ""
#: ../../root/api/command/flag.rst:67
msgid "string_entity"
msgstr ""
#: ../../root/api/command/flag.rst:75
msgid "Возвращает строковое представление флага в формате `prefix + name`."
msgstr ""
#: ../../root/api/command/flag.rst
msgid "return"
msgstr ""
#: ../../root/api/command/flag.rst:77 ../../root/api/command/flag.rst:102
msgid "Строковое представление флага"
msgstr ""
#: ../../root/api/command/flag.rst:79
msgid ""
"Это свойство объединяет префикс и имя в единую строку, которая "
"представляет флаг так, как он выглядел бы в командной строке."
msgstr ""
#: ../../root/api/command/flag.rst:90
msgid "Магические методы"
msgstr ""
#: ../../root/api/command/flag.rst:93
msgid "__str__"
msgstr ""
#: ../../root/api/command/flag.rst:100
msgid "Возвращает строковое представление флага (аналогично `string_entity`)."
msgstr ""
#: ../../root/api/command/flag.rst:113
msgid "__repr__"
msgstr ""
#: ../../root/api/command/flag.rst:120
msgid "Возвращает отладочное представление объекта."
msgstr ""
#: ../../root/api/command/flag.rst:122
msgid "Строка в формате `Flag<prefix=..., name=...>`."
msgstr ""
#: ../../root/api/command/flag.rst:133
msgid "__eq__"
msgstr ""
#: ../../root/api/command/flag.rst:140
msgid ""
"Сравнивает два флага на равенство по их строковому представлению "
"(`string_entity`)."
msgstr ""
#: ../../root/api/command/flag.rst
msgid "param other"
msgstr ""
#: ../../root/api/command/flag.rst:142
msgid "Объект для сравнения"
msgstr ""
#: ../../root/api/command/flag.rst:143
msgid "``True``, если флаги равны, иначе ``False``"
msgstr ""
#: ../../root/api/command/flag.rst
msgid "raises NotImplementedError"
msgstr ""
#: ../../root/api/command/flag.rst:144
msgid "Если `other` не является экземпляром `Flag`."
msgstr ""
#: ../../root/api/command/flag.rst:146
msgid "Два флага считаются равными, если их `string_entity` идентичны."
msgstr ""
#: ../../root/api/command/flag.rst:159
msgid "PredefinedFlags"
msgstr ""
#: ../../root/api/command/flag.rst:161
msgid "``argenta.command.PredefinedFlags``"
msgstr ""
#: ../../root/api/command/flag.rst:163
msgid ""
"Класс `PredefinedFlags` предоставляет набор готовых флагов для "
"использования в приложениях без их ручного создания. Эти флаги покрывают "
"наиболее распространённые сценарии и следуют общепринятым соглашениям."
msgstr ""
#: ../../root/api/command/flag.rst:165
msgid ""
"Все предопределённые флаги являются атрибутами класса и представляют "
"собой готовые экземпляры `Flag`."
msgstr ""
#: ../../root/api/command/flag.rst:170
msgid "Информационные флаги"
msgstr ""
#: ../../root/api/command/flag.rst:175
msgid "Флаг для отображения справки: ``--help``"
msgstr ""
#: ../../root/api/command/flag.rst:177
msgid "``name``: ``\"help\"``"
msgstr ""
#: ../../root/api/command/flag.rst:178 ../../root/api/command/flag.rst:194
#: ../../root/api/command/flag.rst:236 ../../root/api/command/flag.rst:252
msgid "``prefix``: ``\"--\"`` (по умолчанию)"
msgstr ""
#: ../../root/api/command/flag.rst:179 ../../root/api/command/flag.rst:187
#: ../../root/api/command/flag.rst:195 ../../root/api/command/flag.rst:203
#: ../../root/api/command/flag.rst:216 ../../root/api/command/flag.rst:224
msgid "``possible_values``: ``PossibleValues.NEITHER``"
msgstr ""
#: ../../root/api/command/flag.rst:183
msgid "Короткая версия флага справки: ``-H``"
msgstr ""
#: ../../root/api/command/flag.rst:185 ../../root/api/command/flag.rst:243
msgid "``name``: ``\"H\"``"
msgstr ""
#: ../../root/api/command/flag.rst:186 ../../root/api/command/flag.rst:202
#: ../../root/api/command/flag.rst:223 ../../root/api/command/flag.rst:244
#: ../../root/api/command/flag.rst:260
msgid "``prefix``: ``\"-\"``"
msgstr ""
#: ../../root/api/command/flag.rst:191
msgid "Флаг для отображения информации: ``--info``"
msgstr ""
#: ../../root/api/command/flag.rst:193
msgid "``name``: ``\"info\"``"
msgstr ""
#: ../../root/api/command/flag.rst:199
msgid "Короткая версия флага информации: ``-I``"
msgstr ""
#: ../../root/api/command/flag.rst:201
msgid "``name``: ``\"I\"``"
msgstr ""
#: ../../root/api/command/flag.rst:208
msgid "Флаги выбора"
msgstr ""
#: ../../root/api/command/flag.rst:212
msgid "Флаг для выбора всех элементов: ``--all``"
msgstr ""
#: ../../root/api/command/flag.rst:214
msgid "``name``: ``\"all\"``"
msgstr ""
#: ../../root/api/command/flag.rst:215
msgid "``prefix``: ``\"--\"``"
msgstr ""
#: ../../root/api/command/flag.rst:220
msgid "Короткая версия флага выбора всех элементов: ``-A``"
msgstr ""
#: ../../root/api/command/flag.rst:222
msgid "``name``: ``\"A\"``"
msgstr ""
#: ../../root/api/command/flag.rst:229
msgid "Сетевые флаги"
msgstr ""
#: ../../root/api/command/flag.rst:233
msgid "Флаг для указания IP-адреса хоста: ``--host``"
msgstr ""
#: ../../root/api/command/flag.rst:235
msgid "``name``: ``\"host\"``"
msgstr ""
#: ../../root/api/command/flag.rst:237 ../../root/api/command/flag.rst:245
#, python-brace-format
msgid ""
"``possible_values``: Регулярное выражение для валидации IPv4: "
"``r\"^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$\"``"
msgstr ""
#: ../../root/api/command/flag.rst:241
msgid "Короткая версия флага хоста: ``-H``"
msgstr ""
#: ../../root/api/command/flag.rst:249
msgid "Флаг для указания порта: ``--port``"
msgstr ""
#: ../../root/api/command/flag.rst:251
msgid "``name``: ``\"port\"``"
msgstr ""
#: ../../root/api/command/flag.rst:253 ../../root/api/command/flag.rst:261
#, python-brace-format
msgid ""
"``possible_values``: Регулярное выражение для валидации порта: "
"``r\"^\\d{1,5}$\"``"
msgstr ""
#: ../../root/api/command/flag.rst:257
msgid "Короткая версия флага порта: ``-P``"
msgstr ""
#: ../../root/api/command/flag.rst:259
msgid "``name``: ``\"P\"``"
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-16 23:51+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -23,15 +23,194 @@ msgstr ""
msgid "Flags" msgid "Flags"
msgstr "" msgstr ""
#: ../../root/api/command/flags.rst:6
msgid ""
"`Flags` — это коллекция флагов команды. Её основная задача — группировать"
" и управлять набором флагов, зарегистрированных для конкретной команды. "
"`Flags` служит контейнером, который позволяет удобно добавлять, "
"извлекать, итерировать флаги и проверять их наличие."
msgstr ""
#: ../../root/api/command/flags.rst:8 #: ../../root/api/command/flags.rst:8
msgid "Flag" msgid ""
"`Flags` наследуется от базового класса `BaseFlags` и специализируется на "
"работе с объектами типа `Flag`. Этот класс используется при создании "
"команд с несколькими флагами и предоставляет интерфейс для управления "
"ими."
msgstr "" msgstr ""
#: ../../root/api/command/flags.rst:12 #: ../../root/api/command/flags.rst:12
msgid "InputFlags" msgid ""
"Документация по отдельным флагам (:ref:`Flag <root_api_command_flag>`, "
":ref:`InputFlag <root_api_command_input_flag>`)"
msgstr "" msgstr ""
#: ../../root/api/command/flags.rst:18 #: ../../root/api/command/flags.rst:14
msgid "InputFlag" msgid ""
"Документация по :ref:`InputFlags <root_api_command_input_flags>` — "
"коллекция обработанных флагов, введённых пользователем."
msgstr "" msgstr ""
#: ../../root/api/command/flags.rst:16
msgid ""
":ref:`Общая информация <root_flags>` о флагах и их использовании в "
"приложении ``Argenta``"
msgstr ""
#: ../../root/api/command/flags.rst:21
msgid "Инициализация"
msgstr ""
#: ../../root/api/command/flags.rst:28
msgid "Создаёт новую коллекцию флагов."
msgstr ""
#: ../../root/api/command/flags.rst:30
msgid ""
"``flags``: Необязательный список флагов типа `Flag` для инициализации "
"коллекции. Если не указан, создаётся пустая коллекция."
msgstr ""
#: ../../root/api/command/flags.rst:32
msgid "**Атрибуты:**"
msgstr ""
#: ../../root/api/command/flags.rst:37
msgid ""
"Список всех зарегистрированных флагов типа `Flag`. Пуст, если флаги не "
"были переданы при инициализации."
msgstr ""
#: ../../root/api/command/flags.rst:39 ../../root/api/command/flags.rst:65
#: ../../root/api/command/flags.rst:88 ../../root/api/command/flags.rst:111
#: ../../root/api/command/flags.rst:134 ../../root/api/command/flags.rst:155
msgid "**Пример использования:**"
msgstr ""
#: ../../root/api/command/flags.rst:48
msgid "Методы"
msgstr ""
#: ../../root/api/command/flags.rst:51
msgid "add_flag"
msgstr ""
#: ../../root/api/command/flags.rst:58
msgid "Добавляет флаг в коллекцию."
msgstr ""
#: ../../root/api/command/flags.rst
msgid "param flag"
msgstr ""
#: ../../root/api/command/flags.rst:60
msgid "Флаг типа `Flag` для добавления."
msgstr ""
#: ../../root/api/command/flags.rst
msgid "return"
msgstr ""
#: ../../root/api/command/flags.rst:61 ../../root/api/command/flags.rst:84
msgid "None."
msgstr ""
#: ../../root/api/command/flags.rst:63
msgid ""
"Метод добавляет флаг в конец списка `flags`. Используется для "
"динамического расширения набора флагов."
msgstr ""
#: ../../root/api/command/flags.rst:74
msgid "add_flags"
msgstr ""
#: ../../root/api/command/flags.rst:81
msgid "Добавляет в коллекцию список флагов."
msgstr ""
#: ../../root/api/command/flags.rst
msgid "param flags"
msgstr ""
#: ../../root/api/command/flags.rst:83
msgid "Список флагов типа `Flag` для добавления."
msgstr ""
#: ../../root/api/command/flags.rst:86
msgid ""
"Метод расширяет коллекцию, добавляя в неё все флаги из переданного "
"списка. Эффективен для пакетного добавления."
msgstr ""
#: ../../root/api/command/flags.rst:97
msgid "get_flag_by_name"
msgstr ""
#: ../../root/api/command/flags.rst:104
msgid "Возвращает флаг по имени."
msgstr ""
#: ../../root/api/command/flags.rst
msgid "param name"
msgstr ""
#: ../../root/api/command/flags.rst:106
msgid "Имя искомого флага."
msgstr ""
#: ../../root/api/command/flags.rst:107
msgid "Объект `Flag` или `None`, если флаг не найден."
msgstr ""
#: ../../root/api/command/flags.rst:109
msgid ""
"Метод выполняет поиск по списку `flags` и возвращает первый флаг с "
"соответствующим именем. Если флаг не найден, возвращается `None`."
msgstr ""
#: ../../root/api/command/flags.rst:120
msgid "Магические методы"
msgstr ""
#: ../../root/api/command/flags.rst:123
msgid "__iter__"
msgstr ""
#: ../../root/api/command/flags.rst:130
msgid "Делает коллекцию итерируемой для использования в циклах."
msgstr ""
#: ../../root/api/command/flags.rst:132
msgid "Итератор по списку флагов."
msgstr ""
#: ../../root/api/command/flags.rst:143
msgid "__getitem__"
msgstr ""
#: ../../root/api/command/flags.rst:150
msgid "Позволяет получать флаг по индексу."
msgstr ""
#: ../../root/api/command/flags.rst
msgid "param flag_index"
msgstr ""
#: ../../root/api/command/flags.rst:152
msgid "Индекс флага в списке."
msgstr ""
#: ../../root/api/command/flags.rst:153
msgid "Флаг по указанному индексу."
msgstr ""
#~ msgid "Flag"
#~ msgstr ""
#~ msgid "InputFlags"
#~ msgstr ""
#~ msgid "InputFlag"
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-16 23:51+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -23,7 +23,171 @@ msgstr ""
msgid "Command" msgid "Command"
msgstr "" msgstr ""
#: ../../root/api/command/index.rst:16 #: ../../root/api/command/index.rst:6
msgid ""
"``Command`` — это основная единица функциональности в приложении. Каждая "
"команда определяет действие, которое пользователь может выполнить, введя "
"соответствующий триггер. Команды регистрируются в роутерах и формируют "
"интерфейс взаимодействия с приложением."
msgstr ""
#: ../../root/api/command/index.rst:8
msgid ""
"``Command`` инкапсулирует всю информацию о команде: её триггер (ключевое "
"слово для вызова), описание, набор флагов и список псевдонимов."
msgstr ""
#: ../../root/api/command/index.rst:13
msgid "Инициализация"
msgstr ""
#: ../../root/api/command/index.rst:23
msgid "Создаёт новую команду для регистрации в роутере."
msgstr ""
#: ../../root/api/command/index.rst:25
msgid ""
"``trigger``: Строковый триггер, который пользователь вводит для вызова "
"команды. Является основным идентификатором."
msgstr ""
#: ../../root/api/command/index.rst:26
msgid ""
"``description``: Необязательное описание, объясняющее назначение команды."
" Отображается в справке."
msgstr ""
#: ../../root/api/command/index.rst:27
msgid ""
"``flags``: Набор флагов для настройки поведения. Может быть одиночным "
"объектом `Flag` или коллекцией `Flags`."
msgstr ""
#: ../../root/api/command/index.rst:28
msgid "``aliases``: Список строковых псевдонимов для основного триггера."
msgstr ""
#: ../../root/api/command/index.rst:30 ../../root/api/command/index.rst:125
msgid "**Атрибуты:**"
msgstr ""
#: ../../root/api/command/index.rst:34
msgid ""
"Основной триггер команды. Используется для её идентификации при обработке"
" пользовательского ввода."
msgstr ""
#: ../../root/api/command/index.rst:38
msgid ""
"Текстовое описание команды. Если не передано, используется значение по "
"умолчанию."
msgstr ""
#: ../../root/api/command/index.rst:42
msgid ""
"Объект `Flags`, содержащий все зарегистрированные флаги. Автоматически "
"конвертируется из одиночного `Flag` в коллекцию при инициализации."
msgstr ""
#: ../../root/api/command/index.rst:46
msgid "Список строковых псевдонимов. Пуст, если псевдонимы не заданы."
msgstr ""
#: ../../root/api/command/index.rst:48
msgid "**Пример использования:**"
msgstr ""
#: ../../root/api/command/index.rst:54
msgid ""
"Подробнее про флаги: :ref:`Flags <root_api_command_flags>` и :ref:`Флаги "
"вводимых команд <root_flags>`."
msgstr ""
#: ../../root/api/command/index.rst:59
msgid "Регистрация команд"
msgstr ""
#: ../../root/api/command/index.rst:61
msgid ""
"Команды регистрируются в роутерах с помощью декоратора "
"``@router.command()``, после чего становятся доступными для вызова."
msgstr ""
#: ../../root/api/command/index.rst:63
msgid "**Базовый пример:**"
msgstr ""
#: ../../root/api/command/index.rst:68
msgid "**Команды с флагами:**"
msgstr ""
#: ../../root/api/command/index.rst:76
msgid "Работа с псевдонимами"
msgstr ""
#: ../../root/api/command/index.rst:78
msgid ""
"Псевдонимы позволяют вызывать один и тот же обработчик разными "
"триггерами, сохраняя флаги и описание команды."
msgstr ""
#: ../../root/api/command/index.rst:80
msgid "**Пример с псевдонимами:**"
msgstr ""
#: ../../root/api/command/index.rst:97
msgid "Теперь пользователь может вызвать команду любым из способов:"
msgstr ""
#: ../../root/api/command/index.rst:106
msgid "Все эти варианты выполнят одну и ту же функцию ``handle_shutdown``."
msgstr ""
#: ../../root/api/command/index.rst:113
msgid "InputCommand" msgid "InputCommand"
msgstr "" msgstr ""
#: ../../root/api/command/index.rst:115
msgid ""
"``InputCommand`` представляет собой обработанную команду, введённую "
"пользователем. Этот внутренний класс создаётся автоматически при "
"обработке пользовательского ввода. Прямая работа с ним возможна при "
"создании пользовательского обработчика для неизвестных команд."
msgstr ""
#: ../../root/api/command/index.rst:118
msgid ""
"Подробнее о пользовательских обработчиках исключений см. :ref:`здесь "
"<root_error_handling>`."
msgstr ""
#: ../../root/api/command/index.rst:120
msgid "Создаёт экземпляр обработанной команды."
msgstr ""
#: ../../root/api/command/index.rst
msgid "param trigger"
msgstr ""
#: ../../root/api/command/index.rst:122
msgid "Триггер команды, извлечённый из пользовательского ввода."
msgstr ""
#: ../../root/api/command/index.rst
msgid "param input_flags"
msgstr ""
#: ../../root/api/command/index.rst:123
msgid "Флаги, переданные пользователем."
msgstr ""
#: ../../root/api/command/index.rst:130
msgid "Строковый триггер, введённый пользователем."
msgstr ""
#: ../../root/api/command/index.rst:135
msgid ""
"Объект `InputFlags`, содержащий все переданные с командой флаги. "
"Автоматически конвертируется из одиночного `InputFlag` в коллекцию."
msgstr ""
@@ -0,0 +1,191 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025, kolo
# This file is distributed under the same license as the Argenta package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../root/api/command/input_flag.rst:4
msgid "InputFlag"
msgstr ""
#: ../../root/api/command/input_flag.rst:6
msgid ""
"Объект `InputFlag` представляет собой флаг, введённый пользователем. Он "
"создаётся в результате обработки пользовательского ввода и содержит "
"информацию о распознанном флаге: его имя, префикс, значение и статус "
"валидации."
msgstr ""
#: ../../root/api/command/input_flag.rst:10
msgid ""
"Документация по :ref:`Flag <root_api_command_flag>` — класс для "
"регистрации флага."
msgstr ""
#: ../../root/api/command/input_flag.rst:12
msgid ""
"Документация по :ref:`ValidationStatus "
"<root_api_command_validation_status>` — статусы валидации флагов."
msgstr ""
#: ../../root/api/command/input_flag.rst:17
msgid "Инициализация"
msgstr ""
#: ../../root/api/command/input_flag.rst:29
msgid "Создаёт новый объект введённого флага."
msgstr ""
#: ../../root/api/command/input_flag.rst:31
msgid "``name``: Имя введённого флага."
msgstr ""
#: ../../root/api/command/input_flag.rst:32
msgid "``prefix``: Префикс флага (``-``, ``--``, ``---``). По умолчанию ``--``."
msgstr ""
#: ../../root/api/command/input_flag.rst:33
msgid "``input_value``: Значение, переданное с флагом. Может быть `None`."
msgstr ""
#: ../../root/api/command/input_flag.rst:34
msgid "``status``: Статус валидации из перечисления `ValidationStatus`."
msgstr ""
#: ../../root/api/command/input_flag.rst:37
msgid ""
"Экземпляры этого класса не предназначены для прямого создания. Они "
"содержатся в объекте :ref:`Response <root_api_response>`."
msgstr ""
#: ../../root/api/command/input_flag.rst:39
msgid "**Атрибуты:**"
msgstr ""
#: ../../root/api/command/input_flag.rst:44
msgid "Имя введённого флага."
msgstr ""
#: ../../root/api/command/input_flag.rst:49
msgid "Префикс флага: ``-``, ``--`` или ``---``."
msgstr ""
#: ../../root/api/command/input_flag.rst:53
msgid "Значение, переданное с флагом. Может быть `None` для флагов без значений."
msgstr ""
#: ../../root/api/command/input_flag.rst:58
msgid ""
"Статус валидации флага: `ValidationStatus.VALID`, "
"`ValidationStatus.INVALID` или `ValidationStatus.UNDEFINED`."
msgstr ""
#: ../../root/api/command/input_flag.rst:60
#: ../../root/api/command/input_flag.rst:86
#: ../../root/api/command/input_flag.rst:109
#: ../../root/api/command/input_flag.rst:129
#: ../../root/api/command/input_flag.rst:153
msgid "**Пример использования:**"
msgstr ""
#: ../../root/api/command/input_flag.rst:69
msgid "Свойства"
msgstr ""
#: ../../root/api/command/input_flag.rst:72
msgid "string_entity"
msgstr ""
#: ../../root/api/command/input_flag.rst:80
msgid "Возвращает строковое представление флага в формате `prefix + name`."
msgstr ""
#: ../../root/api/command/input_flag.rst
msgid "return"
msgstr ""
#: ../../root/api/command/input_flag.rst:82
msgid "Строковое представление флага"
msgstr ""
#: ../../root/api/command/input_flag.rst:84
msgid ""
"Это свойство объединяет префикс и имя в строку, представляющую флаг так, "
"как он был введён в командной строке."
msgstr ""
#: ../../root/api/command/input_flag.rst:95
msgid "Магические методы"
msgstr ""
#: ../../root/api/command/input_flag.rst:98
msgid "__str__"
msgstr ""
#: ../../root/api/command/input_flag.rst:105
msgid "Возвращает строковое представление флага вместе с его значением."
msgstr ""
#: ../../root/api/command/input_flag.rst:107
msgid "Строка в формате `флаг значение`."
msgstr ""
#: ../../root/api/command/input_flag.rst:118
msgid "__repr__"
msgstr ""
#: ../../root/api/command/input_flag.rst:125
msgid "Возвращает отладочное представление объекта."
msgstr ""
#: ../../root/api/command/input_flag.rst:127
msgid "Строка в формате `InputFlag<prefix=..., name=..., value=..., status=...>`."
msgstr ""
#: ../../root/api/command/input_flag.rst:138
msgid "__eq__"
msgstr ""
#: ../../root/api/command/input_flag.rst:145
msgid "Сравнивает два введённых флага на равенство по имени."
msgstr ""
#: ../../root/api/command/input_flag.rst
msgid "param other"
msgstr ""
#: ../../root/api/command/input_flag.rst:147
msgid "Объект для сравнения."
msgstr ""
#: ../../root/api/command/input_flag.rst:148
msgid "`True`, если имена флагов совпадают, иначе `False`."
msgstr ""
#: ../../root/api/command/input_flag.rst
msgid "raises NotImplementedError"
msgstr ""
#: ../../root/api/command/input_flag.rst:149
msgid "Если `other` не является экземпляром `InputFlag`."
msgstr ""
#: ../../root/api/command/input_flag.rst:151
msgid "Два введённых флага считаются равными, если их имена совпадают."
msgstr ""
@@ -0,0 +1,346 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025, kolo
# This file is distributed under the same license as the Argenta package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../root/api/command/input_flags.rst:4
msgid "InputFlags"
msgstr ""
#: ../../root/api/command/input_flags.rst:6
msgid ""
"`InputFlags` — это коллекция флагов, введённых пользователем. Её основная"
" задача — группировать и управлять набором флагов, переданных вместе с "
"командой. `InputFlags` служит контейнером, который позволяет удобно "
"извлекать, итерировать и проверять наличие флагов, а также работать с их "
"значениями и статусами валидации."
msgstr ""
#: ../../root/api/command/input_flags.rst:8
msgid ""
"`InputFlags` наследуется от `BaseFlags` и специализируется на работе с "
"объектами типа `InputFlag`. Этот класс создаётся автоматически при "
"обработке пользовательского ввода и передаётся в обработчики команд через"
" объект `Response`."
msgstr ""
#: ../../root/api/command/input_flags.rst:12
msgid ""
"Документация по отдельным флагам (:ref:`Flag <root_api_command_flag>`, "
":ref:`InputFlag <root_api_command_input_flag>`)"
msgstr ""
#: ../../root/api/command/input_flags.rst:14
msgid ""
"Документация по :ref:`InputFlags <root_api_command_input_flags>` — "
"коллекция обработанных флагов, введённых пользователем."
msgstr ""
#: ../../root/api/command/input_flags.rst:16
msgid ""
"Документация по :ref:`Response <root_api_response>` — объект ответа, "
"содержащий ``InputFlags``"
msgstr ""
#: ../../root/api/command/input_flags.rst:18
msgid ""
":ref:`Общая информация <root_flags>` о флагах и их использовании в "
"приложении ``Argenta``"
msgstr ""
#: ../../root/api/command/input_flags.rst:23
msgid "Инициализация"
msgstr ""
#: ../../root/api/command/input_flags.rst:30
msgid "Создаёт новую коллекцию введённых флагов."
msgstr ""
#: ../../root/api/command/input_flags.rst:32
msgid ""
"``flags``: Необязательный список флагов типа `InputFlag` для "
"инициализации коллекции. Если не указан, создаётся пустая коллекция."
msgstr ""
#: ../../root/api/command/input_flags.rst:35
msgid ""
"Экземпляры этого класса обычно не создаются напрямую. Они автоматически "
"формируются системой при обработке пользовательского ввода и доступны "
"через атрибут `input_flags` объекта `Response`."
msgstr ""
#: ../../root/api/command/input_flags.rst:37
msgid "**Атрибуты:**"
msgstr ""
#: ../../root/api/command/input_flags.rst:42
msgid ""
"Список всех введённых флагов типа `InputFlag`. Пуст, если флаги не были "
"переданы при инициализации или пользователь не ввёл их с командой."
msgstr ""
#: ../../root/api/command/input_flags.rst:44
#: ../../root/api/command/input_flags.rst:70
#: ../../root/api/command/input_flags.rst:96
#: ../../root/api/command/input_flags.rst:119
#: ../../root/api/command/input_flags.rst:144
#: ../../root/api/command/input_flags.rst:167
#: ../../root/api/command/input_flags.rst:189
#: ../../root/api/command/input_flags.rst:213
#: ../../root/api/command/input_flags.rst:237
msgid "**Пример использования:**"
msgstr ""
#: ../../root/api/command/input_flags.rst:53
msgid "Методы"
msgstr ""
#: ../../root/api/command/input_flags.rst:56
msgid "get_flag_by_name"
msgstr ""
#: ../../root/api/command/input_flags.rst:63
msgid "Возвращает введённый флаг по имени."
msgstr ""
#: ../../root/api/command/input_flags.rst
msgid "param name"
msgstr ""
#: ../../root/api/command/input_flags.rst:65
msgid "Имя искомого флага (без префикса)."
msgstr ""
#: ../../root/api/command/input_flags.rst
msgid "return"
msgstr ""
#: ../../root/api/command/input_flags.rst:66
msgid "Объект `InputFlag` или `None`, если флаг не найден."
msgstr ""
#: ../../root/api/command/input_flags.rst:68
msgid ""
"Метод выполняет поиск по списку `flags` и возвращает первый флаг с "
"соответствующим именем (без учёта префикса)."
msgstr ""
#: ../../root/api/command/input_flags.rst:79
msgid "add_flag"
msgstr ""
#: ../../root/api/command/input_flags.rst:86
msgid "Добавляет введённый флаг в коллекцию."
msgstr ""
#: ../../root/api/command/input_flags.rst
msgid "param flag"
msgstr ""
#: ../../root/api/command/input_flags.rst:88
msgid "Флаг типа `InputFlag` для добавления."
msgstr ""
#: ../../root/api/command/input_flags.rst:89
#: ../../root/api/command/input_flags.rst:115
msgid "None."
msgstr ""
#: ../../root/api/command/input_flags.rst:91
msgid ""
"Метод добавляет флаг в конец списка `flags`. Используется для "
"динамического расширения коллекции."
msgstr ""
#: ../../root/api/command/input_flags.rst:94
msgid ""
"Этот метод используется редко, так как `InputFlags` обычно создаётся "
"автоматически. Однако он может быть полезен для тестирования или ручного "
"создания коллекций."
msgstr ""
#: ../../root/api/command/input_flags.rst:105
msgid "add_flags"
msgstr ""
#: ../../root/api/command/input_flags.rst:112
msgid "Добавляет в коллекцию список введённых флагов."
msgstr ""
#: ../../root/api/command/input_flags.rst
msgid "param flags"
msgstr ""
#: ../../root/api/command/input_flags.rst:114
msgid "Список флагов типа `InputFlag` для добавления."
msgstr ""
#: ../../root/api/command/input_flags.rst:117
msgid ""
"Метод расширяет коллекцию, добавляя в неё все флаги из переданного "
"списка. Эффективен для пакетного добавления."
msgstr ""
#: ../../root/api/command/input_flags.rst:128
msgid "Магические методы"
msgstr ""
#: ../../root/api/command/input_flags.rst:131
msgid "__iter__"
msgstr ""
#: ../../root/api/command/input_flags.rst:138
msgid "Делает коллекцию итерируемой для использования в циклах."
msgstr ""
#: ../../root/api/command/input_flags.rst:140
msgid "Итератор по списку введённых флагов."
msgstr ""
#: ../../root/api/command/input_flags.rst:142
msgid ""
"Позволяет перебирать все введённые флаги, что полезно для проверки их "
"статусов или пакетной обработки."
msgstr ""
#: ../../root/api/command/input_flags.rst:153
msgid "__getitem__"
msgstr ""
#: ../../root/api/command/input_flags.rst:160
msgid "Позволяет получать введённый флаг по индексу."
msgstr ""
#: ../../root/api/command/input_flags.rst
msgid "param flag_index"
msgstr ""
#: ../../root/api/command/input_flags.rst:162
msgid "Индекс флага в списке."
msgstr ""
#: ../../root/api/command/input_flags.rst:163
msgid "Флаг по указанному индексу."
msgstr ""
#: ../../root/api/command/input_flags.rst:165
msgid ""
"Позволяет обращаться к флагам по их позиции, что может быть полезно для "
"их обработки в определённом порядке."
msgstr ""
#: ../../root/api/command/input_flags.rst:176
msgid "__bool__"
msgstr ""
#: ../../root/api/command/input_flags.rst:183
msgid "Определяет, содержит ли коллекция флаги."
msgstr ""
#: ../../root/api/command/input_flags.rst:185
msgid "`True`, если в коллекции есть хотя бы один флаг, иначе `False`."
msgstr ""
#: ../../root/api/command/input_flags.rst:187
msgid "Позволяет проверять наличие флагов в команде для условной логики."
msgstr ""
#: ../../root/api/command/input_flags.rst:198
msgid "__eq__"
msgstr ""
#: ../../root/api/command/input_flags.rst:205
msgid "Сравнивает две коллекции введённых флагов на равенство."
msgstr ""
#: ../../root/api/command/input_flags.rst
msgid "param other"
msgstr ""
#: ../../root/api/command/input_flags.rst:207
msgid "Объект для сравнения."
msgstr ""
#: ../../root/api/command/input_flags.rst:208
msgid "`True`, если коллекции равны, иначе `False`."
msgstr ""
#: ../../root/api/command/input_flags.rst
msgid "raises NotImplementedError"
msgstr ""
#: ../../root/api/command/input_flags.rst:209
msgid "Если `other` не является экземпляром `InputFlags`."
msgstr ""
#: ../../root/api/command/input_flags.rst:211
msgid ""
"Две коллекции считаются равными, если они содержат одинаковое количество "
"флагов и все соответствующие флаги равны (сравнение по имени, см. "
"`InputFlag.__eq__`)."
msgstr ""
#: ../../root/api/command/input_flags.rst:222
msgid "__contains__"
msgstr ""
#: ../../root/api/command/input_flags.rst:229
msgid "Проверяет, содержится ли введённый флаг в коллекции."
msgstr ""
#: ../../root/api/command/input_flags.rst
msgid "param ingressable_item"
msgstr ""
#: ../../root/api/command/input_flags.rst:231
msgid "Объект `InputFlag` для проверки."
msgstr ""
#: ../../root/api/command/input_flags.rst:232
msgid "`True`, если флаг найден, иначе `False`."
msgstr ""
#: ../../root/api/command/input_flags.rst
msgid "raises TypeError"
msgstr ""
#: ../../root/api/command/input_flags.rst:233
msgid "Если `ingressable_item` не является экземпляром `InputFlag`."
msgstr ""
#: ../../root/api/command/input_flags.rst:235
msgid ""
"Позволяет использовать оператор `in` для проверки наличия флага в "
"коллекции."
msgstr ""
#: ../../root/api/command/input_flags.rst:246
msgid "Практические примеры"
msgstr ""
#: ../../root/api/command/input_flags.rst:249
msgid "Обработка всех флагов с проверкой статусов"
msgstr ""
#: ../../root/api/command/input_flags.rst:251
msgid ""
"Пример демонстрирует итерацию по всем введённым флагам с проверкой их "
"статусов валидации:"
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-15 16:09+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -19,11 +19,177 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#: ../../root/api/command/possible_values.rst:4 #: ../../root/api/command/possible_values.rst:5
msgid "PossibleValues" msgid "PossibleValues"
msgstr "" msgstr ""
#: ../../root/api/command/possible_values.rst:6 #: ../../root/api/command/possible_values.rst:7
msgid "mda" msgid ""
"`PossibleValues` — это перечисление (`Enum`), которое определяет "
"специальные режимы валидации для значений флагов. Его задача — "
"предоставить стандартные константы для управления поведением флагов. "
"`PossibleValues` используется в параметре `possible_values` класса "
"`Flag`, чтобы указать, может ли флаг принимать значения и какие "
"ограничения на них накладываются."
msgstr "" msgstr ""
#: ../../root/api/command/possible_values.rst:9
msgid ""
"`PossibleValues` наследуется от `Enum` и содержит два основных значения: "
"`NEITHER` (для флагов без значений) и `ALL` (для флагов, принимающих "
"любые значения). Это перечисление используется вместе со списками строк и"
" регулярными выражениями для создания гибкой системы валидации."
msgstr ""
#: ../../root/api/command/possible_values.rst:12
msgid ""
"Результат валидации доступен через атрибут `status` у экземпляра "
"`InputFlag`. Подробнее см. :ref:`здесь <root_api_command_input_flag>`."
msgstr ""
#: ../../root/api/command/possible_values.rst:16
msgid ""
"Документация по :ref:`Flag <root_api_command_flag>` — класс флага, "
"использующий `PossibleValues`."
msgstr ""
#: ../../root/api/command/possible_values.rst:18
msgid ""
"Документация по :ref:`PredefinedFlags "
"<root_api_command_flag_predefined_flags>` — готовые флаги с примерами "
"использования `PossibleValues`."
msgstr ""
#: ../../root/api/command/possible_values.rst:20
msgid ""
":ref:`Общая информация <root_flags>` о флагах и их использовании в "
"приложении ``Argenta``"
msgstr ""
#: ../../root/api/command/possible_values.rst:25
msgid "Значения enum"
msgstr ""
#: ../../root/api/command/possible_values.rst:28
msgid "NEITHER"
msgstr ""
#: ../../root/api/command/possible_values.rst:35
msgid "Указывает, что флаг **не должен** иметь значения."
msgstr ""
#: ../../root/api/command/possible_values.rst:37
msgid ""
"Флаги с этим значением работают как булевы переключатели: их наличие в "
"командной строке само по себе является информацией. Попытка передать "
"такому флагу значение приведёт к ошибке валидации."
msgstr ""
#: ../../root/api/command/possible_values.rst:39
msgid "**Примеры флагов с** ``NEITHER``:"
msgstr ""
#: ../../root/api/command/possible_values.rst:41
msgid "``--help`` — флаг справки"
msgstr ""
#: ../../root/api/command/possible_values.rst:42
msgid "``--verbose`` — флаг подробного вывода"
msgstr ""
#: ../../root/api/command/possible_values.rst:43
msgid "``--force`` — флаг принудительного выполнения"
msgstr ""
#: ../../root/api/command/possible_values.rst:44
msgid "``-A`` / ``--all`` — флаг выбора всех элементов"
msgstr ""
#: ../../root/api/command/possible_values.rst:46
#: ../../root/api/command/possible_values.rst:73
msgid "**Пример использования:**"
msgstr ""
#: ../../root/api/command/possible_values.rst:55
msgid "ALL"
msgstr ""
#: ../../root/api/command/possible_values.rst:62
msgid "Указывает, что флаг может принимать **любое** значение."
msgstr ""
#: ../../root/api/command/possible_values.rst:64
msgid ""
"Флаги с этим значением универсальны и не накладывают ограничений на "
"передаваемые данные. Валидация всегда будет успешной."
msgstr ""
#: ../../root/api/command/possible_values.rst:66
msgid "**Примеры флагов с** ``ALL``:"
msgstr ""
#: ../../root/api/command/possible_values.rst:68
msgid "``--output`` — путь к выходному файлу"
msgstr ""
#: ../../root/api/command/possible_values.rst:69
msgid "``--message`` — произвольное текстовое сообщение"
msgstr ""
#: ../../root/api/command/possible_values.rst:70
msgid "``--name`` — произвольное имя"
msgstr ""
#: ../../root/api/command/possible_values.rst:71
msgid "``--data`` — произвольные данные"
msgstr ""
#: ../../root/api/command/possible_values.rst:82
msgid "Использование в Flag"
msgstr ""
#: ../../root/api/command/possible_values.rst:85
msgid "Параметр possible_values"
msgstr ""
#: ../../root/api/command/possible_values.rst:87
msgid ""
"`PossibleValues` используется как один из возможных типов для параметра "
"`possible_values` при создании экземпляра `Flag`."
msgstr ""
#: ../../root/api/command/possible_values.rst:89
msgid "**Доступные типы для** `possible_values`:"
msgstr ""
#: ../../root/api/command/possible_values.rst:91
msgid "`PossibleValues.NEITHER`: флаг без значения."
msgstr ""
#: ../../root/api/command/possible_values.rst:92
msgid "`PossibleValues.ALL`: флаг с любым значением (по умолчанию)."
msgstr ""
#: ../../root/api/command/possible_values.rst:93
msgid "`list[str]`: флаг с ограниченным набором значений."
msgstr ""
#: ../../root/api/command/possible_values.rst:94
msgid "`Pattern[str]`: флаг со значением, проверяемым по регулярному выражению."
msgstr ""
#: ../../root/api/command/possible_values.rst:96
msgid "**Пример комбинированного использования:**"
msgstr ""
#: ../../root/api/command/possible_values.rst:105
msgid "Использование в PredefinedFlags"
msgstr ""
#: ../../root/api/command/possible_values.rst:107
msgid "Многие предопределённые флаги используют `PossibleValues.NEITHER`:"
msgstr ""
#~ msgid "mda"
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-15 16:09+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -24,6 +24,151 @@ msgid "ValidationStatus"
msgstr "" msgstr ""
#: ../../root/api/command/validation_status.rst:6 #: ../../root/api/command/validation_status.rst:6
msgid "case" msgid ""
"`ValidationStatus` — это перечисление (`Enum`), которое определяет "
"состояние валидации флага. Его задача — предоставить стандартные "
"константы для отображения результата проверки. `ValidationStatus` "
"используется в атрибуте `status` класса `InputFlag`, чтобы сообщить, "
"прошла ли валидация успешно."
msgstr "" msgstr ""
#: ../../root/api/command/validation_status.rst:8
msgid ""
"`ValidationStatus` наследуется от `Enum` и содержит три значения: `VALID`"
" (корректный флаг), `INVALID` (некорректный) и `UNDEFINED` "
"(незарегистрированный)."
msgstr ""
#: ../../root/api/command/validation_status.rst:12
msgid ""
"Статус валидации устанавливается автоматически при создании экземпляра "
"`InputFlag` на основе правил, заданных в соответствующем `Flag`."
msgstr ""
#: ../../root/api/command/validation_status.rst:16
msgid ""
"Документация по :ref:`InputFlag <root_api_command_input_flag>` — класс "
"введённого флага, использующий `ValidationStatus`."
msgstr ""
#: ../../root/api/command/validation_status.rst:18
msgid ""
"Документация по :ref:`Flag <root_api_command_flag>` — класс флага с "
"правилами валидации."
msgstr ""
#: ../../root/api/command/validation_status.rst:20
msgid ""
"Документация по :ref:`PossibleValues <root_api_command_possible_values>` "
"— типы допустимых значений."
msgstr ""
#: ../../root/api/command/validation_status.rst:25
msgid "Значения enum"
msgstr ""
#: ../../root/api/command/validation_status.rst:28
msgid "VALID"
msgstr ""
#: ../../root/api/command/validation_status.rst:35
msgid "Указывает, что флаг и его значение **прошли** валидацию."
msgstr ""
#: ../../root/api/command/validation_status.rst:37
msgid ""
"Флаги с этим статусом соответствуют правилам, заданным в "
"`possible_values` соответствующего `Flag`. Их можно безопасно "
"использовать в логике приложения без дополнительных проверок."
msgstr ""
#: ../../root/api/command/validation_status.rst:39
msgid "**Условия получения статуса** ``VALID``:"
msgstr ""
#: ../../root/api/command/validation_status.rst:41
msgid "Флаг с `PossibleValues.NEITHER` передан без значения."
msgstr ""
#: ../../root/api/command/validation_status.rst:42
msgid "Флаг с `PossibleValues.ALL` передан с любым значением или без него."
msgstr ""
#: ../../root/api/command/validation_status.rst:43
msgid "Значение флага входит в список разрешённых."
msgstr ""
#: ../../root/api/command/validation_status.rst:44
msgid "Значение флага соответствует регулярному выражению."
msgstr ""
#: ../../root/api/command/validation_status.rst:46
#: ../../root/api/command/validation_status.rst:73
msgid "**Пример использования:**"
msgstr ""
#: ../../root/api/command/validation_status.rst:55
msgid "INVALID"
msgstr ""
#: ../../root/api/command/validation_status.rst:62
msgid "Указывает, что флаг или его значение **не прошли** валидацию."
msgstr ""
#: ../../root/api/command/validation_status.rst:64
msgid ""
"Флаги с этим статусом нарушают правила, заданные в `possible_values` "
"соответствующего `Flag`. Их следует обрабатывать как ошибочные."
msgstr ""
#: ../../root/api/command/validation_status.rst:66
msgid "**Условия получения статуса** ``INVALID``:"
msgstr ""
#: ../../root/api/command/validation_status.rst:68
msgid "Флаг с `PossibleValues.NEITHER` передан со значением."
msgstr ""
#: ../../root/api/command/validation_status.rst:69
msgid "Значение флага не входит в список разрешённых."
msgstr ""
#: ../../root/api/command/validation_status.rst:70
msgid "Значение флага не соответствует регулярному выражению."
msgstr ""
#: ../../root/api/command/validation_status.rst:71
msgid "Флаг требует значение, но передан без него."
msgstr ""
#: ../../root/api/command/validation_status.rst:82
msgid "UNDEFINED"
msgstr ""
#: ../../root/api/command/validation_status.rst:89
msgid "Указывает, что введённый флаг не был зарегистрирован в команде."
msgstr ""
#: ../../root/api/command/validation_status.rst:91
msgid "**Условия получения статуса** ``UNDEFINED``:"
msgstr ""
#: ../../root/api/command/validation_status.rst:93
msgid "Введённый флаг не найден среди зарегистрированных для данной команды."
msgstr ""
#: ../../root/api/command/validation_status.rst:99
msgid "Практические примеры"
msgstr ""
#: ../../root/api/command/validation_status.rst:102
msgid "Комплексный пример валидации"
msgstr ""
#: ../../root/api/command/validation_status.rst:104
msgid "Пример демонстрирует использование всех статусов в реальном сценарии."
msgstr ""
#~ msgid "case"
#~ msgstr ""
+170 -21
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-27 11:56+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -28,44 +28,193 @@ msgid "Описание раздела"
msgstr "" msgstr ""
#: ../../root/api/index.rst:10 #: ../../root/api/index.rst:10
msgid "" msgid "В этом разделе описан публичный API библиотеки. Он включает:"
"В данном разделе приводятся сведения о публичной части интерфейса "
"библиотеки:"
msgstr "" msgstr ""
#: ../../root/api/index.rst:12 #: ../../root/api/index.rst:12
msgid "" msgid "Классы и функции для интеграции в ваши приложения."
"Классы и функции, предназначенные для прямой интеграции в сторонние "
"приложения."
msgstr "" msgstr ""
#: ../../root/api/index.rst:13 #: ../../root/api/index.rst:13
msgid "" msgid "Рекомендации по использованию и поддерживаемые сценарии."
"Советы по совместимости, ограничения и поддерживаемые сценарии "
"использования."
msgstr "" msgstr ""
#: ../../root/api/index.rst:14 #: ../../root/api/index.rst:14
msgid "" msgid "Примеры кода, подробные сигнатуры и описание возвращаемых значений."
"Примеры типовой интеграции, подробные сигнатуры методов и описание "
"возвращаемых сущностей."
msgstr "" msgstr ""
#: ../../root/api/index.rst:15 #: ../../root/api/index.rst:15
msgid "" msgid "Гарантии стабильности и обратной совместимости."
"Гарантии стабильности API, поддержка и обратная совместимость между "
"версиями."
msgstr "" msgstr ""
#: ../../root/api/index.rst:17 #: ../../root/api/index.rst:17
msgid "" msgid ""
"Интерфейсы, не указанные в этом разделе, считаются внутренними и не " "Интерфейсы, не описанные в этом разделе, считаются внутренними. Их "
"подлежат использованию вне самой библиотеки. При разработке собственных " "использование может привести к ошибкам при обновлении библиотеки. При "
"решений рекомендуем обращаться именно к описанным здесь компонентам — это" "разработке собственных решений используйте только компоненты, описанные "
" даст стабильность и гарантии на будущее развитие ваших продуктов с " "здесь. Это обеспечит стабильность и совместимость ваших продуктов с "
"использованием ``Argenta``." "будущими версиями ``Argenta``."
msgstr ""
#: ../../root/api/index.rst:22
msgid "Публичные импорты"
msgstr ""
#: ../../root/api/index.rst:24
msgid ""
"Все основные компоненты библиотеки доступны для прямого импорта из "
"корневого пакета ``argenta`` или его подмодулей."
msgstr ""
#: ../../root/api/index.rst:27
msgid "Основные компоненты"
msgstr ""
#: ../../root/api/index.rst:34
msgid ":ref:`App <root_api_app_index>` — Основной класс приложения."
msgstr ""
#: ../../root/api/index.rst:35
msgid ""
":ref:`Orchestrator <root_api_orchestrator_index>` — Класс для управления "
"жизненным циклом."
msgstr ""
#: ../../root/api/index.rst:36
msgid ""
":ref:`Router <root_api_router>` — Класс для группировки и регистрации "
"команд."
msgstr ""
#: ../../root/api/index.rst:37
msgid ":ref:`Command <root_api_command_index>` — Класс для создания команд."
msgstr ""
#: ../../root/api/index.rst:38
msgid ""
":ref:`Response <root_api_response>` — Объект ответа, передаваемый в "
"обработчики."
msgstr ""
#: ../../root/api/index.rst:41
msgid "Команды и флаги"
msgstr ""
#: ../../root/api/index.rst:54
msgid ":ref:`Flag <root_api_command_flag>` — Класс для описания флага."
msgstr ""
#: ../../root/api/index.rst:55
msgid ":ref:`Flags <root_api_command_flags>` — Коллекция для регистрации флагов."
msgstr ""
#: ../../root/api/index.rst:56
msgid ""
":ref:`InputFlag <root_api_command_input_flag>` — Класс для введённого "
"пользователем флага."
msgstr ""
#: ../../root/api/index.rst:57
msgid ""
":ref:`InputFlags <root_api_command_input_flags>` — Коллекция введённых "
"флагов."
msgstr ""
#: ../../root/api/index.rst:58
msgid ""
":ref:`PossibleValues <root_api_command_possible_values>` — Правила "
"валидации значений флагов."
msgstr ""
#: ../../root/api/index.rst:59
msgid ""
":ref:`ValidationStatus <root_api_command_validation_status>` — Статусы "
"валидации флагов."
msgstr ""
#: ../../root/api/index.rst:60
msgid "``PredefinedFlags`` — Готовые наборы флагов (например, ``--help``)."
msgstr ""
#: ../../root/api/index.rst:63
msgid "Настройка приложения"
msgstr ""
#: ../../root/api/index.rst:73
msgid ""
":ref:`AutoCompleter <root_api_app_autocompleter>` — Базовый класс для "
"автодополнения."
msgstr ""
#: ../../root/api/index.rst:74
msgid ""
":ref:`StaticDividingLine <root_api_app_dividing_lines>` — Статическая "
"разделительная линия."
msgstr ""
#: ../../root/api/index.rst:75
msgid ""
":ref:`DynamicDividingLine <root_api_app_dividing_lines>` — Динамическая "
"разделительная линия."
msgstr ""
#: ../../root/api/index.rst:76
msgid "``PredefinedMessages`` — Готовые системные сообщения."
msgstr ""
#: ../../root/api/index.rst:79
msgid "Внедрение зависимостей"
msgstr ""
#: ../../root/api/index.rst:87
msgid ""
":ref:`FromDishka <root_dependency_injection>` — Маркер для внедрения "
"зависимостей."
msgstr ""
#: ../../root/api/index.rst:88
msgid ""
":ref:`inject <root_dependency_injection>` — Декоратор для асинхронного "
"внедрения."
msgstr "" msgstr ""
#~ msgid "Публичный API" #~ msgid "Публичный API"
#~ msgstr "" #~ msgstr ""
#~ msgid ""
#~ "В данном разделе приводятся сведения о"
#~ " публичной части интерфейса библиотеки:"
#~ msgstr ""
#~ msgid ""
#~ "Классы и функции, предназначенные для "
#~ "прямой интеграции в сторонние приложения."
#~ msgstr ""
#~ msgid ""
#~ "Советы по совместимости, ограничения и "
#~ "поддерживаемые сценарии использования."
#~ msgstr ""
#~ msgid ""
#~ "Примеры типовой интеграции, подробные "
#~ "сигнатуры методов и описание возвращаемых "
#~ "сущностей."
#~ msgstr ""
#~ msgid ""
#~ "Гарантии стабильности API, поддержка и "
#~ "обратная совместимость между версиями."
#~ msgstr ""
#~ msgid ""
#~ "Интерфейсы, не указанные в этом разделе,"
#~ " считаются внутренними и не подлежат "
#~ "использованию вне самой библиотеки. При "
#~ "разработке собственных решений рекомендуем "
#~ "обращаться именно к описанным здесь "
#~ "компонентам — это даст стабильность и"
#~ " гарантии на будущее развитие ваших "
#~ "продуктов с использованием ``Argenta``."
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-27 11:56+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -25,12 +25,11 @@ msgstr ""
#: ../../root/api/orchestrator/argparser.rst:6 #: ../../root/api/orchestrator/argparser.rst:6
msgid "" msgid ""
"Объект ``ArgParser`` в ``Argenta`` предназначен для разбора и обработки " "``ArgParser`` предназначен для обработки **аргументов командной строки**,"
"**аргументов командной строки**, которые передаются вашему приложению при" " передаваемых приложению при запуске. Важно не путать их с флагами, "
" его запуске. Важно не путать их с флагами команд, которые пользователь " "которые пользователь вводит в интерактивном режиме. ``ArgParser`` "
"вводит в интерактивном режиме работы приложения. ``ArgParser`` позволяет " "позволяет получать внешнюю конфигурацию в момент старта (например, путь к"
"вашему приложению получать внешнюю конфигурацию в момент старта, " " файлу настроек, флаги отладки или режим запуска)."
"например, путь к файлу настроек, флаги для отладки или режим запуска."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:11 #: ../../root/api/orchestrator/argparser.rst:11
@@ -38,30 +37,25 @@ msgid "Инициализация"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:21 #: ../../root/api/orchestrator/argparser.rst:21
msgid "Создает экземпляр парсера аргументов командной строки." msgid "Создаёт экземпляр парсера аргументов командной строки."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:23 #: ../../root/api/orchestrator/argparser.rst:23
msgid "" msgid ""
"``processed_args``: Список аргументов, которые будут обрабатываться и " "``processed_args``: Список аргументов для обработки при запуске "
"парситься при запуске приложения, подробнее :ref:`тут " "приложения. Подробнее см. :ref:`здесь <root_api_orchestrator_arguments>`."
"<root_api_orchestrator_arguments>`."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:24 #: ../../root/api/orchestrator/argparser.rst:24
msgid "``name``: Имя приложения, которое будет отображаться в справке." msgid "``name``: Имя приложения для отображения в справке."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:25 #: ../../root/api/orchestrator/argparser.rst:25
msgid "" msgid "``description``: Описание приложения для отображения в справке."
"``description``: Описание приложения, которое будет отображаться в "
"справке."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:26 #: ../../root/api/orchestrator/argparser.rst:26
msgid "" msgid "``epilog``: Дополнительная информация для отображения в конце справки."
"``epilog``: Дополнительная информация, которая будет отображаться в конце"
" справки."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:29 #: ../../root/api/orchestrator/argparser.rst:29
@@ -70,24 +64,22 @@ msgstr ""
#: ../../root/api/orchestrator/argparser.rst:33 #: ../../root/api/orchestrator/argparser.rst:33
msgid "" msgid ""
"Экземпляр класса ``ArgSpace``, который содержит все обработанные " "Экземпляр ``ArgSpace``, содержащий все обработанные аргументы командной "
"аргументы командной строки, подробнее :ref:`тут " "строки. Подробнее см. :ref:`здесь <root_api_orchestrator_argspace>`."
"<root_api_orchestrator_argspace>`."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:36 #: ../../root/api/orchestrator/argparser.rst:36
msgid "" msgid ""
"До инициализации инстанса ``Orchestrator``, которому в конструктор был " "До инициализации ``Orchestrator``, в конструктор которого был передан "
"передан соответствующий экземпляр ``ArgParser``, атрибут " "экземпляр ``ArgParser``, атрибут ``parsed_argspace`` будет содержать "
"``parsed_argspace`` будет равен пустому ``ArgSpace``." "пустой ``ArgSpace``."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:38 #: ../../root/api/orchestrator/argparser.rst:38
msgid "" msgid ""
"Парсинг и валидация аргументов командной строки происходит при " "Парсинг и валидация аргументов происходят при инициализации "
"инициализации ``Orchestrator``, соответственно использование атрибута " "``Orchestrator``, поэтому использовать ``parsed_argspace`` "
"``parsed_argspace`` **целесообразно только после инициализации** " "**целесообразно только после** этого."
"``Orchestrator``."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argparser.rst:43 #: ../../root/api/orchestrator/argparser.rst:43
@@ -96,9 +88,9 @@ msgstr ""
#: ../../root/api/orchestrator/argparser.rst:45 #: ../../root/api/orchestrator/argparser.rst:45
msgid "" msgid ""
"Использование атрибута ``parsed_argspace`` рекомендуется только на этапе " "Использовать атрибут ``parsed_argspace`` рекомендуется только на этапе "
"настройки приложения, в хэндлерах лучшей практикой является получение " "настройки приложения. В обработчиках лучшей практикой является получение "
"``ArgSpace`` через ``di``, подробнее :ref:`тут " "``ArgSpace`` через DI. Подробнее см. :ref:`здесь "
"<root_dependency_injection>`." "<root_dependency_injection>`."
msgstr "" msgstr ""
@@ -146,3 +138,71 @@ msgstr ""
#~ msgid "nu" #~ msgid "nu"
#~ msgstr "" #~ msgstr ""
#~ msgid ""
#~ "Объект ``ArgParser`` в ``Argenta`` "
#~ "предназначен для разбора и обработки "
#~ "**аргументов командной строки**, которые "
#~ "передаются вашему приложению при его "
#~ "запуске. Важно не путать их с "
#~ "флагами команд, которые пользователь вводит"
#~ " в интерактивном режиме работы приложения."
#~ " ``ArgParser`` позволяет вашему приложению "
#~ "получать внешнюю конфигурацию в момент "
#~ "старта, например, путь к файлу настроек,"
#~ " флаги для отладки или режим запуска."
#~ msgstr ""
#~ msgid "Создает экземпляр парсера аргументов командной строки."
#~ msgstr ""
#~ msgid ""
#~ "``processed_args``: Список аргументов, которые "
#~ "будут обрабатываться и парситься при "
#~ "запуске приложения, подробнее :ref:`тут "
#~ "<root_api_orchestrator_arguments>`."
#~ msgstr ""
#~ msgid "``name``: Имя приложения, которое будет отображаться в справке."
#~ msgstr ""
#~ msgid ""
#~ "``description``: Описание приложения, которое "
#~ "будет отображаться в справке."
#~ msgstr ""
#~ msgid ""
#~ "``epilog``: Дополнительная информация, которая "
#~ "будет отображаться в конце справки."
#~ msgstr ""
#~ msgid ""
#~ "Экземпляр класса ``ArgSpace``, который "
#~ "содержит все обработанные аргументы командной"
#~ " строки, подробнее :ref:`тут "
#~ "<root_api_orchestrator_argspace>`."
#~ msgstr ""
#~ msgid ""
#~ "До инициализации инстанса ``Orchestrator``, "
#~ "которому в конструктор был передан "
#~ "соответствующий экземпляр ``ArgParser``, атрибут "
#~ "``parsed_argspace`` будет равен пустому "
#~ "``ArgSpace``."
#~ msgstr ""
#~ msgid ""
#~ "Парсинг и валидация аргументов командной "
#~ "строки происходит при инициализации "
#~ "``Orchestrator``, соответственно использование "
#~ "атрибута ``parsed_argspace`` **целесообразно только"
#~ " после инициализации** ``Orchestrator``."
#~ msgstr ""
#~ msgid ""
#~ "Использование атрибута ``parsed_argspace`` "
#~ "рекомендуется только на этапе настройки "
#~ "приложения, в хэндлерах лучшей практикой "
#~ "является получение ``ArgSpace`` через ``di``,"
#~ " подробнее :ref:`тут <root_dependency_injection>`."
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-27 11:56+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -25,18 +25,15 @@ msgstr ""
#: ../../root/api/orchestrator/argspace.rst:6 #: ../../root/api/orchestrator/argspace.rst:6
msgid "" msgid ""
"Объект ``ArgSpace`` является контейнером для хранения и управления " "``ArgSpace`` — это контейнер для хранения и управления обработанными "
"распаршенными аргументами командной строки в приложении ``Argenta``. Его " "аргументами командной строки. Его основная задача — предоставить удобный "
"основная задача — предоставить удобный интерфейс для доступа к значениям " "интерфейс для доступа к значениям, переданным при запуске приложения."
"аргументов, переданных при запуске приложения."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:8 #: ../../root/api/orchestrator/argspace.rst:8
msgid "" msgid ""
"``ArgSpace`` автоматически создается после парсинга аргументов через " "``ArgSpace`` создаётся автоматически после обработки аргументов с помощью"
"``ArgParser`` и содержит коллекцию объектов ``InputArgument``, " " `ArgParser` и содержит коллекцию объектов `InputArgument`."
"представляющих собой финальные значения всех переданных параметров "
"командной строки."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:13 #: ../../root/api/orchestrator/argspace.rst:13
@@ -44,13 +41,13 @@ msgid "Инициализация"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:20 #: ../../root/api/orchestrator/argspace.rst:20
msgid "Создает новое пространство аргументов." msgid "Создаёт новое пространство аргументов."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:22 #: ../../root/api/orchestrator/argspace.rst:22
msgid "" msgid ""
"``all_arguments`` : Список распаршенных аргументов в виде объектов " "``all_arguments``: Список обработанных аргументов в виде объектов "
"``InputArgument``. Каждый элемент содержит имя, значение и тип исходного " "`InputArgument`. Каждый элемент содержит имя, значение и тип исходного "
"аргумента." "аргумента."
msgstr "" msgstr ""
@@ -60,9 +57,8 @@ msgstr ""
#: ../../root/api/orchestrator/argspace.rst:28 #: ../../root/api/orchestrator/argspace.rst:28
msgid "" msgid ""
"Список всех распаршенных аргументов типа ``InputArgument``. Содержит все " "Список всех обработанных аргументов типа `InputArgument`, включая "
"аргументы, переданные при запуске приложения, включая значения по " "значения по умолчанию для не указанных параметров."
"умолчанию для не указанных параметров."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:33 #: ../../root/api/orchestrator/argspace.rst:33
@@ -74,7 +70,7 @@ msgid "get_by_name"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:43 #: ../../root/api/orchestrator/argspace.rst:43
msgid "Возвращает аргумент по его имени." msgid "Возвращает аргумент по имени."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst #: ../../root/api/orchestrator/argspace.rst
@@ -82,7 +78,7 @@ msgid "param name"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:45 #: ../../root/api/orchestrator/argspace.rst:45
msgid "Имя искомого аргумента" msgid "Имя искомого аргумента."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst #: ../../root/api/orchestrator/argspace.rst
@@ -90,16 +86,13 @@ msgid "return"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:46 #: ../../root/api/orchestrator/argspace.rst:46
msgid "" msgid "Объект `InputArgument` или `None`, если аргумент не найден."
"Объект ``InputArgument`` с указанным именем или ``None``, если аргумент "
"не найден"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:48 #: ../../root/api/orchestrator/argspace.rst:48
msgid "" msgid ""
"Метод выполняет линейный поиск по списку ``all_arguments`` и возвращает " "Метод выполняет линейный поиск по списку `all_arguments`. Если аргумент "
"аргумент с соответствующим именем. Если аргумент не найден, возвращается " "не найден, возвращается `None`."
"``None``."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:50 #: ../../root/api/orchestrator/argspace.rst:50
@@ -112,7 +105,7 @@ msgid "get_by_type"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:79 #: ../../root/api/orchestrator/argspace.rst:79
msgid "Получает все аргументы определенного типа." msgid "Возвращает все аргументы определённого типа."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst #: ../../root/api/orchestrator/argspace.rst
@@ -120,54 +113,144 @@ msgid "param arg_type"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:81 #: ../../root/api/orchestrator/argspace.rst:81
msgid "Тип аргумента (``BooleanArgument`` или ``ValueArgument``)" msgid "Тип аргумента (`BooleanArgument` или `ValueArgument`)."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:82 #: ../../root/api/orchestrator/argspace.rst:82
msgid "" msgid "Список аргументов указанного типа или пустой список."
"Список аргументов указанного типа или пустой список, если аргументы не "
"найдены"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:84 #: ../../root/api/orchestrator/argspace.rst:84
msgid "" msgid ""
"Метод фильтрует ``all_arguments`` по атрибуту ``founder_class`` каждого " "Метод фильтрует `all_arguments` по атрибуту `founder_class` и возвращает "
"``InputArgument`` и возвращает только те аргументы, которые были созданы " "аргументы, созданные из указанного типа."
"из указанного типа."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:109 #: ../../root/api/orchestrator/argspace.rst:94
msgid "InputArgument" msgid "InputArgument"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:112 #: ../../root/api/orchestrator/argspace.rst:97
msgid "" msgid ""
"Документация по ``InputArgument`` находится :ref:`тут " "Документация по ``InputArgument`` находится :ref:`здесь "
"<root_api_orchestrator_arguments_inputargument>`" "<root_api_orchestrator_arguments_inputargument>`."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:117 #: ../../root/api/orchestrator/argspace.rst:102
msgid "Примеры испольования" msgid "Примеры испольования"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:119 #: ../../root/api/orchestrator/argspace.rst:104
msgid "" msgid ""
"``ArgSpace`` используется для доступа к значениям аргументов после " "`ArgSpace` используется для доступа к значениям аргументов после запуска "
"запуска приложения. Типичный сценарий работы включает парсинг аргументов " "приложения. Типичный сценарий включает обработку аргументов через "
"через ``ArgParser`` и последующее извлечение значений из ``ArgSpace``." "`ArgParser` и последующее извлечение значений из `ArgSpace`."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:121 #: ../../root/api/orchestrator/argspace.rst:106
msgid "**Полный пример:**" msgid "**Полный пример:**"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:126 #: ../../root/api/orchestrator/argspace.rst:111
msgid "" msgid ""
"Доступ к аргументам из хэндлеров осуществляется с помощью ``di``, " "Доступ к аргументам из обработчиков осуществляется с помощью DI. "
"подробнее :ref:`тут <root_dependency_injection>`." "Подробнее см. :ref:`здесь <root_dependency_injection>`."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/argspace.rst:131 #: ../../root/api/orchestrator/argspace.rst:116
msgid "**Запуск приложения:**" msgid "**Запуск приложения:**"
msgstr "" msgstr ""
#~ msgid ""
#~ "Объект ``ArgSpace`` является контейнером для"
#~ " хранения и управления распаршенными "
#~ "аргументами командной строки в приложении "
#~ "``Argenta``. Его основная задача — "
#~ "предоставить удобный интерфейс для доступа "
#~ "к значениям аргументов, переданных при "
#~ "запуске приложения."
#~ msgstr ""
#~ msgid ""
#~ "``ArgSpace`` автоматически создается после "
#~ "парсинга аргументов через ``ArgParser`` и "
#~ "содержит коллекцию объектов ``InputArgument``, "
#~ "представляющих собой финальные значения всех"
#~ " переданных параметров командной строки."
#~ msgstr ""
#~ msgid "Создает новое пространство аргументов."
#~ msgstr ""
#~ msgid ""
#~ "``all_arguments`` : Список распаршенных "
#~ "аргументов в виде объектов ``InputArgument``."
#~ " Каждый элемент содержит имя, значение "
#~ "и тип исходного аргумента."
#~ msgstr ""
#~ msgid ""
#~ "Список всех распаршенных аргументов типа "
#~ "``InputArgument``. Содержит все аргументы, "
#~ "переданные при запуске приложения, включая "
#~ "значения по умолчанию для не указанных"
#~ " параметров."
#~ msgstr ""
#~ msgid "Возвращает аргумент по его имени."
#~ msgstr ""
#~ msgid "Имя искомого аргумента"
#~ msgstr ""
#~ msgid ""
#~ "Объект ``InputArgument`` с указанным именем"
#~ " или ``None``, если аргумент не "
#~ "найден"
#~ msgstr ""
#~ msgid ""
#~ "Метод выполняет линейный поиск по списку"
#~ " ``all_arguments`` и возвращает аргумент с"
#~ " соответствующим именем. Если аргумент не"
#~ " найден, возвращается ``None``."
#~ msgstr ""
#~ msgid "Получает все аргументы определенного типа."
#~ msgstr ""
#~ msgid "Тип аргумента (``BooleanArgument`` или ``ValueArgument``)"
#~ msgstr ""
#~ msgid ""
#~ "Список аргументов указанного типа или "
#~ "пустой список, если аргументы не найдены"
#~ msgstr ""
#~ msgid ""
#~ "Метод фильтрует ``all_arguments`` по атрибуту"
#~ " ``founder_class`` каждого ``InputArgument`` и"
#~ " возвращает только те аргументы, которые"
#~ " были созданы из указанного типа."
#~ msgstr ""
#~ msgid ""
#~ "Документация по ``InputArgument`` находится "
#~ ":ref:`тут <root_api_orchestrator_arguments_inputargument>`"
#~ msgstr ""
#~ msgid ""
#~ "``ArgSpace`` используется для доступа к "
#~ "значениям аргументов после запуска приложения."
#~ " Типичный сценарий работы включает парсинг"
#~ " аргументов через ``ArgParser`` и "
#~ "последующее извлечение значений из "
#~ "``ArgSpace``."
#~ msgstr ""
#~ msgid ""
#~ "Доступ к аргументам из хэндлеров "
#~ "осуществляется с помощью ``di``, подробнее "
#~ ":ref:`тут <root_dependency_injection>`."
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-27 11:56+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -25,16 +25,15 @@ msgstr ""
#: ../../root/api/orchestrator/arguments.rst:6 #: ../../root/api/orchestrator/arguments.rst:6
msgid "" msgid ""
"Модуль ``Arguments`` предоставляет набор классов для работы с аргументами" "Модуль ``Arguments`` предоставляет классы для работы с аргументами "
" командной строки при запуске приложения ``Argenta``. Эти аргументы " "командной строки. Они позволяют настраивать поведение приложения в момент"
"позволяют настраивать поведение приложения на этапе его старта, передавая" " его запуска, передавая различные параметры конфигурации."
" различные параметры конфигурации через интерфейс командной строки."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:8 #: ../../root/api/orchestrator/arguments.rst:8
msgid "" msgid ""
"Аргументы регистрируются в ``ArgParser`` и парсятся при запуске " "Аргументы регистрируются в `ArgParser` и после обработки становятся "
"приложения, становясь доступными через объект ``ArgSpace``." "доступными в объекте `ArgSpace`."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:13 #: ../../root/api/orchestrator/arguments.rst:13
@@ -43,13 +42,12 @@ msgstr ""
#: ../../root/api/orchestrator/arguments.rst:15 #: ../../root/api/orchestrator/arguments.rst:15
msgid "" msgid ""
"Класс для аргументов командной строки, требующих передачи значения. " "Класс для аргументов, требующих передачи значения. Используется для "
"Используется для параметров конфигурации, которым необходимо указать " "параметров конфигурации, которым необходимо указать значение при запуске."
"конкретное значение при запуске приложения."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:30 #: ../../root/api/orchestrator/arguments.rst:30
msgid "Создает аргумент командной строки, требующий значения." msgid "Создаёт аргумент командной строки, требующий значения."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst #: ../../root/api/orchestrator/arguments.rst
@@ -68,7 +66,7 @@ msgstr ""
#: ../../root/api/orchestrator/arguments.rst:33 #: ../../root/api/orchestrator/arguments.rst:33
#: ../../root/api/orchestrator/arguments.rst:101 #: ../../root/api/orchestrator/arguments.rst:101
msgid "Префикс аргумента, по умолчанию ``--``" msgid "Префикс (по умолчанию ``--``)"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst #: ../../root/api/orchestrator/arguments.rst
@@ -77,7 +75,7 @@ msgstr ""
#: ../../root/api/orchestrator/arguments.rst:34 #: ../../root/api/orchestrator/arguments.rst:34
#: ../../root/api/orchestrator/arguments.rst:102 #: ../../root/api/orchestrator/arguments.rst:102
msgid "Сообщение справки, отображаемое при ``--help``" msgid "Сообщение для справки (``--help``)"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst #: ../../root/api/orchestrator/arguments.rst
@@ -85,9 +83,7 @@ msgid "param possible_values"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:35 #: ../../root/api/orchestrator/arguments.rst:35
msgid "" msgid "Список допустимых значений (передаётся в `choices` `ArgumentParser`)"
"Список допустимых значений для аргумента. Передается в параметр "
"``choices`` ArgumentParser"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst #: ../../root/api/orchestrator/arguments.rst
@@ -95,7 +91,7 @@ msgid "param default"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:36 #: ../../root/api/orchestrator/arguments.rst:36
msgid "Значение по умолчанию, используемое если аргумент не передан при запуске" msgid "Значение по умолчанию, если аргумент не передан"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst #: ../../root/api/orchestrator/arguments.rst
@@ -103,9 +99,7 @@ msgid "param is_required"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:37 #: ../../root/api/orchestrator/arguments.rst:37
msgid "" msgid "Если ``True``, аргумент становится обязательным"
"Обязатялен ли аргумент. Если ``True``, приложение не запустится без этого"
" аргумента"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst #: ../../root/api/orchestrator/arguments.rst
@@ -114,7 +108,7 @@ msgstr ""
#: ../../root/api/orchestrator/arguments.rst:38 #: ../../root/api/orchestrator/arguments.rst:38
#: ../../root/api/orchestrator/arguments.rst:103 #: ../../root/api/orchestrator/arguments.rst:103
msgid "Является ли аргумент устаревшим" msgid "Если ``True``, помечает аргумент как устаревший"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:40 #: ../../root/api/orchestrator/arguments.rst:40
@@ -133,14 +127,12 @@ msgstr ""
#: ../../root/api/orchestrator/arguments.rst:86 #: ../../root/api/orchestrator/arguments.rst:86
msgid "" msgid ""
"Класс для булевых аргументов командной строки, которые не требуют " "Класс для булевых аргументов, не требующих значения. Их наличие при "
"передачи значения. Наличие или отсутствие аргумента при запуске " "запуске устанавливает значение в `True`, отсутствие — в `False`."
"определяет состояние распаршенных аргументов(``True`` при наличии и "
"``False`` при отсутствии)."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:98 #: ../../root/api/orchestrator/arguments.rst:98
msgid "Создает булевый аргумент командной строки без значения." msgid "Создаёт булев аргумент командной строки без значения."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:147 #: ../../root/api/orchestrator/arguments.rst:147
@@ -149,20 +141,20 @@ msgstr ""
#: ../../root/api/orchestrator/arguments.rst:150 #: ../../root/api/orchestrator/arguments.rst:150
msgid "" msgid ""
"``InputArgument`` непосредственно связан и является наполнителем " "``InputArgument`` напрямую связан с контейнером ``ArgSpace`` и является "
"контейнера ``ArgSpace``, подробнее про него :ref:`тут " "его наполнителем. Подробнее о нём см. :ref:`здесь "
"<root_api_orchestrator_argspace>`." "<root_api_orchestrator_argspace>`."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:152 #: ../../root/api/orchestrator/arguments.rst:152
msgid "" msgid ""
"Представляет собой распаршенный аргумент командной строки после запуска " "Представляет собой обработанный аргумент командной строки. Этот класс "
"приложения. Этот класс используется внутри объекта ``ArgSpace`` для " "используется внутри `ArgSpace` для хранения значений, полученных после "
"хранения значений аргументов, полученных при парсинге." "парсинга."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:163 #: ../../root/api/orchestrator/arguments.rst:163
msgid "Создает экземпляр распарсенного входного аргумента." msgid "Создаёт экземпляр обработанного входного аргумента."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst #: ../../root/api/orchestrator/arguments.rst
@@ -171,8 +163,8 @@ msgstr ""
#: ../../root/api/orchestrator/arguments.rst:166 #: ../../root/api/orchestrator/arguments.rst:166
msgid "" msgid ""
"Значение аргумента. Для ``BooleanArgument`` всегда ``True`` если флаг " "Значение аргумента. Для `BooleanArgument``True`, если флаг передан; "
"передан, для ``ValueArgument`` — строка со значением" "для `ValueArgument` — строка со значением"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst #: ../../root/api/orchestrator/arguments.rst
@@ -181,54 +173,179 @@ msgstr ""
#: ../../root/api/orchestrator/arguments.rst:167 #: ../../root/api/orchestrator/arguments.rst:167
msgid "" msgid ""
"Класс-родитель, из которого был создан этот аргумент (``BooleanArgument``" "Класс-родитель, из которого был создан аргумент (`BooleanArgument` или "
" или ``ValueArgument``)" "`ValueArgument`)"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:169 #: ../../root/api/orchestrator/arguments.rst:169
msgid "**Атрибуты:**" msgid "**Атрибуты:**"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:173 #: ../../root/api/orchestrator/arguments.rst:174
msgid "" msgid ""
"Имя аргумента в виде строки. Соответствует имени, указанному при создании" "Имя аргумента, указанное при создании `ValueArgument` или "
" ``ValueArgument`` или ``BooleanArgument``." "`BooleanArgument`."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:177 #: ../../root/api/orchestrator/arguments.rst:178
msgid "Значение аргумента. Тип значения зависит от исходного класса аргумента:" msgid "Значение аргумента. Тип зависит от исходного класса:"
msgstr ""
#: ../../root/api/orchestrator/arguments.rst:179
msgid "Для ``BooleanArgument``: ``True`` если флаг был передан при запуске"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:180 #: ../../root/api/orchestrator/arguments.rst:180
msgid "Для `BooleanArgument`: `True`, если флаг был передан."
msgstr ""
#: ../../root/api/orchestrator/arguments.rst:181
msgid "" msgid ""
"Для ``ValueArgument``: строка с переданным значением или значением по " "Для `ValueArgument`: строка с переданным значением или значением по "
"умолчанию" "умолчанию"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:184 #: ../../root/api/orchestrator/arguments.rst:185
msgid "" msgid ""
"Ссылка на класс, из которого был создан этот аргумент. Используется для " "Ссылка на класс-родитель. Используется для определения типа и фильтрации "
"определения типа аргумента и фильтрации в методе ``get_by_type()``." "в методе `get_by_type()`."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:186 #: ../../root/api/orchestrator/arguments.rst:187
msgid "**Методы:**" msgid "**Методы:**"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:190 #: ../../root/api/orchestrator/arguments.rst:191
msgid "" msgid "Возвращает строковое представление в формате `InputArgument(name=value)`."
"Возвращает строковое представление аргумента в формате "
"``InputArgument(name=value)``."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/arguments.rst:200 #: ../../root/api/orchestrator/arguments.rst:201
msgid "Возвращает техническое представление объекта в виде строки." msgid "Возвращает техническое представление объекта."
msgstr "" msgstr ""
#~ msgid "prikol" #~ msgid "prikol"
#~ msgstr "" #~ msgstr ""
#~ msgid ""
#~ "Модуль ``Arguments`` предоставляет набор "
#~ "классов для работы с аргументами "
#~ "командной строки при запуске приложения "
#~ "``Argenta``. Эти аргументы позволяют "
#~ "настраивать поведение приложения на этапе "
#~ "его старта, передавая различные параметры "
#~ "конфигурации через интерфейс командной строки."
#~ msgstr ""
#~ msgid ""
#~ "Аргументы регистрируются в ``ArgParser`` и "
#~ "парсятся при запуске приложения, становясь "
#~ "доступными через объект ``ArgSpace``."
#~ msgstr ""
#~ msgid ""
#~ "Класс для аргументов командной строки, "
#~ "требующих передачи значения. Используется для"
#~ " параметров конфигурации, которым необходимо "
#~ "указать конкретное значение при запуске "
#~ "приложения."
#~ msgstr ""
#~ msgid "Создает аргумент командной строки, требующий значения."
#~ msgstr ""
#~ msgid "Префикс аргумента, по умолчанию ``--``"
#~ msgstr ""
#~ msgid "Сообщение справки, отображаемое при ``--help``"
#~ msgstr ""
#~ msgid ""
#~ "Список допустимых значений для аргумента. "
#~ "Передается в параметр ``choices`` "
#~ "ArgumentParser"
#~ msgstr ""
#~ msgid ""
#~ "Значение по умолчанию, используемое если "
#~ "аргумент не передан при запуске"
#~ msgstr ""
#~ msgid ""
#~ "Обязатялен ли аргумент. Если ``True``, "
#~ "приложение не запустится без этого "
#~ "аргумента"
#~ msgstr ""
#~ msgid "Является ли аргумент устаревшим"
#~ msgstr ""
#~ msgid ""
#~ "Класс для булевых аргументов командной "
#~ "строки, которые не требуют передачи "
#~ "значения. Наличие или отсутствие аргумента "
#~ "при запуске определяет состояние распаршенных"
#~ " аргументов(``True`` при наличии и "
#~ "``False`` при отсутствии)."
#~ msgstr ""
#~ msgid "Создает булевый аргумент командной строки без значения."
#~ msgstr ""
#~ msgid ""
#~ "``InputArgument`` непосредственно связан и "
#~ "является наполнителем контейнера ``ArgSpace``, "
#~ "подробнее про него :ref:`тут "
#~ "<root_api_orchestrator_argspace>`."
#~ msgstr ""
#~ msgid ""
#~ "Представляет собой распаршенный аргумент "
#~ "командной строки после запуска приложения. "
#~ "Этот класс используется внутри объекта "
#~ "``ArgSpace`` для хранения значений аргументов,"
#~ " полученных при парсинге."
#~ msgstr ""
#~ msgid "Создает экземпляр распарсенного входного аргумента."
#~ msgstr ""
#~ msgid ""
#~ "Значение аргумента. Для ``BooleanArgument`` "
#~ "всегда ``True`` если флаг передан, для"
#~ " ``ValueArgument`` — строка со значением"
#~ msgstr ""
#~ msgid ""
#~ "Класс-родитель, из которого был создан "
#~ "этот аргумент (``BooleanArgument`` или "
#~ "``ValueArgument``)"
#~ msgstr ""
#~ msgid ""
#~ "Имя аргумента в виде строки. "
#~ "Соответствует имени, указанному при создании"
#~ " ``ValueArgument`` или ``BooleanArgument``."
#~ msgstr ""
#~ msgid "Значение аргумента. Тип значения зависит от исходного класса аргумента:"
#~ msgstr ""
#~ msgid "Для ``BooleanArgument``: ``True`` если флаг был передан при запуске"
#~ msgstr ""
#~ msgid ""
#~ "Для ``ValueArgument``: строка с переданным "
#~ "значением или значением по умолчанию"
#~ msgstr ""
#~ msgid ""
#~ "Ссылка на класс, из которого был "
#~ "создан этот аргумент. Используется для "
#~ "определения типа аргумента и фильтрации "
#~ "в методе ``get_by_type()``."
#~ msgstr ""
#~ msgid ""
#~ "Возвращает строковое представление аргумента в"
#~ " формате ``InputArgument(name=value)``."
#~ msgstr ""
#~ msgid "Возвращает техническое представление объекта в виде строки."
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-27 11:56+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -25,18 +25,17 @@ msgstr ""
#: ../../root/api/orchestrator/index.rst:6 #: ../../root/api/orchestrator/index.rst:6
msgid "" msgid ""
"Объект ``Orchestrator`` в ``Argenta`` представляет собой высокоуровневый " "``Orchestrator`` — это высокоуровневый компонент, который управляет "
"компонент, который стоит над ``App`` и отвечает за \"оркестрацию\" всего " "жизненным циклом приложения. Его главная задача — инициализация и "
"приложения. Его главная задача — инициализация и конфигурация сложных " "конфигурация окружения, включая внедрение зависимостей (DI), парсинг "
"систем, таких как внедрение зависимостей (``di``), парсинг аргументов " "аргументов командной строки и запуск основного цикла `App`."
"командной строки при запуске, и запуск основного цикла приложения."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:8 #: ../../root/api/orchestrator/index.rst:8
msgid "" msgid ""
"В то время как ``App`` отвечает за интерактивную сессию (ввод команд, " "В то время как `App` отвечает за логику интерактивной сессии (ввод "
"роутинг), ``Orchestrator`` подготавливает окружение, в котором ``App`` " "команд, маршрутизация), `Orchestrator` подготавливает окружение для его "
"будет работать. Он является точкой входа для приложений." "работы и служит точкой входа в приложение."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:13 #: ../../root/api/orchestrator/index.rst:13
@@ -44,30 +43,28 @@ msgid "Инициализация"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:28 #: ../../root/api/orchestrator/index.rst:28
msgid "Создает и конфигурирует экземпляр ``Orchestrator``." msgid "Создаёт и конфигурирует экземпляр ``Orchestrator``."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:30 #: ../../root/api/orchestrator/index.rst:30
msgid "" msgid ""
"``arg_parser``: Экземпляр " "``arg_parser``: Экземпляр `ArgParser`, отвечающий за парсинг аргументов "
":class:`argenta.orchestrator.argparser.ArgParser`, который отвечает за " "командной строки при запуске скрипта (не путать с командами в "
"парсинг аргументов, переданных скрипту при запуске из командной строки " "интерактивном режиме)."
"(не путать с командами, вводимыми в интерактивном режиме)."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:31 #: ../../root/api/orchestrator/index.rst:31
msgid "" msgid ""
"``custom_providers``: Список пользовательских провайдеров " "``custom_providers``: Список пользовательских провайдеров "
"``dishka.Provider``. Это основной механизм для добавления ваших " "`dishka.Provider` для добавления ваших сервисов (например, подключений к "
"собственных сервисов (например, подключений к базе данных, клиентов API) " "БД или API-клиентов) в DI-контейнер."
"в контейнер внедрения зависимостей."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:32 #: ../../root/api/orchestrator/index.rst:32
msgid "" msgid ""
"``auto_inject_handlers``: Если **True** (по умолчанию), ``dishka`` будет " "``auto_inject_handlers``: Если `True` (по умолчанию), `dishka` "
"автоматически инспектировать сигнатуры обработчиков команд и внедрять в " "автоматически внедрит зависимости в обработчики команд, инспектируя их "
"них требуемые зависимости из контейнера." "сигнатуры."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:37 #: ../../root/api/orchestrator/index.rst:37
@@ -76,18 +73,17 @@ msgstr ""
#: ../../root/api/orchestrator/index.rst:41 #: ../../root/api/orchestrator/index.rst:41
msgid "" msgid ""
"Это главный метод, который запускает все приложение. Он выполняет " "Это главный метод, который запускает приложение. Он выполняет следующие "
"следующие шаги:" "шаги:"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:43 #: ../../root/api/orchestrator/index.rst:43
msgid "" msgid ""
"**Настройка DI**: На основе системного провайдера (``SystemProvider``, " "**Настройка DI**: Создаёт DI-контейнер на основе системного провайдера "
"который предоставляет ``ArgParser``) и списка ``custom_providers`` " "(предоставляет `ArgParser`) и пользовательских `custom_providers`."
"создается ``ioc`` - контейнер и настраивается внедрение зависимостей."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:45 #: ../../root/api/orchestrator/index.rst:44
msgid "" msgid ""
"**Запуск основного цикла**: Запускает бесконечный цикл ожидания и " "**Запуск основного цикла**: Запускает бесконечный цикл ожидания и "
"обработки пользовательского ввода." "обработки пользовательского ввода."
@@ -97,43 +93,139 @@ msgstr ""
msgid "Parameters" msgid "Parameters"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:47 #: ../../root/api/orchestrator/index.rst:46
msgid "Экземпляр класса :class:`~argenta.app.models.App`, который будет запущен." msgid "Экземпляр `App`, который будет запущен."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:52 #: ../../root/api/orchestrator/index.rst:51
msgid "Назначение и использование" msgid "Назначение и использование"
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:54 #: ../../root/api/orchestrator/index.rst:53
msgid "" msgid ""
"``Orchestrator`` абстрагирует от вас всю сложность, связанную с " "``Orchestrator`` абстрагирует сложность, связанную с настройкой DI и "
"настройкой внедрения зависимостей и парсингом стартовых аргументов. " "парсингом стартовых аргументов. Типичный сценарий использования выглядит "
"Типичный сценарий использования ``Argenta`` выглядит следующим образом:" "так:"
msgstr ""
#: ../../root/api/orchestrator/index.rst:55
msgid "Создайте и настройте экземпляр `App` (добавьте роутеры)."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:56 #: ../../root/api/orchestrator/index.rst:56
msgid "Создать экземпляр ``App`` и настроить его (добавить роутеры)." msgid "Создайте экземпляр `Orchestrator`, передав в него DI-провайдеры."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:57 #: ../../root/api/orchestrator/index.rst:57
msgid "Вызовите `orchestrator.start_polling(app)`, чтобы запустить приложение."
msgstr ""
#: ../../root/api/orchestrator/index.rst:59
msgid "" msgid ""
"Создать экземпляр ``Orchestrator``, передав в него необходимые " "Такой подход разделяет ответственности: `App` отвечает за логику "
"DI-провайдеры и, возможно, парсер аргументов." "интерактивной сессии, а `Orchestrator` — за подготовку и запуск "
"окружения."
msgstr "" msgstr ""
#: ../../root/api/orchestrator/index.rst:58 #: ../../root/api/orchestrator/index.rst:62
msgid "Вызвать ``orchestrator.start_polling(app)``, чтобы запустить приложение."
msgstr ""
#: ../../root/api/orchestrator/index.rst:60
msgid ""
"Такой подход позволяет сохранить код чистым и разделяет ответственность: "
"``App`` отвечает за логику интерактивной сессии, а ``Orchestrator`` — за "
"подготовку и запуск окружения."
msgstr ""
#: ../../root/api/orchestrator/index.rst:63
msgid "Пример использования" msgid "Пример использования"
msgstr "" msgstr ""
#~ msgid ""
#~ "Объект ``Orchestrator`` в ``Argenta`` "
#~ "представляет собой высокоуровневый компонент, "
#~ "который стоит над ``App`` и отвечает "
#~ "за \"оркестрацию\" всего приложения. Его "
#~ "главная задача — инициализация и "
#~ "конфигурация сложных систем, таких как "
#~ "внедрение зависимостей (``di``), парсинг "
#~ "аргументов командной строки при запуске, "
#~ "и запуск основного цикла приложения."
#~ msgstr ""
#~ msgid ""
#~ "В то время как ``App`` отвечает за"
#~ " интерактивную сессию (ввод команд, "
#~ "роутинг), ``Orchestrator`` подготавливает окружение,"
#~ " в котором ``App`` будет работать. Он"
#~ " является точкой входа для приложений."
#~ msgstr ""
#~ msgid "Создает и конфигурирует экземпляр ``Orchestrator``."
#~ msgstr ""
#~ msgid ""
#~ "``arg_parser``: Экземпляр "
#~ ":class:`argenta.orchestrator.argparser.ArgParser`, который "
#~ "отвечает за парсинг аргументов, переданных "
#~ "скрипту при запуске из командной строки"
#~ " (не путать с командами, вводимыми в"
#~ " интерактивном режиме)."
#~ msgstr ""
#~ msgid ""
#~ "``custom_providers``: Список пользовательских "
#~ "провайдеров ``dishka.Provider``. Это основной "
#~ "механизм для добавления ваших собственных "
#~ "сервисов (например, подключений к базе "
#~ "данных, клиентов API) в контейнер "
#~ "внедрения зависимостей."
#~ msgstr ""
#~ msgid ""
#~ "``auto_inject_handlers``: Если **True** (по "
#~ "умолчанию), ``dishka`` будет автоматически "
#~ "инспектировать сигнатуры обработчиков команд и"
#~ " внедрять в них требуемые зависимости "
#~ "из контейнера."
#~ msgstr ""
#~ msgid ""
#~ "Это главный метод, который запускает все"
#~ " приложение. Он выполняет следующие шаги:"
#~ msgstr ""
#~ msgid ""
#~ "**Настройка DI**: На основе системного "
#~ "провайдера (``SystemProvider``, который "
#~ "предоставляет ``ArgParser``) и списка "
#~ "``custom_providers`` создается ``ioc`` - "
#~ "контейнер и настраивается внедрение "
#~ "зависимостей."
#~ msgstr ""
#~ msgid ""
#~ "Экземпляр класса :class:`~argenta.app.models.App`, "
#~ "который будет запущен."
#~ msgstr ""
#~ msgid ""
#~ "``Orchestrator`` абстрагирует от вас всю "
#~ "сложность, связанную с настройкой внедрения"
#~ " зависимостей и парсингом стартовых "
#~ "аргументов. Типичный сценарий использования "
#~ "``Argenta`` выглядит следующим образом:"
#~ msgstr ""
#~ msgid "Создать экземпляр ``App`` и настроить его (добавить роутеры)."
#~ msgstr ""
#~ msgid ""
#~ "Создать экземпляр ``Orchestrator``, передав в"
#~ " него необходимые DI-провайдеры и, "
#~ "возможно, парсер аргументов."
#~ msgstr ""
#~ msgid ""
#~ "Вызвать ``orchestrator.start_polling(app)``, чтобы "
#~ "запустить приложение."
#~ msgstr ""
#~ msgid ""
#~ "Такой подход позволяет сохранить код "
#~ "чистым и разделяет ответственность: ``App``"
#~ " отвечает за логику интерактивной сессии,"
#~ " а ``Orchestrator`` — за подготовку и"
#~ " запуск окружения."
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-15 16:09+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -23,3 +23,145 @@ msgstr ""
msgid "Response" msgid "Response"
msgstr "" msgstr ""
#: ../../root/api/response.rst:6
msgid ""
"`Response` — это объект, который передаётся в обработчик команды. Он "
"создаётся автоматически при обработке пользовательского ввода и содержит "
"статус валидации, введённые флаги."
msgstr ""
#: ../../root/api/response.rst:11
msgid ""
"Документация по :ref:`InputFlags <root_api_command_input_flags>` — "
"коллекция введённых флагов команды."
msgstr ""
#: ../../root/api/response.rst:13
msgid ""
"Документация по :ref:`ResponseStatus <root_api_response_status>` — "
"статусы валидации флагов команды."
msgstr ""
#: ../../root/api/response.rst:15
msgid ""
"Документация по :ref:`InputFlag <root_api_command_input_flag>` — "
"отдельный введённый флаг."
msgstr ""
#: ../../root/api/response.rst:20
msgid "Инициализация"
msgstr ""
#: ../../root/api/response.rst:31
msgid "Создаёт новый объект ответа."
msgstr ""
#: ../../root/api/response.rst:33
msgid ""
"``status``: Общий статус валидации флагов из перечисления "
"`ResponseStatus`."
msgstr ""
#: ../../root/api/response.rst:34
msgid ""
"``input_flags``: Коллекция введённых флагов (`InputFlags`). По умолчанию "
"— пустая."
msgstr ""
#: ../../root/api/response.rst:37
msgid ""
"Экземпляры этого класса не предназначены для прямого создания. Они "
"автоматически формируются системой и передаются в обработчик команды в "
"качестве первого обязательного аргумента."
msgstr ""
#: ../../root/api/response.rst:39
msgid "**Атрибуты:**"
msgstr ""
#: ../../root/api/response.rst:44
msgid ""
"Общий статус валидации всех флагов команды (`ResponseStatus`). Указывает,"
" были ли среди введённых флагов некорректные или незарегистрированные."
msgstr ""
#: ../../root/api/response.rst:49
msgid ""
"Коллекция всех флагов, переданных с командой (`InputFlags`). Содержит все"
" обработанные флаги с их значениями и статусами валидации."
msgstr ""
#: ../../root/api/response.rst:51
msgid "**Пример использования:**"
msgstr ""
#: ../../root/api/response.rst:60
msgid "Работа с флагами"
msgstr ""
#: ../../root/api/response.rst:62
msgid ""
"`Response` предоставляет доступ к введённым флагам через атрибут "
"`input_flags`. Вы можете проверять их наличие, получать значения и "
"статусы валидации."
msgstr ""
#: ../../root/api/response.rst:64
msgid "**Пример работы с флагами:**"
msgstr ""
#: ../../root/api/response.rst:75
msgid "ResponseStatus"
msgstr ""
#: ../../root/api/response.rst:77
msgid ""
"`ResponseStatus` — это перечисление (`Enum`), которое определяет общий "
"статус валидации всех флагов команды. Используется в атрибуте `status` "
"объекта `Response`."
msgstr ""
#: ../../root/api/response.rst:80
msgid "Значения enum"
msgstr ""
#: ../../root/api/response.rst:83
msgid "ALL_FLAGS_VALID"
msgstr ""
#: ../../root/api/response.rst:90
msgid ""
"Все введённые флаги прошли валидацию. Нет ни некорректных, ни "
"незарегистрированных флагов."
msgstr ""
#: ../../root/api/response.rst:93
msgid "UNDEFINED_FLAGS"
msgstr ""
#: ../../root/api/response.rst:100
msgid ""
"Среди введённых флагов есть незарегистрированные, но нет флагов с "
"некорректными значениями."
msgstr ""
#: ../../root/api/response.rst:103
msgid "INVALID_VALUE_FLAGS"
msgstr ""
#: ../../root/api/response.rst:110
msgid ""
"Среди введённых флагов есть флаги с некорректными значениями, но нет "
"незарегистрированных."
msgstr ""
#: ../../root/api/response.rst:113
msgid "UNDEFINED_AND_INVALID_FLAGS"
msgstr ""
#: ../../root/api/response.rst:120
msgid ""
"Среди введённых флагов есть как незарегистрированные, так и флаги с "
"некорректными значениями."
msgstr ""
+144 -40
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-27 11:56+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -25,18 +25,17 @@ msgstr ""
#: ../../root/api/router.rst:6 #: ../../root/api/router.rst:6
msgid "" msgid ""
"Объект ``Router`` является фундаментальным строительным блоком для " "``Router`` — это основной строительный блок для организации логики в "
"организации логики в приложении ``Argenta``. Его основная задача — " "приложении. Его задача — группировать связанные команды и их обработчики."
"группировать связанные команды и их обработчики. Каждый роутер " " Каждый роутер представляет собой логический контейнер для определённого "
"представляет собой логический контейнер для определенного набора " "набора функций."
"функциональности."
msgstr "" msgstr ""
#: ../../root/api/router.rst:8 #: ../../root/api/router.rst:8
msgid "" msgid ""
"Например, в приложении для управления пользователями один роутер может " "Например, в приложении для управления пользователями один роутер может "
"отвечать за команды, связанные с аутентификацией (``login``, ``logout``)," "отвечать за аутентификацию (``login``, ``logout``), а другой — за "
" а другой — за операции с профилем (``profile show``, ``profile edit``)." "операции с профилем (``profile-show``, ``profile-edit``)."
msgstr "" msgstr ""
#: ../../root/api/router.rst:13 #: ../../root/api/router.rst:13
@@ -44,24 +43,22 @@ msgid "Инициализация"
msgstr "" msgstr ""
#: ../../root/api/router.rst:21 #: ../../root/api/router.rst:21
msgid "Создает новый экземпляр маршрутизатора." msgid "Создаёт новый экземпляр роутера."
msgstr "" msgstr ""
#: ../../root/api/router.rst:23 #: ../../root/api/router.rst:23
msgid "" msgid ""
"``title`` : Необязательный заголовок для группы команд, которые " "``title``: Необязательный заголовок для группы команд. Отображается в "
"регистрируются в этом роутере. Этот заголовок будет отображаться в списке" "списке доступных команд, помогая пользователю ориентироваться."
" доступных команд, помогая пользователю ориентироваться."
msgstr "" msgstr ""
#: ../../root/api/router.rst:24 #: ../../root/api/router.rst:24
msgid "" msgid ""
"``disable_redirect_stdout`` : Если установлено в ``True``, отключает " "``disable_redirect_stdout``: Если ``True``, отключает перехват ``stdout``"
"механизм перехвата стандартного вывода (``stdout``) для всех команд этого" " для всех команд этого роутера. Это необходимо для интерактивных команд "
" роутера. Это необходимо для команд, которые требуют интерактивного ввода" "(например, с ``input()``). При отключении перехвата автоматически "
" от пользователя (например, с помощью ``input()``). При отключении " "используется статическая разделительная линия. Подробнее см. в разделе "
"перехвата вывода автоматически используется статическая разделительная " ":ref:`Переопределение стандартного вывода <root_redirect_stdout>`."
"линия. Подробнее в :ref:`соответствующем разделе <root_redirect_stdout>`"
msgstr "" msgstr ""
#: ../../root/api/router.rst:29 #: ../../root/api/router.rst:29
@@ -70,12 +67,12 @@ msgstr ""
#: ../../root/api/router.rst:31 #: ../../root/api/router.rst:31
msgid "" msgid ""
"Для регистрации новой команды и привязки к ней функции-обработчика " "Для регистрации команды и привязки к ней обработчика используется "
"используется декоратор ``@command``." "декоратор ``@command``."
msgstr "" msgstr ""
#: ../../root/api/router.rst:35 #: ../../root/api/router.rst:35
msgid "Декоратор для регистрации функции как обработчика для указанной команды." msgid "Декоратор для регистрации функции как обработчика команды."
msgstr "" msgstr ""
#: ../../root/api/router.rst #: ../../root/api/router.rst
@@ -84,10 +81,9 @@ msgstr ""
#: ../../root/api/router.rst:37 #: ../../root/api/router.rst:37
msgid "" msgid ""
"Экземпляр класса ``argenta.command.Command``, описывающий триггер, флаги " "Экземпляр ``Command``, описывающий триггер, флаги и описание команды. "
"и описание команды. Также может быть просто строкой, которая будет " "Может быть строкой, которая станет триггером (без возможности настройки "
"являться триггером, в этом случае нет возможности настроить флаги, " "флагов и описания)."
"описание и всё остальное."
msgstr "" msgstr ""
#: ../../root/api/router.rst:39 #: ../../root/api/router.rst:39
@@ -106,17 +102,16 @@ msgstr ""
#: ../../root/api/router.rst:54 #: ../../root/api/router.rst:54
msgid "" msgid ""
"Предопределенный экземпляр ``Router``, который содержит базовые системные" "Предопределённый экземпляр ``Router`` с базовыми системными командами (по"
" команды. По умолчанию в него включена команда выхода из приложения " " умолчанию — команда выхода). Имеет заголовок **«System points:»**, "
"(обычно **exit**). Он имеет заголовок **\"System points:\"**, который " "который можно переопределить в ``App``."
"можно переопределить в инстансе приложения -> ``App``."
msgstr "" msgstr ""
#: ../../root/api/router.rst:56 #: ../../root/api/router.rst:56
msgid "" msgid ""
"Вы можете добавлять свои команды в этот роутер, для этого импортируйте " "Вы можете добавлять свои команды в этот роутер. Для этого импортируйте "
"``argenta.router.defaults.system_router`` и декорируйте его методом " "``argenta.router.defaults.system_router`` и используйте его декоратор "
"необходимые хэндлеры." "``@command``."
msgstr "" msgstr ""
#: ../../root/api/router.rst:61 #: ../../root/api/router.rst:61
@@ -126,13 +121,13 @@ msgstr ""
#: ../../root/api/router.rst:63 #: ../../root/api/router.rst:63
msgid "" msgid ""
"При регистрации команд и флагов в ``Router`` могут возникнуть следующие " "При регистрации команд и флагов в ``Router`` могут возникнуть следующие "
"исключения, сигнализирующие о некорректной конфигурации:" "исключения:"
msgstr "" msgstr ""
#: ../../root/api/router.rst:67 #: ../../root/api/router.rst:67
msgid "" msgid ""
"Выбрасывается, если триггер команды, передаваемый в ``Command``, содержит" "Выбрасывается, если триггер команды в ``Command`` содержит пробелы. "
" пробелы. Триггеры команд должны быть одним словом." "Триггеры должны быть одним словом."
msgstr "" msgstr ""
#: ../../root/api/router.rst:69 #: ../../root/api/router.rst:69
@@ -143,9 +138,9 @@ msgstr ""
#: ../../root/api/router.rst:74 #: ../../root/api/router.rst:74
msgid "" msgid ""
"Возникает, если при определении флагов для одной команды были " "Возникает, если при определении флагов для команды были использованы "
"использованы дублирующиеся имена (как короткие, так и длинные). Каждое " "дублирующиеся имена. Имена флагов в рамках одной команды должны быть "
"имя флага в рамках одной команды должно быть уникальным." "уникальны."
msgstr "" msgstr ""
#: ../../root/api/router.rst:76 #: ../../root/api/router.rst:76
@@ -154,7 +149,116 @@ msgstr ""
#: ../../root/api/router.rst:88 #: ../../root/api/router.rst:88
msgid "" msgid ""
"Это исключение возникает, если какой-либо обработчик команды не ожидает " "Возникает, если обработчик команды не принимает обязательный аргумент "
"обязательный аргумент, которым является объект ответа(``Response``)." "``Response``."
msgstr "" msgstr ""
#~ msgid ""
#~ "Объект ``Router`` является фундаментальным "
#~ "строительным блоком для организации логики "
#~ "в приложении ``Argenta``. Его основная "
#~ "задача — группировать связанные команды "
#~ "и их обработчики. Каждый роутер "
#~ "представляет собой логический контейнер для"
#~ " определенного набора функциональности."
#~ msgstr ""
#~ msgid ""
#~ "Например, в приложении для управления "
#~ "пользователями один роутер может отвечать "
#~ "за команды, связанные с аутентификацией "
#~ "(``login``, ``logout``), а другой — за"
#~ " операции с профилем (``profile show``, "
#~ "``profile edit``)."
#~ msgstr ""
#~ msgid "Создает новый экземпляр маршрутизатора."
#~ msgstr ""
#~ msgid ""
#~ "``title`` : Необязательный заголовок для "
#~ "группы команд, которые регистрируются в "
#~ "этом роутере. Этот заголовок будет "
#~ "отображаться в списке доступных команд, "
#~ "помогая пользователю ориентироваться."
#~ msgstr ""
#~ msgid ""
#~ "``disable_redirect_stdout`` : Если установлено "
#~ "в ``True``, отключает механизм перехвата "
#~ "стандартного вывода (``stdout``) для всех "
#~ "команд этого роутера. Это необходимо для"
#~ " команд, которые требуют интерактивного "
#~ "ввода от пользователя (например, с "
#~ "помощью ``input()``). При отключении перехвата"
#~ " вывода автоматически используется статическая"
#~ " разделительная линия. Подробнее в "
#~ ":ref:`соответствующем разделе <root_redirect_stdout>`"
#~ msgstr ""
#~ msgid ""
#~ "Для регистрации новой команды и привязки"
#~ " к ней функции-обработчика используется "
#~ "декоратор ``@command``."
#~ msgstr ""
#~ msgid ""
#~ "Декоратор для регистрации функции как "
#~ "обработчика для указанной команды."
#~ msgstr ""
#~ msgid ""
#~ "Экземпляр класса ``argenta.command.Command``, "
#~ "описывающий триггер, флаги и описание "
#~ "команды. Также может быть просто "
#~ "строкой, которая будет являться триггером, "
#~ "в этом случае нет возможности настроить"
#~ " флаги, описание и всё остальное."
#~ msgstr ""
#~ msgid ""
#~ "Предопределенный экземпляр ``Router``, который "
#~ "содержит базовые системные команды. По "
#~ "умолчанию в него включена команда выхода"
#~ " из приложения (обычно **exit**). Он "
#~ "имеет заголовок **\"System points:\"**, "
#~ "который можно переопределить в инстансе "
#~ "приложения -> ``App``."
#~ msgstr ""
#~ msgid ""
#~ "Вы можете добавлять свои команды в "
#~ "этот роутер, для этого импортируйте "
#~ "``argenta.router.defaults.system_router`` и декорируйте"
#~ " его методом необходимые хэндлеры."
#~ msgstr ""
#~ msgid ""
#~ "При регистрации команд и флагов в "
#~ "``Router`` могут возникнуть следующие "
#~ "исключения, сигнализирующие о некорректной "
#~ "конфигурации:"
#~ msgstr ""
#~ msgid ""
#~ "Выбрасывается, если триггер команды, "
#~ "передаваемый в ``Command``, содержит пробелы."
#~ " Триггеры команд должны быть одним "
#~ "словом."
#~ msgstr ""
#~ msgid ""
#~ "Возникает, если при определении флагов "
#~ "для одной команды были использованы "
#~ "дублирующиеся имена (как короткие, так и"
#~ " длинные). Каждое имя флага в рамках"
#~ " одной команды должно быть уникальным."
#~ msgstr ""
#~ msgid ""
#~ "Это исключение возникает, если какой-либо "
#~ "обработчик команды не ожидает обязательный "
#~ "аргумент, которым является объект "
#~ "ответа(``Response``)."
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-20 14:52+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -29,133 +29,126 @@ msgstr ""
#: ../../root/code_of_conduct.rst:9 #: ../../root/code_of_conduct.rst:9
msgid "" msgid ""
"В стремлении создать открытую и приветливую атмосферу, мы, как участники " "В целях создания открытой и гостеприимной атмосферы мы, как участники и "
"и мейнтейнеры, обязуемся сделать участие в нашем проекте и сообществе " "мейнтейнеры, обязуемся сделать участие в нашем проекте и сообществе "
"свободным от преследований для всех, независимо от возраста, " "свободным от преследований для всех, независимо от возраста, "
"телосложения, инвалидности, этнической принадлежности, половых " "телосложения, инвалидности, этнической принадлежности, гендерной "
"характеристик, уровня опыта, образования, социально-экономического " "идентичности и самовыражения, уровня опыта, образования, "
"статуса, национальности, внешности, расы и религии." "социально-экономического статуса, национальности, внешности, расы, "
"религии или сексуальной идентичности и ориентации."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:18 #: ../../root/code_of_conduct.rst:14
msgid "Наши стандарты" msgid "Наши стандарты"
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:16
msgid "Примеры поведения, которые способствуют созданию позитивной среды:"
msgstr ""
#: ../../root/code_of_conduct.rst:18
msgid "Проявление эмпатии и доброты по отношению к другим."
msgstr ""
#: ../../root/code_of_conduct.rst:19
msgid "Уважение к различным мнениям, точкам зрения и опыту."
msgstr ""
#: ../../root/code_of_conduct.rst:20 #: ../../root/code_of_conduct.rst:20
msgid ""
"Примеры поведения, способствующего созданию позитивной среды для нашего "
"сообщества, включают:"
msgstr ""
#: ../../root/code_of_conduct.rst:23
msgid "Проявление эмпатии и доброты по отношению к другим людям."
msgstr ""
#: ../../root/code_of_conduct.rst:24
msgid "Уважительное отношение к различным мнениям, точкам зрения и опыту."
msgstr ""
#: ../../root/code_of_conduct.rst:25
msgid "Предоставление и тактичное принятие конструктивной обратной связи." msgid "Предоставление и тактичное принятие конструктивной обратной связи."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:26 #: ../../root/code_of_conduct.rst:21
msgid "" msgid ""
"Принятие ответственности, извинения перед теми, кого затронули наши " "Принятие ответственности и извинения перед теми, кого затронули наши "
"ошибки, и извлечение уроков из этого опыта." "ошибки, а также извлечение уроков из этого опыта."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:28 #: ../../root/code_of_conduct.rst:22
msgid "" msgid "Фокус на том, что лучше для всего сообщества."
"Сосредоточение на том, что лучше не только для нас как отдельных "
"личностей, но и для всего сообщества в целом."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:31 #: ../../root/code_of_conduct.rst:24
msgid "Примеры недопустимого поведения включают:" msgid "Примеры недопустимого поведения включают:"
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:33 #: ../../root/code_of_conduct.rst:26
msgid "" msgid ""
"Троллинг, оскорбительные или уничижительные комментарии, а также личные " "Троллинг, оскорбительные или уничижительные комментарии, а также личные "
"или политические нападки." "или политические нападки."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:34 #: ../../root/code_of_conduct.rst:27
msgid "Публичное или частное преследование." msgid "Публичное или частное преследование."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:35 #: ../../root/code_of_conduct.rst:28
msgid "" msgid ""
"Публикация личной информации других лиц, такой как физический или " "Публикация личной информации других лиц (например, физического или "
"электронный адрес, без их явного разрешения." "электронного адреса) без их явного разрешения."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:37 #: ../../root/code_of_conduct.rst:29
msgid "" msgid ""
"Иное поведение, которое можно обоснованно считать неуместным в " "Любое другое поведение, которое можно обоснованно считать неуместным в "
"профессиональной среде." "профессиональной среде."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:43 #: ../../root/code_of_conduct.rst:34
msgid "Наши обязанности" msgid "Наши обязанности"
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:36
msgid ""
"Мейнтейнеры проекта несут ответственность за разъяснение и обеспечение "
"соблюдения стандартов приемлемого поведения и предпримут справедливые "
"корректирующие действия в ответ на любые случаи неприемлемого поведения."
msgstr ""
#: ../../root/code_of_conduct.rst:38
msgid ""
"Мейнтейнеры проекта имеют право и обязанность удалять, редактировать или "
"отклонять комментарии, коммиты, код, правки в вики, задачи и другие "
"вклады, которые не соответствуют настоящему Кодексу поведения, а также "
"временно или навсегда блокировать любого участника за поведение, которое "
"они сочтут неуместным, угрожающим, оскорбительным или вредным."
msgstr ""
#: ../../root/code_of_conduct.rst:43
msgid "Сфера применения"
msgstr ""
#: ../../root/code_of_conduct.rst:45 #: ../../root/code_of_conduct.rst:45
msgid "" msgid ""
"Мейнтейнеры проекта несут ответственность за разъяснение и обеспечение " "Настоящий Кодекс поведения применяется как в рамках проекта, так и в "
"соблюдения наших стандартов приемлемого поведения и предпримут " "публичных пространствах, когда человек официально представляет "
"соответствующие и справедливые корректирующие действия в ответ на любые " "сообщество. Примеры такого представительства включают использование "
"случаи неприемлемого поведения."
msgstr ""
#: ../../root/code_of_conduct.rst:49
msgid ""
"Мейнтейнеры проекта имеют право и обязанность удалять, редактировать или "
"отклонять комментарии, коммиты, код, правки в вики, задачи и другие "
"вклады, которые не соответствуют настоящему Кодексу поведения, или "
"временно либо навсегда заблокировать любого участника за другое "
"поведение, которое они сочтут неуместным, угрожающим, оскорбительным или "
"вредным."
msgstr ""
#: ../../root/code_of_conduct.rst:58
msgid "Сфера применения"
msgstr ""
#: ../../root/code_of_conduct.rst:60
msgid ""
"Настоящий Кодекс поведения применяется во всех пространствах сообщества, "
"а также когда человек официально представляет сообщество в публичных "
"местах. Примеры представления нашего сообщества включают использование "
"официального адреса электронной почты, публикации через официальный " "официального адреса электронной почты, публикации через официальный "
"аккаунт в социальных сетях или выступление в качестве назначенного " "аккаунт в социальных сетях или выступление в качестве назначенного "
"представителя на онлайн- или офлайн-мероприятии." "представителя на онлайн- или офлайн-мероприятии."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:69 #: ../../root/code_of_conduct.rst:50
msgid "Обеспечение соблюдения" msgid "Обеспечение соблюдения"
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:71 #: ../../root/code_of_conduct.rst:52
msgid "" msgid ""
"О случаях оскорбительного, преследовательского или иного неприемлемого " "О случаях оскорбительного, преследовательского или иного неприемлемого "
"поведения можно сообщить руководителям сообщества, ответственным за " "поведения можно сообщить команде проекта по адресу "
"обеспечение правоприменения, по адресу . Все жалобы будут рассмотрены и " "kolo.is.main@gmail.com. Все жалобы будут рассмотрены и расследованы "
"расследованы оперативно и справедливо." "оперативно и справедливо."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:75 #: ../../root/code_of_conduct.rst:54
msgid "" msgid "Команда проекта обязуется уважать частную жизнь и безопасность заявителя."
"Все руководители сообщества обязаны уважать частную жизнь и безопасность "
"заявителя любого инцидента."
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:81 #: ../../root/code_of_conduct.rst:59
msgid "Атрибуция" msgid "Атрибуция"
msgstr "" msgstr ""
#: ../../root/code_of_conduct.rst:83 #: ../../root/code_of_conduct.rst:61
msgid "" msgid ""
"Настоящий Кодекс поведения адаптирован из `Contributor Covenant " "Настоящий Кодекс поведения адаптирован из `Contributor Covenant "
"<https://www.contributor-covenant.org/>`__, версии `1.4 <https://www" "<https://www.contributor-covenant.org/>`__, версии `1.4 <https://www"
@@ -164,3 +157,101 @@ msgid ""
"covenant.org/version/2/0/code_of_conduct/code_of_conduct.md>`__." "covenant.org/version/2/0/code_of_conduct/code_of_conduct.md>`__."
msgstr "" msgstr ""
#~ msgid ""
#~ "В стремлении создать открытую и "
#~ "приветливую атмосферу, мы, как участники "
#~ "и мейнтейнеры, обязуемся сделать участие "
#~ "в нашем проекте и сообществе свободным"
#~ " от преследований для всех, независимо "
#~ "от возраста, телосложения, инвалидности, "
#~ "этнической принадлежности, половых характеристик,"
#~ " уровня опыта, образования, "
#~ "социально-экономического статуса, национальности, "
#~ "внешности, расы и религии."
#~ msgstr ""
#~ msgid ""
#~ "Примеры поведения, способствующего созданию "
#~ "позитивной среды для нашего сообщества, "
#~ "включают:"
#~ msgstr ""
#~ msgid "Проявление эмпатии и доброты по отношению к другим людям."
#~ msgstr ""
#~ msgid "Уважительное отношение к различным мнениям, точкам зрения и опыту."
#~ msgstr ""
#~ msgid ""
#~ "Принятие ответственности, извинения перед "
#~ "теми, кого затронули наши ошибки, и "
#~ "извлечение уроков из этого опыта."
#~ msgstr ""
#~ msgid ""
#~ "Сосредоточение на том, что лучше не "
#~ "только для нас как отдельных личностей,"
#~ " но и для всего сообщества в "
#~ "целом."
#~ msgstr ""
#~ msgid ""
#~ "Публикация личной информации других лиц, "
#~ "такой как физический или электронный "
#~ "адрес, без их явного разрешения."
#~ msgstr ""
#~ msgid ""
#~ "Иное поведение, которое можно обоснованно "
#~ "считать неуместным в профессиональной среде."
#~ msgstr ""
#~ msgid ""
#~ "Мейнтейнеры проекта несут ответственность за"
#~ " разъяснение и обеспечение соблюдения наших"
#~ " стандартов приемлемого поведения и "
#~ "предпримут соответствующие и справедливые "
#~ "корректирующие действия в ответ на любые"
#~ " случаи неприемлемого поведения."
#~ msgstr ""
#~ msgid ""
#~ "Мейнтейнеры проекта имеют право и "
#~ "обязанность удалять, редактировать или "
#~ "отклонять комментарии, коммиты, код, правки"
#~ " в вики, задачи и другие вклады, "
#~ "которые не соответствуют настоящему Кодексу"
#~ " поведения, или временно либо навсегда "
#~ "заблокировать любого участника за другое "
#~ "поведение, которое они сочтут неуместным, "
#~ "угрожающим, оскорбительным или вредным."
#~ msgstr ""
#~ msgid ""
#~ "Настоящий Кодекс поведения применяется во "
#~ "всех пространствах сообщества, а также "
#~ "когда человек официально представляет "
#~ "сообщество в публичных местах. Примеры "
#~ "представления нашего сообщества включают "
#~ "использование официального адреса электронной "
#~ "почты, публикации через официальный аккаунт"
#~ " в социальных сетях или выступление в"
#~ " качестве назначенного представителя на "
#~ "онлайн- или офлайн-мероприятии."
#~ msgstr ""
#~ msgid ""
#~ "О случаях оскорбительного, преследовательского "
#~ "или иного неприемлемого поведения можно "
#~ "сообщить руководителям сообщества, ответственным "
#~ "за обеспечение правоприменения, по адресу "
#~ ". Все жалобы будут рассмотрены и "
#~ "расследованы оперативно и справедливо."
#~ msgstr ""
#~ msgid ""
#~ "Все руководители сообщества обязаны уважать"
#~ " частную жизнь и безопасность заявителя "
#~ "любого инцидента."
#~ msgstr ""
File diff suppressed because it is too large Load Diff
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-20 14:52+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -27,105 +27,185 @@ msgstr "Dependency Injection"
msgid "" msgid ""
"Внедрение зависимостей (Dependency Injection, DI) — это паттерн " "Внедрение зависимостей (Dependency Injection, DI) — это паттерн "
"проектирования, который помогает писать слабосвязанный, легко тестируемый" "проектирования, который помогает писать слабосвязанный, легко тестируемый"
" и расширяемый код. Вместо того чтобы хендлеры сами создавали нужные им " " и расширяемый код. Вместо того чтобы обработчики сами создавали нужные "
"объекты (зависимости) они лишь объявляют о необходимости в их получении, " "им объекты (зависимости), они лишь объявляют их в качестве аргументов. В "
"а ``Argenta`` \"внедряет\" их в хендлеры в момент вызова." "момент вызова ``Argenta`` автоматически \"внедряет\" эти зависимости."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:8 #: ../../root/dependency_injection.rst:8
msgid "" msgid ""
"``Argenta`` использует популярную библиотеку ``dishka`` для реализации " "``Argenta`` использует библиотеку ``dishka`` для реализации DI, что "
"DI, что позволяет вам декларативно объявлять зависимости прямо в " "позволяет декларативно объявлять зависимости прямо в сигнатурах ваших "
"сигнатурах ваших хендлеров. Более подробно про ``DI``, ``IoC``, ``API`` " "обработчиков. Подробнее о `DI`, `IoC` и API для создания провайдеров "
"создания провайдеров и другое вы можете прочитать тут_." "можно прочитать в `официальной документации dishka "
"<https://dishka.readthedocs.io/en/stable/di_intro.html>`_."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:14 #: ../../root/dependency_injection.rst:12
msgid "Основная идея" msgid "Основная идея"
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:16 #: ../../root/dependency_injection.rst:14
msgid "" msgid ""
"Представьте, что вашему хендлеру для работы нужен доступ к базе данных. " "Представьте, что вашему обработчику для работы нужен доступ к базе "
"Вместо того чтобы импортировать и инициализировать соединение внутри " "данных. Вместо импорта и инициализации соединения внутри функции, вы "
"функции, вы просто объявляете его как аргумент с тайп-хинтом:" "просто объявляете его как аргумент с аннотацией типа:"
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:19 #: ../../root/dependency_injection.rst:17
msgid "" msgid ""
"``argenta.di.FromDishka`` это алиас к ``dishka.FromDishka``, они " "``argenta.di.FromDishka`` является псевдонимом для ``dishka.FromDishka``,"
"полностью взаимозаменяемы." " и они полностью взаимозаменяемы."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:24 #: ../../root/dependency_injection.rst:23
msgid "" msgid ""
"``Argenta`` -> ``dishka`` зарезолвит тайпхинты и внедрит зависимость с " "``Argenta`` с помощью ``dishka`` разрешит зависимость по типу "
"возвращаемым типом ``Connection``, прежде чем использовать зависимость её" "``Connection`` и внедрит её. Но прежде чем использовать зависимость, её "
" нужно создать, для этого нужно создать соответствующий провайдер." "необходимо объявить в провайдере."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:29 #: ../../root/dependency_injection.rst:29
msgid "После создания провайдера, его нужно зарегистрировать в оркестраторе." msgid "После создания провайдера его необходимо зарегистрировать в оркестраторе."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:35 #: ../../root/dependency_injection.rst:36
msgid "Как это работает?" msgid "Как это работает?"
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:37 #: ../../root/dependency_injection.rst:38
msgid "В основе DI в Argente лежат **провайдеры** и **контейнер**." msgid "В основе DI в Argenta лежат **провайдеры** и **контейнер**."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:39 #: ../../root/dependency_injection.rst:40
msgid "" msgid ""
"**Провайдер (Provider)** — это \"рецепт\", который объясняет, как " "**Провайдер (Provider)** — это \"рецепт\", который объясняет, как "
"создавать и настраивать ту или иную зависимость (например, подключение к " "создавать и настраивать ту или иную зависимость (например, подключение к "
"БД, API-клиент или любой другой сервис)." "БД, API-клиент или любой другой сервис)."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:40 #: ../../root/dependency_injection.rst:41
msgid "" msgid ""
"**Контейнер (IoC Container)** — это \"фабрика\", которая хранит все " "**Контейнер (IoC Container)** — это \"фабрика\", которая хранит все "
"рецепты (провайдеры) и по запросу создаёт и выдаёт готовые зависимости." "рецепты (провайдеры) и по запросу создаёт и выдаёт готовые зависимости."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:43 #: ../../root/dependency_injection.rst:44
msgid "Встроенные провайдеры" msgid "Встроенные провайдеры"
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:45 #: ../../root/dependency_injection.rst:46
msgid "" msgid ""
"``Argenta`` поставляется с предопределённым провайдером, который даёт " "``Argenta`` поставляется со встроенным провайдером, который даёт доступ к"
"доступ к важным системным зависимостям без какой-либо настройки. К " " важным системным зависимостям без дополнительной настройки. Например, вы"
"примеру вы можете получить объект ``ArgSpace``, который представляет из " " можете получить объект ``ArgSpace``, который содержит аргументы "
"себя распаршенные аргументы командной строки при запуске приложения." "командной строки, переданные при запуске приложения."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:47 #: ../../root/dependency_injection.rst:48
msgid "" msgid ""
"Краткий сэмпл кода, который получает объект ``ArgSpace`` и выводит в " "Пример получения объекта ``ArgSpace`` и вывода в консоль значения "
"консоль аргумент с именем \"type\":" "аргумента `type`:"
msgstr ""
#: ../../root/dependency_injection.rst:53
msgid "Обмен данными между хендлерами"
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:55 #: ../../root/dependency_injection.rst:55
msgid "" msgid "Обмен данными между хендлерами"
"Помимо DI, хендлеры могут общаться друг с другом в контексте приложения "
"через **объект контекста** (в ``Argenta`` эту роль выполняет объект "
"``Response``)."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:57 #: ../../root/dependency_injection.rst:57
msgid "Каждый хендлер может записывать данные, читать, обновлять и удалять." msgid ""
"Помимо DI, обработчики могут обмениваться данными в рамках сессии через "
"**объект контекста**. В ``Argenta`` эту роль выполняет объект "
"``Response``."
msgstr "" msgstr ""
#: ../../root/dependency_injection.rst:61 #: ../../root/dependency_injection.rst:59
msgid ""
"Каждый обработчик может записывать в него данные, а также читать, "
"обновлять и удалять их."
msgstr ""
#: ../../root/dependency_injection.rst:63
msgid "Подробнее об этом можно прочитать в разделе :ref:`root_api_response`." msgid "Подробнее об этом можно прочитать в разделе :ref:`root_api_response`."
msgstr "" msgstr ""
#~ msgid "мда мда мда" #~ msgid "мда мда мда"
#~ msgstr "" #~ msgstr ""
#~ msgid ""
#~ "Внедрение зависимостей (Dependency Injection, "
#~ "DI) — это паттерн проектирования, "
#~ "который помогает писать слабосвязанный, легко"
#~ " тестируемый и расширяемый код. Вместо "
#~ "того чтобы хендлеры сами создавали "
#~ "нужные им объекты (зависимости) они лишь"
#~ " объявляют о необходимости в их "
#~ "получении, а ``Argenta`` \"внедряет\" их "
#~ "в хендлеры в момент вызова."
#~ msgstr ""
#~ msgid ""
#~ "``Argenta`` использует популярную библиотеку "
#~ "``dishka`` для реализации DI, что "
#~ "позволяет вам декларативно объявлять "
#~ "зависимости прямо в сигнатурах ваших "
#~ "хендлеров. Более подробно про ``DI``, "
#~ "``IoC``, ``API`` создания провайдеров и "
#~ "другое вы можете прочитать тут_."
#~ msgstr ""
#~ msgid ""
#~ "Представьте, что вашему хендлеру для "
#~ "работы нужен доступ к базе данных. "
#~ "Вместо того чтобы импортировать и "
#~ "инициализировать соединение внутри функции, вы"
#~ " просто объявляете его как аргумент с"
#~ " тайп-хинтом:"
#~ msgstr ""
#~ msgid ""
#~ "``argenta.di.FromDishka`` это алиас к "
#~ "``dishka.FromDishka``, они полностью "
#~ "взаимозаменяемы."
#~ msgstr ""
#~ msgid ""
#~ "``Argenta`` -> ``dishka`` зарезолвит тайпхинты"
#~ " и внедрит зависимость с возвращаемым "
#~ "типом ``Connection``, прежде чем использовать"
#~ " зависимость её нужно создать, для "
#~ "этого нужно создать соответствующий провайдер."
#~ msgstr ""
#~ msgid "После создания провайдера, его нужно зарегистрировать в оркестраторе."
#~ msgstr ""
#~ msgid "В основе DI в Argente лежат **провайдеры** и **контейнер**."
#~ msgstr ""
#~ msgid ""
#~ "``Argenta`` поставляется с предопределённым "
#~ "провайдером, который даёт доступ к "
#~ "важным системным зависимостям без какой-либо"
#~ " настройки. К примеру вы можете "
#~ "получить объект ``ArgSpace``, который "
#~ "представляет из себя распаршенные аргументы"
#~ " командной строки при запуске приложения."
#~ msgstr ""
#~ msgid ""
#~ "Краткий сэмпл кода, который получает "
#~ "объект ``ArgSpace`` и выводит в консоль"
#~ " аргумент с именем \"type\":"
#~ msgstr ""
#~ msgid ""
#~ "Помимо DI, хендлеры могут общаться друг"
#~ " с другом в контексте приложения "
#~ "через **объект контекста** (в ``Argenta`` "
#~ "эту роль выполняет объект ``Response``)."
#~ msgstr ""
#~ msgid "Каждый хендлер может записывать данные, читать, обновлять и удалять."
#~ msgstr ""
+262 -105
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-20 14:52+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -30,177 +30,159 @@ msgstr ""
#: ../../root/error_handling.rst:9 #: ../../root/error_handling.rst:9
msgid "" msgid ""
"``Argenta`` в рантайме вызывает исключения в пограничных случаях " "Argenta выбрасывает исключения в пограничных случаях, связанных с "
"пользовательского ввода. Все исключения обрабатываются системными " "пользовательским вводом. По умолчанию они обрабатываются системными "
"хэндлерами, но у вас есть возможность их переопределить. Переопределение " "хэндлерами, но вы можете их переопределить. Это делается с помощью "
"осуществляется с помощью сеттеров инстанса ``App`` - " "сеттеров экземпляра ``App`` вида ``.set_*_handler()``. Подробнее о каждом"
"``.set_*_handler(_)``, где ``_`` - это протокол хэндлера нестандартного " " из них рассказано :ref:`ниже <possible_errors>`."
"поведения, подробнее о каждом протоколе и соответствующем сеттере " msgstr ""
":ref:`ниже <possible_errors>`"
#: ../../root/error_handling.rst:13
msgid ""
"Ни одно исключение не остаётся необработанным, так как для каждого случая"
" предусмотрен стандартный хэндлер. Поэтому переопределение является "
"опциональным."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:15 #: ../../root/error_handling.rst:15
msgid "" msgid "Пример переопределения обработчика для пустой команды:"
"Все исключения никогда не остаются необработанными, так как у них есть "
"стандартные хэндлеры. Поэтому переопределение опционально."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:17 #: ../../root/error_handling.rst:25
msgid "Краткий сэмпл кода, переопределяющего хэндлер ввода пустой команды"
msgstr ""
#: ../../root/error_handling.rst:27
msgid "Возможные исключения и нестандартное поведение" msgid "Возможные исключения и нестандартное поведение"
msgstr "" msgstr ""
#: ../../root/error_handling.rst:30 #: ../../root/error_handling.rst:28
msgid "``UnprocessedInputFlagException``: Необрабатываемый ввод от пользователя" msgid "``UnprocessedInputFlagException``: Некорректный синтаксис флагов"
msgstr "" msgstr ""
#: ../../root/error_handling.rst:32 #: ../../root/error_handling.rst:30
msgid "" msgid ""
"Исключение вызывается, когда пользователь вводит команду с некорректным " "Это исключение выбрасывается, когда парсер не может обработать команду "
"синтаксисом и как следствие парсер не может *распарсить* её. В " "из-за некорректного синтаксиса. Чаще всего это связано с ошибкой в "
"большинстве случаев это означат, что проблема в синтаксисе введённых " "синтаксисе флагов. Подробнее о них можно прочитать в разделе :ref:`Flags "
"флагов команды, подробнее о флагах и их синтаксисе в :ref:`Flags "
"<root_flags>`." "<root_flags>`."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:36 ../../root/error_handling.rst:62 #: ../../root/error_handling.rst:32 ../../root/error_handling.rst:56
#: ../../root/error_handling.rst:84 ../../root/error_handling.rst:107 #: ../../root/error_handling.rst:77 ../../root/error_handling.rst:98
msgid "Дефолтный хэндлер выводит в консоль" msgid "Стандартный хэндлер выводит в консоль"
msgstr "" msgstr ""
#: ../../root/error_handling.rst:42 #: ../../root/error_handling.rst:38
msgid "" msgid ""
"Для переопределения стандартного поведения используется сеттер " "Для переопределения используется сеттер "
"``.set_incorrect_input_syntax_handler(_: " "``.set_incorrect_input_syntax_handler()``. Он принимает на вход "
"NonStandardBehaviorHandler[str])``, протокол " "обработчик с сигнатурой ``Callable[[str], None]``, где единственный "
"``NonStandardBehaviorHandler[str]`` соответствует ``Callable[[str], " "аргумент — это строка с необработанной командой."
"None]``, то есть хэндлер должен быть вызываемым объектом, к примеру "
"функция или лямбда, которая принимает единственный аргумент - строку, "
"которая представляет собой необработанную введённую команду, и ничего не "
"возвращает."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:46 #: ../../root/error_handling.rst:40
msgid "" msgid ""
"Сэмпл кода, переопределяющего хэндлер ввода команды с некорректным " "Пример кода, переопределяющего хэндлер ввода команды с некорректным "
"синтаксисом:" "синтаксисом:"
msgstr "" msgstr ""
#: ../../root/error_handling.rst:54 #: ../../root/error_handling.rst:49
msgid "``RepeatedInputFlagsException``: Повторяющийся флаг в введённой команде" msgid "``RepeatedInputFlagsException``: Повторяющиеся флаги в команде"
msgstr "" msgstr ""
#: ../../root/error_handling.rst:56 #: ../../root/error_handling.rst:51
msgid "" msgid ""
"Исключение вызывается, когда пользователь вводит команду с повторяющимся " "Исключение выбрасывается, если пользователь ввёл команду с повторяющимися"
"флагом, пара введённых флагов(:ref:`InputFlag " " флагами. Два флага (:ref:`InputFlag <root_api_command_input_flag>`) "
"<root_api_command_input_flag>`) считается равной, если у них одинаковые " "считаются одинаковыми, если у них совпадают имена. Подробнее о флагах и "
мена. Подробнее о флагах и их синтаксисе в :ref:`Flags <root_flags>`." "их синтаксисе — в разделе :ref:`Flags <root_flags>`."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:60 #: ../../root/error_handling.rst:54
msgid "" msgid ""
"Сравнение на равенство у регистрируемых флагов(Flag) происходит иначе, " "Сравнение на равенство у регистрируемых флагов(Flag) происходит иначе, "
"подробнее в :ref:`Flag <root_flags>`." "подробнее в :ref:`Flag <root_flags>`."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:68 #: ../../root/error_handling.rst:62
msgid "" msgid ""
"Для переопределения стандартного поведения используется сеттер " "Для переопределения используется сеттер "
"``.set_repeated_input_flags_handler(_: " "``.set_repeated_input_flags_handler()``. Он принимает на вход обработчик "
"NonStandardBehaviorHandler[str])``, протокол " "с сигнатурой ``Callable[[str], None]``, где единственный аргумент — это "
"``NonStandardBehaviorHandler[str]`` соответствует ``Callable[[str], " "строка с необработанной командой."
"None]``, то есть хэндлер должен быть вызываемым объектом, к примеру "
"функция или лямбда, которая принимает единственный аргумент - строку, "
"которая представляет собой необработанную введённую команду, и ничего не "
"возвращает."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:72 #: ../../root/error_handling.rst:64
msgid "" msgid ""
"Сэмпл кода, переопределяющего хэндлер ввода команды с повторяющимися " "Пример кода, переопределяющего хэндлер ввода команды с повторяющимися "
"флагами:" "флагами:"
msgstr "" msgstr ""
#: ../../root/error_handling.rst:80 #: ../../root/error_handling.rst:73
msgid "``EmptyInputCommandException``: Введена пустая команда" msgid "``EmptyInputCommandException``: Введена пустая команда"
msgstr "" msgstr ""
#: ../../root/error_handling.rst:82 #: ../../root/error_handling.rst:75
msgid "" msgid ""
"Исключение вызывается, когда пользователь вводит команду в виде строки из" "Исключение выбрасывается, если пользователь ввёл пустую строку или "
" пробельных символов - ``\\n``, ``\\t``, пробел и т.д." "строку, состоящую только из пробельных символов (``\\n``, ``\\t``, пробел"
" и т.д.)."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:90 #: ../../root/error_handling.rst:83
msgid "" msgid ""
"Для переопределения стандартного поведения используется сеттер " "Для переопределения используется сеттер ``.set_empty_command_handler()``."
"``.set_empty_command_handler(_: EmptyCommandHandler)``, протокол " " Он принимает на вход обработчик с сигнатурой ``Callable[[], None]`` (без"
"``EmptyCommandHandler`` соответствует ``Callable[[], None]``, то есть " " аргументов)."
"хэндлер должен быть вызываемым объектом, к примеру функция или лямбда, " msgstr ""
"которая не принимает аргументов и ничего не возвращает."
#: ../../root/error_handling.rst:85
msgid "Пример кода, переопределяющего хэндлер ввода пустой команды:"
msgstr "" msgstr ""
#: ../../root/error_handling.rst:94 #: ../../root/error_handling.rst:94
msgid "Сэмпл кода, переопределяющего хэндлер ввода пустой команды:" msgid "Обработка неизвестной команды"
msgstr "" msgstr ""
#: ../../root/error_handling.rst:102 #: ../../root/error_handling.rst:96
msgid "``Поведение обработки неизвестной команды``: Введена неизвестная команда" msgid ""
"Это поведение активируется, когда пользователь вводит команду, которая не"
" зарегистрирована ни в одном из роутеров и не является псевдонимом "
"(alias) для существующей команды."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:104 #: ../../root/error_handling.rst:104
msgid "" msgid ""
"Поведение триггерится, когда пользователь вводит команду, которая не " "Для переопределения используется сеттер "
"зарегистрирована ни в одном роутере и не является алиасом ни для одной " "``.set_unknown_command_handler()``. Он принимает на вход обработчик с "
"зарегистрированной команды." "сигнатурой ``Callable[[InputCommand], None]``, где аргумент — объект "
":ref:`InputCommand <root_api_command_input_command>`."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:113 #: ../../root/error_handling.rst:106
msgid "" msgid "Пример кода, переопределяющего хэндлер ввода неизвестной команды:"
"Для переопределения стандартного поведения используется сеттер " msgstr ""
"``.set_unknown_command_handler(_: "
"NonStandardBehaviorHandler[InputCommand])``, протокол " #: ../../root/error_handling.rst:115
"``NonStandardBehaviorHandler[InputCommand]`` соответствует " msgid "Выход из приложения"
"``Callable[[InputCommand], None]``, то есть хэндлер должен быть "
"вызываемым объектом, к примеру функция или лямбда, которая принимает "
"обязательный аргумент типа :ref:`InputCommand <input_command>` и ничего "
"не возвращает."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:117 #: ../../root/error_handling.rst:117
msgid "Сэмпл кода, переопределяющего хэндлер ввода неизвестной команды:" msgid ""
"Это поведение активируется, когда пользователь вводит команду, помеченную"
" как команда выхода."
msgstr ""
#: ../../root/error_handling.rst:119
msgid "Стандартный хэндлер выводит в консоль текст и завершает работу приложения."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:125 #: ../../root/error_handling.rst:125
msgid "``Поведение выхода из приложения``: Введена команда выхода" msgid ""
"Для переопределения используется сеттер ``.set_exit_command_handler()``. "
"Он принимает на вход обработчик с сигнатурой ``Callable[[Response], "
"None]``, где аргумент — объект :ref:`Response <root_api_response>`."
msgstr "" msgstr ""
#: ../../root/error_handling.rst:127 #: ../../root/error_handling.rst:127
msgid "" msgid "Пример кода, переопределяющего хэндлер ввода команды выхода:"
"Поведение триггерится, когда пользователь вводит команду, которая "
"маркирована как команда завершения работы."
msgstr ""
#: ../../root/error_handling.rst:129
msgid "Дефолтный хэндлер выводит в консоль текст и завершает работу приложения."
msgstr ""
#: ../../root/error_handling.rst:135
msgid ""
"Для переопределения стандартного поведения используется сеттер "
"``.set_exit_command_handler(_: NonStandardBehaviorHandler[Response])``, "
"протокол ``NonStandardBehaviorHandler[Response]`` соответствует "
"``Callable[[Response], None]``, то есть хэндлер должен быть вызываемым "
"объектом, к примеру функция или лямбда, которая принимает обязательный "
"аргумент типа :ref:`Response <root_api_response>` и ничего не возвращает."
msgstr ""
#: ../../root/error_handling.rst:139
msgid "Сэмпл кода, переопределяющего хэндлер ввода команды выхода:"
msgstr "" msgstr ""
#~ msgid "привет" #~ msgid "привет"
@@ -465,3 +447,178 @@ msgstr ""
#~ "возвращает." #~ "возвращает."
#~ msgstr "" #~ msgstr ""
#~ msgid ""
#~ "``Argenta`` в рантайме вызывает исключения "
#~ "в пограничных случаях пользовательского ввода."
#~ " Все исключения обрабатываются системными "
#~ "хэндлерами, но у вас есть возможность"
#~ " их переопределить. Переопределение "
#~ "осуществляется с помощью сеттеров инстанса "
#~ "``App`` - ``.set_*_handler(_)``, где ``_`` "
#~ "- это протокол хэндлера нестандартного "
#~ "поведения, подробнее о каждом протоколе "
#~ "и соответствующем сеттере :ref:`ниже "
#~ "<possible_errors>`"
#~ msgstr ""
#~ msgid ""
#~ "Все исключения никогда не остаются "
#~ "необработанными, так как у них есть "
#~ "стандартные хэндлеры. Поэтому переопределение "
#~ "опционально."
#~ msgstr ""
#~ msgid "Краткий сэмпл кода, переопределяющего хэндлер ввода пустой команды"
#~ msgstr ""
#~ msgid ""
#~ "``UnprocessedInputFlagException``: Необрабатываемый ввод"
#~ " от пользователя"
#~ msgstr ""
#~ msgid ""
#~ "Исключение вызывается, когда пользователь "
#~ "вводит команду с некорректным синтаксисом "
#~ "и как следствие парсер не может "
#~ "*распарсить* её. В большинстве случаев "
#~ "это означат, что проблема в синтаксисе"
#~ " введённых флагов команды, подробнее о "
#~ "флагах и их синтаксисе в :ref:`Flags "
#~ "<root_flags>`."
#~ msgstr ""
#~ msgid "Дефолтный хэндлер выводит в консоль"
#~ msgstr ""
#~ msgid ""
#~ "Для переопределения стандартного поведения "
#~ "используется сеттер "
#~ "``.set_incorrect_input_syntax_handler(_: "
#~ "NonStandardBehaviorHandler[str])``, протокол "
#~ "``NonStandardBehaviorHandler[str]`` соответствует "
#~ "``Callable[[str], None]``, то есть хэндлер "
#~ "должен быть вызываемым объектом, к "
#~ "примеру функция или лямбда, которая "
#~ "принимает единственный аргумент - строку, "
#~ "которая представляет собой необработанную "
#~ "введённую команду, и ничего не "
#~ "возвращает."
#~ msgstr ""
#~ msgid ""
#~ "Сэмпл кода, переопределяющего хэндлер ввода"
#~ " команды с некорректным синтаксисом:"
#~ msgstr ""
#~ msgid "``RepeatedInputFlagsException``: Повторяющийся флаг в введённой команде"
#~ msgstr ""
#~ msgid ""
#~ "Исключение вызывается, когда пользователь "
#~ "вводит команду с повторяющимся флагом, "
#~ "пара введённых флагов(:ref:`InputFlag "
#~ "<root_api_command_input_flag>`) считается равной, "
#~ "если у них одинаковые имена. Подробнее"
#~ " о флагах и их синтаксисе в "
#~ ":ref:`Flags <root_flags>`."
#~ msgstr ""
#~ msgid ""
#~ "Для переопределения стандартного поведения "
#~ "используется сеттер ``.set_repeated_input_flags_handler(_:"
#~ " NonStandardBehaviorHandler[str])``, протокол "
#~ "``NonStandardBehaviorHandler[str]`` соответствует "
#~ "``Callable[[str], None]``, то есть хэндлер "
#~ "должен быть вызываемым объектом, к "
#~ "примеру функция или лямбда, которая "
#~ "принимает единственный аргумент - строку, "
#~ "которая представляет собой необработанную "
#~ "введённую команду, и ничего не "
#~ "возвращает."
#~ msgstr ""
#~ msgid ""
#~ "Сэмпл кода, переопределяющего хэндлер ввода"
#~ " команды с повторяющимися флагами:"
#~ msgstr ""
#~ msgid ""
#~ "Исключение вызывается, когда пользователь "
#~ "вводит команду в виде строки из "
#~ "пробельных символов - ``\\n``, ``\\t``, "
#~ "пробел и т.д."
#~ msgstr ""
#~ msgid ""
#~ "Для переопределения стандартного поведения "
#~ "используется сеттер ``.set_empty_command_handler(_: "
#~ "EmptyCommandHandler)``, протокол ``EmptyCommandHandler``"
#~ " соответствует ``Callable[[], None]``, то "
#~ "есть хэндлер должен быть вызываемым "
#~ "объектом, к примеру функция или лямбда,"
#~ " которая не принимает аргументов и "
#~ "ничего не возвращает."
#~ msgstr ""
#~ msgid "Сэмпл кода, переопределяющего хэндлер ввода пустой команды:"
#~ msgstr ""
#~ msgid ""
#~ "``Поведение обработки неизвестной команды``: "
#~ "Введена неизвестная команда"
#~ msgstr ""
#~ msgid ""
#~ "Поведение триггерится, когда пользователь "
#~ "вводит команду, которая не зарегистрирована"
#~ " ни в одном роутере и не "
#~ "является алиасом ни для одной "
#~ "зарегистрированной команды."
#~ msgstr ""
#~ msgid ""
#~ "Для переопределения стандартного поведения "
#~ "используется сеттер ``.set_unknown_command_handler(_: "
#~ "NonStandardBehaviorHandler[InputCommand])``, протокол "
#~ "``NonStandardBehaviorHandler[InputCommand]`` соответствует "
#~ "``Callable[[InputCommand], None]``, то есть "
#~ "хэндлер должен быть вызываемым объектом, "
#~ "к примеру функция или лямбда, которая"
#~ " принимает обязательный аргумент типа "
#~ ":ref:`InputCommand <input_command>` и ничего "
#~ "не возвращает."
#~ msgstr ""
#~ msgid "Сэмпл кода, переопределяющего хэндлер ввода неизвестной команды:"
#~ msgstr ""
#~ msgid "``Поведение выхода из приложения``: Введена команда выхода"
#~ msgstr ""
#~ msgid ""
#~ "Поведение триггерится, когда пользователь "
#~ "вводит команду, которая маркирована как "
#~ "команда завершения работы."
#~ msgstr ""
#~ msgid ""
#~ "Дефолтный хэндлер выводит в консоль "
#~ "текст и завершает работу приложения."
#~ msgstr ""
#~ msgid ""
#~ "Для переопределения стандартного поведения "
#~ "используется сеттер ``.set_exit_command_handler(_: "
#~ "NonStandardBehaviorHandler[Response])``, протокол "
#~ "``NonStandardBehaviorHandler[Response]`` соответствует "
#~ "``Callable[[Response], None]``, то есть "
#~ "хэндлер должен быть вызываемым объектом, "
#~ "к примеру функция или лямбда, которая"
#~ " принимает обязательный аргумент типа "
#~ ":ref:`Response <root_api_response>` и ничего "
#~ "не возвращает."
#~ msgstr ""
#~ msgid "Сэмпл кода, переопределяющего хэндлер ввода команды выхода:"
#~ msgstr ""
+101 -42
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-20 14:52+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -25,93 +25,152 @@ msgstr ""
#: ../../root/flags.rst:6 #: ../../root/flags.rst:6
msgid "" msgid ""
"Флаги (или параметры) — это специальные аргументы, которые конечный юзер " "Флаги (или параметры) — это специальные аргументы, которые пользователь "
"может добавлять к командам, чтобы управлять их поведением." "может добавлять к командам для управления их поведением."
msgstr ""
#: ../../root/flags.rst:9
msgid "Синтаксис флагов"
msgstr "" msgstr ""
#: ../../root/flags.rst:11 #: ../../root/flags.rst:11
msgid "Обобщённый синтаксис выглядит так:" msgid "Синтаксис флагов"
msgstr "" msgstr ""
#: ../../root/flags.rst:17 #: ../../root/flags.rst:13
msgid "Общий синтаксис выглядит так:"
msgstr ""
#: ../../root/flags.rst:19
msgid "" msgid ""
"То есть, у флага обязательно должен быть префикс, который может быть " "Флаг состоит из префикса (``-``, ``--`` или ``---``), имени и, "
"одним, двум или трем минусам. После префикса следует имя флага, без " "опционально, значения, которое указывается через пробел."
"пробела, после, через пробел, идёт значение флага, если оно есть."
msgstr "" msgstr ""
#: ../../root/flags.rst:21 #: ../../root/flags.rst:24
msgid "Два типа флагов" msgid "Два типа флагов"
msgstr "" msgstr ""
#: ../../root/flags.rst:23 #: ../../root/flags.rst:26
msgid "" msgid ""
"Флаги бывают двух основных видов: без значений (переключатели) и со " "Флаги бывают двух основных видов: без значений (переключатели) и со "
"значениями. ``Argenta`` позволяет регистрировать и вводить флаги обоих " "значениями. ``Argenta`` позволяет регистрировать и вводить флаги обоих "
"типов в любой последовательности для одной команды." "типов в любой последовательности для одной команды."
msgstr "" msgstr ""
#: ../../root/flags.rst:26 #: ../../root/flags.rst:29
msgid "" msgid ""
"Ошибки валидации значений являются пассивными, их не нужно обрабатывать " "Ошибки валидации не выбрасывают исключений. Вместо этого у каждого "
"явно. У каждого инстанса :ref:`InputFlag <root_api_command_input_flag>` " "объекта :ref:`InputFlag <root_api_command_input_flag>` есть атрибут "
"есть поле ``status``, по которому можно определить результат валидации " "``status``, по которому можно определить, прошла ли валидация успешно. "
"флага. **Конкретная реализация и описание API вы можете найти в разделе**" "Подробное описание API для создания флагов находится в разделе :ref:`Flag"
" :ref:`Flag <root_api_command_flag>`." " <root_api_command_flag>`."
msgstr ""
#: ../../root/flags.rst:28
msgid ""
"При регистрации флага вы можете указать допустимые для него значения, по "
"умолчанию любое введённое значение для флага будет валидным. Допустимые "
"значения можно указать различными способами:"
msgstr "" msgstr ""
#: ../../root/flags.rst:31 #: ../../root/flags.rst:31
msgid ""
"При регистрации флага можно задать правила валидации для его значения. По"
" умолчанию любое значение считается корректным. Валидацию можно настроить"
" несколькими способами:"
msgstr ""
#: ../../root/flags.rst:36
msgid "Ограничение по списку возможных значений" msgid "Ограничение по списку возможных значений"
msgstr "" msgstr ""
#: ../../root/flags.rst:33 #: ../../root/flags.rst:38
msgid "Вы можете заранее определить список допустимых значений для флага." msgid "Вы можете заранее определить список допустимых значений для флага."
msgstr "" msgstr ""
#: ../../root/flags.rst:35 ../../root/flags.rst:52 #: ../../root/flags.rst:40
msgid "**Пример:**"
msgstr ""
#: ../../root/flags.rst:37
msgid "" msgid ""
"Предположим, у вас есть флаг ``--format``, который может принимать только" "Предположим, у вас есть флаг ``--format``, который может принимать только"
" значения ``json`` или ``xml``." " значения ``json`` или ``xml``."
msgstr "" msgstr ""
#: ../../root/flags.rst:48 #: ../../root/flags.rst:54
msgid "Проверка с помощью регулярных выражений" msgid "Проверка с помощью регулярных выражений"
msgstr "" msgstr ""
#: ../../root/flags.rst:50 #: ../../root/flags.rst:56
msgid "" msgid ""
"Для более сложных проверок вы можете использовать регулярные выражения. " "Для более сложных проверок можно использовать регулярные выражения. Это "
"Это особенно полезно, когда значение должно соответствовать определённому" "полезно, когда значение должно соответствовать определённому формату "
" формату, например, быть email-адресом, датой или номером телефона." "(например, email-адрес, дата или номер телефона)."
msgstr "" msgstr ""
#: ../../root/flags.rst:54 #: ../../root/flags.rst:58
msgid "" msgid ""
"Допустим, флаг ``--email`` должен принимать только корректные " "Допустим, флаг ``--email`` должен принимать только корректные "
"email-адреса." "email-адреса."
msgstr "" msgstr ""
#: ../../root/flags.rst:64 #: ../../root/flags.rst:69
msgid "" msgid ""
"Встроенная валидация избавляет вас от необходимости писать ручные " "Встроенная валидация избавляет от необходимости писать проверки вручную и"
"проверки и делает ваш код более декларативным." " делает код более декларативным."
msgstr "" msgstr ""
#~ msgid "Флаги" #~ msgid "Флаги"
#~ msgstr "" #~ msgstr ""
#~ msgid ""
#~ "Флаги (или параметры) — это специальные"
#~ " аргументы, которые конечный юзер может "
#~ "добавлять к командам, чтобы управлять их"
#~ " поведением."
#~ msgstr ""
#~ msgid "Обобщённый синтаксис выглядит так:"
#~ msgstr ""
#~ msgid ""
#~ "То есть, у флага обязательно должен "
#~ "быть префикс, который может быть одним,"
#~ " двум или трем минусам. После "
#~ "префикса следует имя флага, без пробела,"
#~ " после, через пробел, идёт значение "
#~ "флага, если оно есть."
#~ msgstr ""
#~ msgid ""
#~ "Флаги бывают двух основных видов: без"
#~ " значений (переключатели) и со значениями."
#~ " ``Argenta`` позволяет регистрировать и "
#~ "вводить флаги обоих типов в любой "
#~ "последовательности для одной команды."
#~ msgstr ""
#~ msgid ""
#~ "Ошибки валидации значений являются пассивными,"
#~ " их не нужно обрабатывать явно. У "
#~ "каждого инстанса :ref:`InputFlag "
#~ "<root_api_command_input_flag>` есть поле ``status``,"
#~ " по которому можно определить результат "
#~ "валидации флага. **Конкретная реализация и "
#~ "описание API вы можете найти в "
#~ "разделе** :ref:`Flag <root_api_command_flag>`."
#~ msgstr ""
#~ msgid ""
#~ "При регистрации флага вы можете указать"
#~ " допустимые для него значения, по "
#~ "умолчанию любое введённое значение для "
#~ "флага будет валидным. Допустимые значения "
#~ "можно указать различными способами:"
#~ msgstr ""
#~ msgid "**Пример:**"
#~ msgstr ""
#~ msgid ""
#~ "Для более сложных проверок вы можете "
#~ "использовать регулярные выражения. Это "
#~ "особенно полезно, когда значение должно "
#~ "соответствовать определённому формату, например, "
#~ "быть email-адресом, датой или номером "
#~ "телефона."
#~ msgstr ""
#~ msgid ""
#~ "Встроенная валидация избавляет вас от "
#~ "необходимости писать ручные проверки и "
#~ "делает ваш код более декларативным."
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-20 14:52+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -21,23 +21,22 @@ msgstr ""
#: ../../root/overriding_formatting.rst:4 #: ../../root/overriding_formatting.rst:4
#, fuzzy #, fuzzy
msgid "Стандартное форматирование" msgid "Управление форматированием вывода"
msgstr "Overriding formatting" msgstr "Overriding formatting"
#: ../../root/overriding_formatting.rst:6 #: ../../root/overriding_formatting.rst:6
msgid "" msgid ""
"По умолчанию в ``Argenta`` используется библиотека ``rich`` для вывода " "По умолчанию ``Argenta`` использует библиотеку ``rich`` для вывода текста"
"текста с расширенным форматированием в консоли. ``rich`` позволяет " " с расширенным форматированием. Она позволяет применять цвета и стили, "
"применять цвета, стили (жирный, курсив, подчеркнутый), составлять " "создавать таблицы, подсвечивать синтаксис и многое другое, что улучшает "
"таблицы, выделять синтаксис кода и многое другое, что значительно " "визуальное восприятие информации."
"улучшает визуальное восприятие текста."
msgstr "" msgstr ""
#: ../../root/overriding_formatting.rst:8 #: ../../root/overriding_formatting.rst:8
msgid "" msgid ""
"Вывод системных сообщений производится с помощью метода ``print`` объекта" "Системные сообщения выводятся с помощью метода ``print`` объекта "
" ``Console`` из библиотеки ``rich``, который обладает интерфейсом, " "``rich.console.Console``, который имеет интерфейс, совместимый со "
"совместимым со встроенной функцией ``print``." "встроенной функцией ``print``."
msgstr "" msgstr ""
#: ../../root/overriding_formatting.rst:13 #: ../../root/overriding_formatting.rst:13
@@ -47,18 +46,15 @@ msgstr "Overriding formatting"
#: ../../root/overriding_formatting.rst:15 #: ../../root/overriding_formatting.rst:15
msgid "" msgid ""
"При создании экземпляра класса ``App`` предусмотрен параметр " "При создании экземпляра ``App`` можно использовать параметр "
"``override_system_messages`` типа ``bool`` (по умолчанию ``False``), " "``override_system_messages: bool`` (по умолчанию ``False``), который "
"который позволяет включать или отключать стандартное форматирование " "позволяет отключать стандартное форматирование."
"системных сообщений."
msgstr "" msgstr ""
#: ../../root/overriding_formatting.rst:17 #: ../../root/overriding_formatting.rst:17
msgid "" msgid ""
"Если установить этот флаг в ``True``, стандартное форматирование, " "Если установить его в ``True``, стилизация текста и ASCII-арт будут "
"применяемое по умолчанию (например, стилизация текста и ASCII-арт), будет" "отключены, а системные сообщения — выводиться в «сыром» виде."
" отключено, и системные сообщения будут выводиться в \"сыром\" виде, без "
"дополнительных стилей."
msgstr "" msgstr ""
#: ../../root/overriding_formatting.rst:22 #: ../../root/overriding_formatting.rst:22
@@ -68,18 +64,16 @@ msgstr ""
#: ../../root/overriding_formatting.rst:24 #: ../../root/overriding_formatting.rst:24
msgid "" msgid ""
"Приветственное (``initial_message``) и прощальное (``farewell_message``) " "Приветственное (``initial_message``) и прощальное (``farewell_message``) "
"сообщения по умолчанию формируются как ASCII-графика с помощью библиотеки" "сообщения по умолчанию выводятся в виде ASCII-графики с помощью "
" ``art``. В частности, используется функция ``text2art``, которая " "библиотеки ``art`` (а именно, функции ``text2art``)."
"преобразует обычный текст в стилизованное ASCII-арт изображение."
msgstr "" msgstr ""
#: ../../root/overriding_formatting.rst:27 #: ../../root/overriding_formatting.rst:27
msgid "" msgid ""
"Библиотека ``art`` ориентирована на работу с ASCII-символами и **не " "Библиотека ``art`` ориентирована на работу с ASCII-символами и **не "
"поддерживает корректный вывод кириллицы**. Это приводит к искажению или " "поддерживает кириллицу**. Это приводит к искажению символов русского и "
"некорректному отображению символов русского и других кириллических " "других кириллических алфавитов. Если ваше сообщение содержит кириллицу, "
"алфавитов. Если ваше приветственное сообщение содержит кириллицу, " "рекомендуется отключить форматирование с помощью "
"рекомендуется отключить стандартное форматирование с помощью "
"``override_system_messages=True`` или использовать только латинские " "``override_system_messages=True`` или использовать только латинские "
"символы." "символы."
msgstr "" msgstr ""
@@ -90,17 +84,16 @@ msgstr ""
#: ../../root/overriding_formatting.rst:34 #: ../../root/overriding_formatting.rst:34
msgid "" msgid ""
"Для полной замены логики вывода сообщений в конструкторе ``App`` доступен" "Для полной замены логики вывода в конструкторе ``App`` предусмотрен "
" параметр ``print_func``." "параметр ``print_func``."
msgstr "" msgstr ""
#: ../../root/overriding_formatting.rst:36 #: ../../root/overriding_formatting.rst:36
msgid "" msgid ""
"**print_func**: ``Printer`` - Протокол ``Printer`` соответствует " "**print_func**: ``Callable[[str], None]`` Этот параметр позволяет "
"``Callable[[str], None]``. Этот параметр позволяет передать любую " "передать любую вызываемую сущность (например, функцию), которая будет "
"вызываемую сущность (например, функцию или лямбду), которая будет "
"использоваться для вывода всех системных сообщений. По умолчанию это " "использоваться для вывода всех системных сообщений. По умолчанию это "
"обертка вокруг ``rich.console.Console().print``. Вы можете передать сюда " "обёртка над ``rich.console.Console().print``. Вы можете передать сюда "
"свою функцию, чтобы, например, логировать вывод в файл или отправлять его" "свою функцию, чтобы, например, логировать вывод в файл или отправлять его"
" по сети." " по сети."
msgstr "" msgstr ""
@@ -112,3 +105,85 @@ msgstr ""
#~ msgid "ндааааааааааааааа" #~ msgid "ндааааааааааааааа"
#~ msgstr "" #~ msgstr ""
#~ msgid "Стандартное форматирование"
#~ msgstr "Overriding formatting"
#~ msgid ""
#~ "По умолчанию в ``Argenta`` используется "
#~ "библиотека ``rich`` для вывода текста с"
#~ " расширенным форматированием в консоли. "
#~ "``rich`` позволяет применять цвета, стили "
#~ "(жирный, курсив, подчеркнутый), составлять "
#~ "таблицы, выделять синтаксис кода и "
#~ "многое другое, что значительно улучшает "
#~ "визуальное восприятие текста."
#~ msgstr ""
#~ msgid ""
#~ "Вывод системных сообщений производится с "
#~ "помощью метода ``print`` объекта ``Console``"
#~ " из библиотеки ``rich``, который обладает"
#~ " интерфейсом, совместимым со встроенной "
#~ "функцией ``print``."
#~ msgstr ""
#~ msgid ""
#~ "При создании экземпляра класса ``App`` "
#~ "предусмотрен параметр ``override_system_messages`` "
#~ "типа ``bool`` (по умолчанию ``False``), "
#~ "который позволяет включать или отключать "
#~ "стандартное форматирование системных сообщений."
#~ msgstr ""
#~ msgid ""
#~ "Если установить этот флаг в ``True``,"
#~ " стандартное форматирование, применяемое по "
#~ "умолчанию (например, стилизация текста и "
#~ "ASCII-арт), будет отключено, и системные "
#~ "сообщения будут выводиться в \"сыром\" "
#~ "виде, без дополнительных стилей."
#~ msgstr ""
#~ msgid ""
#~ "Приветственное (``initial_message``) и прощальное"
#~ " (``farewell_message``) сообщения по умолчанию"
#~ " формируются как ASCII-графика с помощью"
#~ " библиотеки ``art``. В частности, "
#~ "используется функция ``text2art``, которая "
#~ "преобразует обычный текст в стилизованное "
#~ "ASCII-арт изображение."
#~ msgstr ""
#~ msgid ""
#~ "Библиотека ``art`` ориентирована на работу "
#~ "с ASCII-символами и **не поддерживает "
#~ "корректный вывод кириллицы**. Это приводит "
#~ "к искажению или некорректному отображению "
#~ "символов русского и других кириллических "
#~ "алфавитов. Если ваше приветственное сообщение"
#~ " содержит кириллицу, рекомендуется отключить "
#~ "стандартное форматирование с помощью "
#~ "``override_system_messages=True`` или использовать "
#~ "только латинские символы."
#~ msgstr ""
#~ msgid ""
#~ "Для полной замены логики вывода "
#~ "сообщений в конструкторе ``App`` доступен "
#~ "параметр ``print_func``."
#~ msgstr ""
#~ msgid ""
#~ "**print_func**: ``Printer`` - Протокол "
#~ "``Printer`` соответствует ``Callable[[str], None]``."
#~ " Этот параметр позволяет передать любую "
#~ "вызываемую сущность (например, функцию или "
#~ "лямбду), которая будет использоваться для "
#~ "вывода всех системных сообщений. По "
#~ "умолчанию это обертка вокруг "
#~ "``rich.console.Console().print``. Вы можете передать"
#~ " сюда свою функцию, чтобы, например, "
#~ "логировать вывод в файл или отправлять"
#~ " его по сети."
#~ msgstr ""
+117 -16
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-20 14:52+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -24,32 +24,105 @@ msgid "Быстрый старт"
msgstr "Quick Start" msgstr "Quick Start"
#: ../../root/quickstart.rst:6 #: ../../root/quickstart.rst:6
msgid "**Установка** ``Argenta``" msgid ""
"В этом руководстве мы рассмотрим два примера создания CLI-приложения с "
"помощью Argenta:"
msgstr ""
#: ../../root/quickstart.rst:8
msgid ""
"**Простой пример**: Быстрое знакомство с основными компонентами, такими "
"как `App`, `Command` и `Router`."
msgstr ""
#: ../../root/quickstart.rst:9
msgid ""
"**Более сложный пример**: Полнофункциональное приложение «Менеджер задач»"
" с внедрением зависимостей и бизнес-логикой."
msgstr "" msgstr ""
#: ../../root/quickstart.rst:12 #: ../../root/quickstart.rst:12
msgid "" msgid "Простой пример"
"**Определение роутера и хэндлеров**. За регистрацию функции как "
"обработчика отвечает декоратор ``@router.command``, хэндлер всегда должен"
" принимать аргумент с типом ``Response``, подробнее в :ref:`разделе "
"<root_api_response>`."
msgstr "" msgstr ""
#: ../../root/quickstart.rst:17 #: ../../root/quickstart.rst:14
msgid "" msgid ""
"**Определение приложения и оркестратора**. Для запуска приложения " "Этот пример демонстрирует абсолютный минимум, необходимый для создания и "
"необходимо вызвать ``.include_router()`` у созданного приложения и " "запуска приложения. Вы можете скопировать этот код, запустить его и сразу"
"передать ему раннее созданный роутер, после этого необходимо вызвать " " увидеть результат."
"``.start_polling()`` у созданного оркестратора и передать ему созданное " msgstr ""
"приложение."
#: ../../root/quickstart.rst:20 ../../root/quickstart.rst:68
msgid "**Результат**"
msgstr "" msgstr ""
#: ../../root/quickstart.rst:22 #: ../../root/quickstart.rst:22
msgid "**Запуск приложения**. Запускаем приложение как обычный скрипт." msgid "Simple App Example"
msgstr "" msgstr ""
#: ../../root/quickstart.rst:25 #: ../../root/quickstart.rst:26
msgid "Quickstart Example" msgid "Более сложный пример: Менеджер задач"
msgstr ""
#: ../../root/quickstart.rst:28
msgid ""
"В этом руководстве мы создадим простое, но полнофункциональное "
"CLI-приложение «Менеджер задач», которое продемонстрирует ключевые "
"возможности Argenta."
msgstr ""
#: ../../root/quickstart.rst:30
msgid "**Установка**"
msgstr ""
#: ../../root/quickstart.rst:36
msgid "**Определение моделей данных и репозитория**"
msgstr ""
#: ../../root/quickstart.rst:38
msgid ""
"Сначала определим модели данных для задачи и репозиторий для их хранения."
" Это будет наша \"бизнес-логика\"."
msgstr ""
#: ../../root/quickstart.rst:44
msgid "**Создание провайдера для DI**"
msgstr ""
#: ../../root/quickstart.rst:46
msgid ""
"Чтобы Argenta могла внедрять `TaskRepository` в наши обработчики, мы "
"создадим провайдер для `dishka`."
msgstr ""
#: ../../root/quickstart.rst:52
msgid "**Создание обработчиков команд**"
msgstr ""
#: ../../root/quickstart.rst:54
msgid ""
"Теперь создадим обработчики для команд `add-task` и `list-tasks`. "
"Обратите внимание, как мы используем флаги и внедряем `TaskRepository`."
msgstr ""
#: ../../root/quickstart.rst:60
msgid "**Сборка и запуск приложения**"
msgstr ""
#: ../../root/quickstart.rst:62
msgid ""
"Наконец, соберем все вместе: создадим экземпляр `App`, подключим роутер и"
" провайдер, а затем запустим приложение."
msgstr ""
#: ../../root/quickstart.rst:70
msgid ""
"Теперь вы можете запустить `main.py` и взаимодействовать с вашим новым "
"CLI-приложением."
msgstr ""
#: ../../root/quickstart.rst:72
msgid "Task Manager Example"
msgstr "" msgstr ""
#~ msgid "" #~ msgid ""
@@ -83,3 +156,31 @@ msgstr ""
#~ "<Response>`." #~ "<Response>`."
#~ msgstr "" #~ msgstr ""
#~ msgid "**Установка** ``Argenta``"
#~ msgstr ""
#~ msgid ""
#~ "**Определение роутера и хэндлеров**. За "
#~ "регистрацию функции как обработчика отвечает"
#~ " декоратор ``@router.command``, хэндлер всегда"
#~ " должен принимать аргумент с типом "
#~ "``Response``, подробнее в :ref:`разделе "
#~ "<root_api_response>`."
#~ msgstr ""
#~ msgid ""
#~ "**Определение приложения и оркестратора**. Для"
#~ " запуска приложения необходимо вызвать "
#~ "``.include_router()`` у созданного приложения "
#~ "и передать ему раннее созданный роутер,"
#~ " после этого необходимо вызвать "
#~ "``.start_polling()`` у созданного оркестратора "
#~ "и передать ему созданное приложение."
#~ msgstr ""
#~ msgid "**Запуск приложения**. Запускаем приложение как обычный скрипт."
#~ msgstr ""
#~ msgid "Quickstart Example"
#~ msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Argenta \n" "Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-10-20 14:52+0300\n" "POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n" "Language: en\n"
@@ -24,195 +24,332 @@ msgstr ""
msgid "Переопределение стандартного вывода" msgid "Переопределение стандартного вывода"
msgstr "Redirect stdout" msgstr "Redirect stdout"
#: ../../root/redirect_stdout.rst:7 #: ../../root/redirect_stdout.rst:6
msgid "О разделе"
msgstr ""
#: ../../root/redirect_stdout.rst:9
msgid "" msgid ""
"``Argenta`` предоставляет гибкие механизмы для управления форматированием" "``Argenta`` предоставляет гибкие механизмы для форматирования вывода, "
" вывода, включая использование динамических разделительных линий. Это " "включая динамические разделительные линии. Это достигается за счёт "
"достигается за счет перехвата стандартного потока вывода (``stdout``), " "перехвата стандартного потока вывода (``stdout``), что накладывает "
"что имеет свои особенности." "некоторые особенности."
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:14 #: ../../root/redirect_stdout.rst:11
msgid "Механизм перехвата ``stdout``" msgid "Механизм перехвата ``stdout``"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:16 #: ../../root/redirect_stdout.rst:13
msgid "" msgid ""
"По умолчанию ``Argenta`` перехватывает весь текст, который выводится в " "По умолчанию ``Argenta`` перехватывает весь текст, выводимый в ``stdout``"
"``stdout`` внутри обработчика команды (``handler``). Это делается для " " внутри обработчика команды. Это необходимо для реализации **динамических"
"реализации **динамической длины разделителя**. Система анализирует весь " " разделителей**: система анализирует вывод, находит самую длинную строку "
"выведенный текст, находит самую длинную строку и использует её длину для " "и использует её для отрисовки верхней и нижней границ. Такой подход "
"отрисовки верхней и нижней разделительных линий. Это создает аккуратный и" "создаёт аккуратный интерфейс, где вывод команды «обёрнут» в рамку, "
" визуально согласованный интерфейс, где вывод команды \"обернут\" в " "подогнанную под его содержимое."
"рамку, идеально подогнанную под его содержимое."
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:19 #: ../../root/redirect_stdout.rst:15
msgid "Пример приложения с динамической разделительной линией:"
msgstr ""
#: ../../root/redirect_stdout.rst:17
msgid "Пример приложения с динамической разделительной линией"
msgstr ""
#: ../../root/redirect_stdout.rst:20
msgid ""
"Как вы можете заметить разделительная линия ровно той же длины, что и "
"самая длинная строка в выводе."
msgstr ""
#: ../../root/redirect_stdout.rst:22
msgid "То же приложение с статической линией:"
msgstr ""
#: ../../root/redirect_stdout.rst:24
msgid "Пример приложения с статической разделительной линией"
msgstr ""
#: ../../root/redirect_stdout.rst:27
msgid ""
"В этом примере разделительная линия имеет фиксированную длину (по "
"умолчанию 25 символов)."
msgstr ""
#: ../../root/redirect_stdout.rst:32
msgid "Побочные эффекты перехвата ``stdout``" msgid "Побочные эффекты перехвата ``stdout``"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:21 #: ../../root/redirect_stdout.rst:34
msgid "" msgid ""
"Главный побочный эффект этого механизма проявляется при использовании " "Главный побочный эффект этого механизма проявляется при использовании "
"функций, которые одновременно ожидают ввод от пользователя и выводят " "функций, которые одновременно ожидают ввод от пользователя и выводят "
"текст-приглашение. Классический пример — стандартная функция ``input()``." "приглашение в консоль. Классический пример — стандартная функция "
"``input()``."
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:30 #: ../../root/redirect_stdout.rst:44
msgid "" msgid ""
"При включенном перехвате ``stdout`` текст-приглашение ``\"Введите ваше " "При включённом перехвате ``stdout`` текст-приглашение (например, "
"имя: \"`` **не будет выведен в консоль немедленно**. Он попадет в буфер, " "``\"Введите ваше имя: \"``) **не будет выведен в консоль немедленно**. Он"
"и пользователь увидит только мигающий курсор, ожидающий ввода. Текст " " попадёт в буфер, и пользователь увидит только мигающий курсор. Текст "
"приглашения будет выведен только после того, как выполнение всего " "приглашения отобразится лишь после завершения работы обработчика вместе с"
"обработчика завершится, вместе с остальным буферизованным выводом. Это " " остальным выводом. Это может сбить пользователя с толку."
"может сбить пользователя с толку и является пограничным случаем, "
"требующим внимания при разработке."
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:35 #: ../../root/redirect_stdout.rst:49
msgid "Отключение перехвата ``stdout`` с помощью ``disable_redirect_stdout``" msgid "Отключение перехвата ``stdout`` с помощью ``disable_redirect_stdout``"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:37
msgid ""
"Чтобы решить проблему с ``input()`` и другими подобными функциями, в "
"конструкторе класса ``Router`` предусмотрен специальный аргумент:"
msgstr ""
#: ../../root/redirect_stdout.rst:39
msgid "**disable_redirect_stdout** (``bool``, по умолчанию ``False``)"
msgstr ""
#: ../../root/redirect_stdout.rst:41
msgid ""
"Если при создании роутера установить ``disable_redirect_stdout=True``, то"
" для всех команд этого роутера механизм перехвата ``stdout`` будет "
"отключен."
msgstr ""
#: ../../root/redirect_stdout.rst:46
msgid ""
"В этом случае ``input()`` будет работать как обычно, и пользователь сразу"
" увидит приглашение \"Как вас зовут?\"."
msgstr ""
#: ../../root/redirect_stdout.rst:51 #: ../../root/redirect_stdout.rst:51
msgid "Типы разделительных линий" msgid ""
"Чтобы решить эту проблему, в конструкторе ``Router`` предусмотрен "
"специальный аргумент:"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:53 #: ../../root/redirect_stdout.rst:53
msgid "" msgid "**disable_redirect_stdout** (``bool``, по умолчанию ``False``)"
"``Argenta`` поддерживает два типа разделительных линий, которые можно "
"настроить при инициализации ``App``:"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:55 #: ../../root/redirect_stdout.rst:55
msgid "**DynamicDividingLine()**"
msgstr ""
#: ../../root/redirect_stdout.rst:56
msgid "" msgid ""
"Это поведение по умолчанию. Длина линии динамически подстраивается под " "Если при создании роутера установить ``disable_redirect_stdout=True``, "
"самый длинный выведенный текст." "механизм перехвата ``stdout`` будет отключён для всех его обработчиков."
msgstr ""
#: ../../root/redirect_stdout.rst:57
msgid ""
"Требует включенного перехвата ``stdout`` (т.е. "
"``disable_redirect_stdout=False`` на роутере)."
msgstr ""
#: ../../root/redirect_stdout.rst:59
msgid "**StaticDividingLine(length: int = 25)**"
msgstr ""
#: ../../root/redirect_stdout.rst:60
msgid ""
"Линия имеет фиксированную длину (по умолчанию 25 символов), которую можно"
" настроить через аргумент `length`."
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:61 #: ../../root/redirect_stdout.rst:61
msgid "" msgid ""
"Используется автоматически для роутеров, где " "В этом случае ``input()`` будет работать как обычно, и пользователь сразу"
"``disable_redirect_stdout=True``, так как без перехвата вывода невозможно" " увидит приглашение к вводу."
" определить необходимую динамическую длину."
msgstr ""
#: ../../root/redirect_stdout.rst:64
msgid "Настройка разделительной линии в `App`"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:66 #: ../../root/redirect_stdout.rst:66
msgid "Типы разделительных линий"
msgstr ""
#: ../../root/redirect_stdout.rst:68
msgid "" msgid ""
"Вы можете глобально задать тип разделительной линии для всего приложения " "``Argenta`` поддерживает два типа разделителей, которые настраиваются при"
"через аргумент ``dividing_line`` в конструкторе ``App``." " инициализации ``App``:"
msgstr ""
#: ../../root/redirect_stdout.rst:70
msgid "**DynamicDividingLine()**"
msgstr ""
#: ../../root/redirect_stdout.rst:71
msgid ""
"Поведение по умолчанию. Длина линии динамически подстраивается под самый "
"длинный текст в выводе."
msgstr ""
#: ../../root/redirect_stdout.rst:72
msgid ""
"Требует включённого перехвата ``stdout`` "
"(``disable_redirect_stdout=False`` в роутере)."
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:74 #: ../../root/redirect_stdout.rst:74
msgid "Итоговое поведение" msgid "**StaticDividingLine(length: int = 25)**"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:80 #: ../../root/redirect_stdout.rst:75
msgid "``disable_redirect_stdout`` на ``Router``" msgid ""
"Линия имеет фиксированную длину (по умолчанию 25 символов), которую можно"
" задать через аргумент `length`."
msgstr ""
#: ../../root/redirect_stdout.rst:76
msgid ""
"Используется принудительно для роутеров с "
"``disable_redirect_stdout=True``, так как без перехвата вывода невозможно"
" определить динамическую длину."
msgstr ""
#: ../../root/redirect_stdout.rst:79
msgid "Настройка разделительной линии в `App`"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:81 #: ../../root/redirect_stdout.rst:81
msgid ""
"Вы можете глобально задать тип разделителя для всего приложения через "
"аргумент ``dividing_line`` в конструкторе ``App``."
msgstr ""
#: ../../root/redirect_stdout.rst:90
msgid "Итоговое поведение"
msgstr ""
#: ../../root/redirect_stdout.rst:96
msgid "``disable_redirect_stdout`` на ``Router``"
msgstr ""
#: ../../root/redirect_stdout.rst:97
msgid "Тип линии в ``App``" msgid "Тип линии в ``App``"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:82 #: ../../root/redirect_stdout.rst:98
msgid "Фактическое поведение" msgid "Фактическое поведение"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:83 #: ../../root/redirect_stdout.rst:99
msgid "``input()`` работает корректно?" msgid "``input()`` работает корректно?"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:84 ../../root/redirect_stdout.rst:88 #: ../../root/redirect_stdout.rst:100 ../../root/redirect_stdout.rst:104
msgid "``False`` (по умолчанию)" msgid "``False`` (по умолчанию)"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:85 ../../root/redirect_stdout.rst:93 #: ../../root/redirect_stdout.rst:101 ../../root/redirect_stdout.rst:109
msgid "``DynamicDividingLine``" msgid "``DynamicDividingLine``"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:86 #: ../../root/redirect_stdout.rst:102
msgid "Динамическая линия, длина по содержимому" msgid "Динамическая линия, длина по содержимому"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:87 ../../root/redirect_stdout.rst:91 #: ../../root/redirect_stdout.rst:103 ../../root/redirect_stdout.rst:107
msgid "Нет" msgid "Нет"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:89 ../../root/redirect_stdout.rst:97 #: ../../root/redirect_stdout.rst:105 ../../root/redirect_stdout.rst:113
msgid "``StaticDividingLine``" msgid "``StaticDividingLine``"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:90 ../../root/redirect_stdout.rst:98 #: ../../root/redirect_stdout.rst:106 ../../root/redirect_stdout.rst:114
msgid "Статическая линия указанной длины" msgid "Статическая линия указанной длины"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:92 ../../root/redirect_stdout.rst:96 #: ../../root/redirect_stdout.rst:108 ../../root/redirect_stdout.rst:112
msgid "``True``" msgid "``True``"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:94 #: ../../root/redirect_stdout.rst:110
msgid "**Принудительно статическая линия** (длина по умолч.)" msgid "**Принудительно статическая линия** (длина по умолч.)"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:95 ../../root/redirect_stdout.rst:99 #: ../../root/redirect_stdout.rst:111 ../../root/redirect_stdout.rst:115
msgid "Да" msgid "Да"
msgstr "" msgstr ""
#: ../../root/redirect_stdout.rst:101 #: ../../root/redirect_stdout.rst:117
msgid "" msgid ""
"Таким образом, для создания интерактивных команд, требующих ввода от " "Таким образом, для интерактивных команд, требующих ввода от пользователя,"
"пользователя, всегда отключайте перехват ``stdout`` на соответствующем " " отключайте перехват ``stdout`` на уровне роутера. Для всех остальных "
"роутере. Для всех остальных команд можно оставить поведение по умолчанию." "команд можно оставить поведение по умолчанию."
msgstr "" msgstr ""
#~ msgid "О разделе"
#~ msgstr ""
#~ msgid ""
#~ "``Argenta`` предоставляет гибкие механизмы для"
#~ " управления форматированием вывода, включая "
#~ "использование динамических разделительных линий. "
#~ "Это достигается за счет перехвата "
#~ "стандартного потока вывода (``stdout``), что"
#~ " имеет свои особенности."
#~ msgstr ""
#~ msgid ""
#~ "По умолчанию ``Argenta`` перехватывает весь"
#~ " текст, который выводится в ``stdout`` "
#~ "внутри обработчика команды (``handler``). Это"
#~ " делается для реализации **динамической "
#~ "длины разделителя**. Система анализирует весь"
#~ " выведенный текст, находит самую длинную"
#~ " строку и использует её длину для "
#~ "отрисовки верхней и нижней разделительных "
#~ "линий. Это создает аккуратный и "
#~ "визуально согласованный интерфейс, где вывод"
#~ " команды \"обернут\" в рамку, идеально "
#~ "подогнанную под его содержимое."
#~ msgstr ""
#~ msgid ""
#~ "Главный побочный эффект этого механизма "
#~ "проявляется при использовании функций, которые"
#~ " одновременно ожидают ввод от пользователя"
#~ " и выводят текст-приглашение. Классический "
#~ "пример — стандартная функция ``input()``."
#~ msgstr ""
#~ msgid ""
#~ "При включенном перехвате ``stdout`` "
#~ "текст-приглашение ``\"Введите ваше имя: \"``"
#~ " **не будет выведен в консоль "
#~ "немедленно**. Он попадет в буфер, и "
#~ "пользователь увидит только мигающий курсор,"
#~ " ожидающий ввода. Текст приглашения будет"
#~ " выведен только после того, как "
#~ "выполнение всего обработчика завершится, "
#~ "вместе с остальным буферизованным выводом. "
#~ "Это может сбить пользователя с толку "
#~ "и является пограничным случаем, требующим "
#~ "внимания при разработке."
#~ msgstr ""
#~ msgid ""
#~ "Чтобы решить проблему с ``input()`` и"
#~ " другими подобными функциями, в "
#~ "конструкторе класса ``Router`` предусмотрен "
#~ "специальный аргумент:"
#~ msgstr ""
#~ msgid ""
#~ "Если при создании роутера установить "
#~ "``disable_redirect_stdout=True``, то для всех "
#~ "команд этого роутера механизм перехвата "
#~ "``stdout`` будет отключен."
#~ msgstr ""
#~ msgid ""
#~ "В этом случае ``input()`` будет работать"
#~ " как обычно, и пользователь сразу "
#~ "увидит приглашение \"Как вас зовут?\"."
#~ msgstr ""
#~ msgid ""
#~ "``Argenta`` поддерживает два типа "
#~ "разделительных линий, которые можно настроить"
#~ " при инициализации ``App``:"
#~ msgstr ""
#~ msgid ""
#~ "Это поведение по умолчанию. Длина линии"
#~ " динамически подстраивается под самый "
#~ "длинный выведенный текст."
#~ msgstr ""
#~ msgid ""
#~ "Требует включенного перехвата ``stdout`` (т.е."
#~ " ``disable_redirect_stdout=False`` на роутере)."
#~ msgstr ""
#~ msgid ""
#~ "Линия имеет фиксированную длину (по "
#~ "умолчанию 25 символов), которую можно "
#~ "настроить через аргумент `length`."
#~ msgstr ""
#~ msgid ""
#~ "Используется автоматически для роутеров, где"
#~ " ``disable_redirect_stdout=True``, так как без"
#~ " перехвата вывода невозможно определить "
#~ "необходимую динамическую длину."
#~ msgstr ""
#~ msgid ""
#~ "Вы можете глобально задать тип "
#~ "разделительной линии для всего приложения "
#~ "через аргумент ``dividing_line`` в "
#~ "конструкторе ``App``."
#~ msgstr ""
#~ msgid ""
#~ "Таким образом, для создания интерактивных "
#~ "команд, требующих ввода от пользователя, "
#~ "всегда отключайте перехват ``stdout`` на "
#~ "соответствующем роутере. Для всех остальных"
#~ " команд можно оставить поведение по "
#~ "умолчанию."
#~ msgstr ""
+112
View File
@@ -0,0 +1,112 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2025, kolo
# This file is distributed under the same license as the Argenta package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: Argenta \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-11-03 19:01+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: en\n"
"Language-Team: en <LL@li.org>\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.17.0\n"
#: ../../root/testing.rst:2
msgid "Тестирование"
msgstr ""
#: ../../root/testing.rst:4
msgid ""
"В этом разделе описаны практики тестирования приложений на основе "
"``Argenta``. Примеры основаны на фактическом публичном API: ``App``, "
"``Router``, ``Command``, ``Orchestrator``, DI через ``dishka`` и "
"интеграцию в ``argenta.di.integration``."
msgstr ""
#: ../../root/testing.rst:7
msgid "Модульное тестирование хендлеров"
msgstr ""
#: ../../root/testing.rst:9
msgid ""
"Обработчики в Argenta — обычные функции. Их удобно тестировать как чистые"
" функции, не поднимая весь цикл приложения. Рекомендуются ``unittest`` "
"или ``pytest``."
msgstr ""
#: ../../root/testing.rst:11
msgid "Пример с ``unittest`` для простого хендлера без DI:"
msgstr ""
#: ../../root/testing.rst:18
msgid "Тестирование с внедрением зависимостей (DI)"
msgstr ""
#: ../../root/testing.rst:20
msgid ""
"Если хендлеру нужны зависимости, используйте ``dishka`` и интеграцию "
"Argenta:"
msgstr ""
#: ../../root/testing.rst:27
msgid "Интеграционное тестирование приложения"
msgstr ""
#: ../../root/testing.rst:29
msgid ""
"Для более высокого уровня тестов собирайте ``App`` и ``Router`` и "
"вызывайте хендлеры через парсинг команд, обходя бесконечный цикл ввода. "
"Это даёт близкое к реальности поведение без необходимости симулировать "
"``stdin``."
msgstr ""
#: ../../root/testing.rst:36
msgid "E2E-тестирование цикла (опционально)"
msgstr ""
#: ../../root/testing.rst:38
msgid ""
"Полный запуск цикла ``start_polling`` можно покрывать через подпроцесс с "
"передачей строк во ``stdin``. Это тяжелее и обычно не требуется. Если всё"
" же необходимо — вынесите конфигурацию в функцию ``main()`` и запускайте "
"модуль в подпроцессе с подготовленным вводом/выводом."
msgstr ""
#: ../../root/testing.rst:41
msgid "Советы по тестированию"
msgstr ""
#: ../../root/testing.rst:43
msgid "**Изолируйте тесты**: Каждый тест должен быть независимым от других."
msgstr ""
#: ../../root/testing.rst:44
msgid ""
"**Моки для внешних интеграций**: БД, HTTP-клиенты и т.п. подменяйте "
"заглушками и провайдерами ``dishka``."
msgstr ""
#: ../../root/testing.rst:45
msgid ""
"**Покрывайте ошибочные сценарии**: Некорректные флаги, неизвестные "
"команды, пустой ввод."
msgstr ""
#: ../../root/testing.rst:46
msgid ""
"**Минимизируйте зависимость от форматирования**: Сравнивайте ключевые "
"фрагменты вывода, а не весь блок целиком."
msgstr ""
#: ../../root/testing.rst:47
msgid "**Измеряйте покрытие**: Используйте ``pytest-cov``."
msgstr ""