diff --git a/docs/locales/en/LC_MESSAGES/index.po b/docs/locales/en/LC_MESSAGES/index.po index aed374d..25655d4 100644 --- a/docs/locales/en/LC_MESSAGES/index.po +++ b/docs/locales/en/LC_MESSAGES/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -19,23 +19,27 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" -#: ../../index.rst:36 +#: ../../index.rst:38 msgid "Контент:" msgstr "Content:" -#: ../../index.rst:47 +#: ../../index.rst:48 +msgid "Продвинутое использование:" +msgstr "" + +#: ../../index.rst:56 msgid "Для разработчиков:" msgstr "For developers:" -#: ../../index.rst:53 +#: ../../index.rst:63 msgid "GitHub" msgstr "" -#: ../../index.rst:53 +#: ../../index.rst:63 msgid "PyPI" msgstr "" -#: ../../index.rst:53 +#: ../../index.rst:63 msgid "Ссылки проекта:" msgstr "Project Links:" @@ -47,14 +51,16 @@ msgstr "" msgid "" "**Библиотека для построения модульных CLI-приложений с простым и приятным" " 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 msgid "" -"У вас есть некая функциональность и вы хотите распространять её в виде " -"CLI? Argenta поможет вам. Основная цель библиотеки дать возможность " -"разработчикам сфокусироваться на реализации своих идей, предоставляя для " -"этого удобные абстракциию." +"Если у вас есть функциональность, которую вы хотите предоставить в виде " +"CLI-приложения, Argenta поможет вам в этом. Основная цель библиотеки — " +"дать разработчикам возможность сосредоточиться на реализации своих идей, " +"предоставляя для этого удобные абстракции." msgstr "" #: ../../index.rst:14 @@ -63,68 +69,147 @@ msgstr "" #: ../../index.rst:17 msgid "" -"Argenta нужна для создания приложений, которым необходим свой скоуп, то " -"есть: при запуске приложения юзер входит в абстрагированный скоуп, в " -"котором у него есть доступ к созданной функциональности." +"Argenta предназначена для создания приложений, работающих в собственном " +"контексте (scope). Это означает, что при запуске пользователь входит в " +"интерактивную сессию, где ему доступна вся реализованная вами " +"функциональность." msgstr "" -#: ../../index.rst:20 +#: ../../index.rst:19 msgid "" -"Один из основных принципов библиотеки это цикличность, это значит, что " -"после ввода юзером команды он не выходит из скоупа, в этом основное " -"отличие от таких библиотек, как ``argparse``, ``click`` и ``typer``. " -"Выход из скоупа контролируется самим юзером." +"Один из ключевых принципов библиотеки — цикличность. После выполнения " +"команды пользователь остаётся в интерактивной сессии, в отличие от таких " +"библиотек, как ``argparse``, ``click`` и ``typer``. Выход из сессии " +"контролируется самим пользователем." +msgstr "" + +#: ../../index.rst:21 +msgid "**Ключевые особенности:**" msgstr "" #: ../../index.rst:23 -msgid "**Ключевые особенности:**" +msgid "" +"**Интерактивные сессии**. В отличие от традиционных CLI-инструментов, " +"Argenta создаёт циклические сессии, позволяя пользователю выполнять " +"команды последовательно, не перезапуская приложение." +msgstr "" + +#: ../../index.rst:24 +msgid "" +"**Декларативный синтаксис**. Команды и их обработчики объявляются с " +"помощью простых декораторов, что делает код чистым и интуитивно понятным." msgstr "" #: ../../index.rst:25 msgid "" -"**Обработчики**. Объекты представления приложения, непосредственные " -"обработчики введённых команд. Создание обработчиков максимально " -"декларативно" +"**Встроенное внедрение зависимостей (DI)**. Благодаря интеграции с " +"`dishka `_, вы можете легко " +"внедрять сервисы (например, подключения к БД) прямо в обработчики команд," +" что упрощает их тестирование и переиспользование." msgstr "" #: ../../index.rst:26 msgid "" -"**Маршрутизаторы**. Объекты маршрутизации, которые регистрируют " -"обработчиков, позволяя создавать кастомные настройки для групп " -"обработчиков, а также семантически их разделять." +"**Автоматическая валидация и парсинг**. Библиотека берёт на себя " +"обработку флагов и аргументов командной строки, включая их парсинг, " +"валидацию и преобразование типов." msgstr "" #: ../../index.rst:27 msgid "" -"**Приложение**. Объект управления жизненным циклом приложения, " -"подключения созданных маршрутизаторов, конфигурирования различных " -"вторичных утилит, таких как автокомплит, логирование и т.д." +"**Гибкая настройка**. Вы можете легко кастомизировать системные " +"сообщения, форматирование вывода и даже перенаправлять стандартный вывод " +"(stdout) в свои обработчики." msgstr "" -#: ../../index.rst:28 -msgid "" -"**Оркестратор**. Объект *оркестрации*, который конфигурирует, запускает и" -" управляет всеми остальными компонентами программы." +#: ../../index.rst:30 +msgid "Архитектура и жизненный цикл" msgstr "" -#: ../../index.rst:29 +#: ../../index.rst:32 msgid "" -"**Внедрение зависимостей**. ``Argenta`` нативно поддерживает ``dishka`` и" -" предоставляет возможность инжектирования зависимостей в хэндлерах, " -"резолвя тайпхинты, подробнее_." -msgstr "" - -#: ../../index.rst:33 -msgid "" -"**Поддержка флагов**. Библиотека поддерживает определение флагов, " -"введённых вместе с командой, ``Argenta`` сама парсит и валидирует их, " -"отдавая понятные сущности." +"Следующая диаграмма иллюстрирует, как компоненты Argenta взаимодействуют " +"друг с другом, обрабатывая ввод пользователя." msgstr "" #: ../../index.rst:34 -msgid "" -"**Поддержка аргументов**. Осуществленна поддержка аргументов командной " -"строки, позволяя пользователю передавать различные параметры при запуске " -"приложения." +msgid "Request Lifecycle Diagram" 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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/app/autocompleter.po b/docs/locales/en/LC_MESSAGES/root/api/app/autocompleter.po index 56614dd..8cade02 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/app/autocompleter.po +++ b/docs/locales/en/LC_MESSAGES/root/api/app/autocompleter.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,18 +25,17 @@ msgstr "" #: ../../root/api/app/autocompleter.rst:6 msgid "" -"Объект ``AutoCompleter`` является компонентом ``Argenta``, отвечающим за " -"интерактивное автодополнение команд. Его основная задача — улучшить опыт " -"взаимодействия пользователя с командной строкой, предоставляя подсказки и" -" автоматически завершая ввод на основе ранее введенных команд. Это " -"значительно ускоряет работу и снижает вероятность опечаток." +"``AutoCompleter`` — это компонент, отвечающий за интерактивное " +"автодополнение команд. Он улучшает пользовательский опыт, предлагая " +"подсказки и завершая ввод на основе истории команд, что ускоряет работу и" +" снижает вероятность опечаток." msgstr "" #: ../../root/api/app/autocompleter.rst:8 msgid "" -"``AutoCompleter`` использует ``pyreadline3`` для имплементации ``readline" -" GNU`` на ``Windows`` для управления историей команд и реализации логики " -"автодополнения." +"``AutoCompleter`` использует ``pyreadline3`` для реализации " +"функциональности `GNU readline` в `Windows`, что позволяет управлять " +"историей команд и автодополнением." msgstr "" #: ../../root/api/app/autocompleter.rst:13 @@ -44,20 +43,20 @@ msgid "Инициализация" msgstr "" #: ../../root/api/app/autocompleter.rst:20 -msgid "Создает и настраивает экземпляр ``AutoCompleter``." +msgid "Создаёт и настраивает экземпляр ``AutoCompleter``." msgstr "" #: ../../root/api/app/autocompleter.rst:22 msgid "" -"``history_filename``: Имя файла для сохранения и загрузки истории команд." -" Если указано, история будет персистентной между сессиями приложения. " -"Если **None**, история будет храниться только в памяти текущей сессии." +"``history_filename``: Имя файла для сохранения истории команд. Если " +"указано, история будет сохраняться между сессиями. При значении `None` " +"история хранится только в памяти." msgstr "" #: ../../root/api/app/autocompleter.rst:23 msgid "" -"``autocomplete_button``: Название клавиши, которая активирует " -"автодополнение. По умолчанию используется клавиша **\"tab\"**." +"``autocomplete_button``: Клавиша, активирующая автодополнение. По " +"умолчанию — **Tab**." msgstr "" #: ../../root/api/app/autocompleter.rst:28 @@ -65,46 +64,42 @@ msgid "Назначение и возможности" msgstr "" #: ../../root/api/app/autocompleter.rst:30 -msgid "``AutoCompleter`` обладает следующими возможностями:" +msgid "Основные возможности ``AutoCompleter``:" msgstr "" #: ../../root/api/app/autocompleter.rst:32 msgid "" -"**Автодополнение по истории**: Основная логика автодополнения основана на" -" истории команд, которые пользователь вводил ранее. Когда пользователь " -"начинает вводить команду и нажимает клавишу автодополнения (по умолчанию " -"**Tab**), система ищет в истории все команды, начинающиеся с введенного " -"текста." +"**Автодополнение по истории**: При нажатии клавиши автодополнения (по " +"умолчанию **Tab**) система ищет в истории команды, начинающиеся с уже " +"введённого текста." msgstr "" #: ../../root/api/app/autocompleter.rst:34 msgid "" -"**Завершение по общему префиксу**: Если найдено несколько команд с общим " -"префиксом, автодокомплитер подставит только общую часть. Например, если в" -" истории есть команды ``show_users`` и ``show_profile``, при вводе " -"``sho`` и нажатии **Tab** будет подставлено ``show_``." +"**Общий префикс**: Если найдено несколько команд с общим префиксом, будет" +" подставлена только общая часть. Например, для команд ``show_users`` и " +"``show_profile`` при вводе ``sho`` и нажатии **Tab** ввод дополнится до " +"``show_``." msgstr "" #: ../../root/api/app/autocompleter.rst:36 msgid "" -"**Персистентная история**: При указании параметра ``history_filename`` в " -"конструкторе, вся история команд сохраняется в файл при выходе из " -"приложения и загружается при следующем запуске. Это делает автодополнение" -" со временем все более \"умным\" и персонализированным." +"**Постоянная история**: Если указан ``history_filename``, история команд " +"сохраняется в файл при выходе и загружается при следующем запуске. Это " +"делает автодополнение со временем «умнее»." msgstr "" #: ../../root/api/app/autocompleter.rst:38 msgid "" -"**Очистка истории**: При сохранении истории ``AutoCompleter`` " -"автоматически удаляет дубликаты и команды, которые больше не " -"зарегистрированы в приложении, поддерживая актуальность и чистоту файла " -"истории." +"**Очистка истории**: При сохранении ``AutoCompleter`` удаляет дубликаты и" +" более не существующие команды, поддерживая историю в актуальном " +"состоянии." msgstr "" #: ../../root/api/app/autocompleter.rst:40 msgid "" -"**Настройка клавиши активации**: Вы можете изменить клавишу, отвечающую " -"за автодополнение, через параметр ``autocomplete_button``." +"**Настройка клавиши**: Клавишу автодополнения можно изменить с помощью " +"параметра ``autocomplete_button``." msgstr "" #: ../../root/api/app/autocompleter.rst:45 @@ -112,9 +107,98 @@ msgid "Пример использования" msgstr "" #: ../../root/api/app/autocompleter.rst:47 -msgid "``AutoCompleter`` передается как аргумент при инициализации `App`." +msgid "``AutoCompleter`` передаётся как аргумент при инициализации `App`." msgstr "" #~ msgid "Autocompleter" #~ msgstr "" +#~ msgid "" +#~ "Объект ``AutoCompleter`` является компонентом " +#~ "``Argenta``, отвечающим за интерактивное " +#~ "автодополнение команд. Его основная задача " +#~ "— улучшить опыт взаимодействия пользователя" +#~ " с командной строкой, предоставляя " +#~ "подсказки и автоматически завершая ввод " +#~ "на основе ранее введенных команд. Это" +#~ " значительно ускоряет работу и снижает " +#~ "вероятность опечаток." +#~ msgstr "" + +#~ msgid "" +#~ "``AutoCompleter`` использует ``pyreadline3`` для " +#~ "имплементации ``readline GNU`` на ``Windows``" +#~ " для управления историей команд и " +#~ "реализации логики автодополнения." +#~ msgstr "" + +#~ msgid "Создает и настраивает экземпляр ``AutoCompleter``." +#~ msgstr "" + +#~ msgid "" +#~ "``history_filename``: Имя файла для сохранения" +#~ " и загрузки истории команд. Если " +#~ "указано, история будет персистентной между " +#~ "сессиями приложения. Если **None**, история" +#~ " будет храниться только в памяти " +#~ "текущей сессии." +#~ msgstr "" + +#~ msgid "" +#~ "``autocomplete_button``: Название клавиши, которая" +#~ " активирует автодополнение. По умолчанию " +#~ "используется клавиша **\"tab\"**." +#~ msgstr "" + +#~ msgid "``AutoCompleter`` обладает следующими возможностями:" +#~ msgstr "" + +#~ msgid "" +#~ "**Автодополнение по истории**: Основная логика" +#~ " автодополнения основана на истории команд," +#~ " которые пользователь вводил ранее. Когда" +#~ " пользователь начинает вводить команду и" +#~ " нажимает клавишу автодополнения (по " +#~ "умолчанию **Tab**), система ищет в " +#~ "истории все команды, начинающиеся с " +#~ "введенного текста." +#~ msgstr "" + +#~ msgid "" +#~ "**Завершение по общему префиксу**: Если " +#~ "найдено несколько команд с общим " +#~ "префиксом, автодокомплитер подставит только " +#~ "общую часть. Например, если в истории" +#~ " есть команды ``show_users`` и " +#~ "``show_profile``, при вводе ``sho`` и " +#~ "нажатии **Tab** будет подставлено ``show_``." +#~ msgstr "" + +#~ msgid "" +#~ "**Персистентная история**: При указании " +#~ "параметра ``history_filename`` в конструкторе, " +#~ "вся история команд сохраняется в файл" +#~ " при выходе из приложения и " +#~ "загружается при следующем запуске. Это " +#~ "делает автодополнение со временем все " +#~ "более \"умным\" и персонализированным." +#~ msgstr "" + +#~ msgid "" +#~ "**Очистка истории**: При сохранении истории" +#~ " ``AutoCompleter`` автоматически удаляет " +#~ "дубликаты и команды, которые больше не" +#~ " зарегистрированы в приложении, поддерживая " +#~ "актуальность и чистоту файла истории." +#~ msgstr "" + +#~ msgid "" +#~ "**Настройка клавиши активации**: Вы можете " +#~ "изменить клавишу, отвечающую за " +#~ "автодополнение, через параметр " +#~ "``autocomplete_button``." +#~ msgstr "" + +#~ msgid "``AutoCompleter`` передается как аргумент при инициализации `App`." +#~ msgstr "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/app/dividing_lines.po b/docs/locales/en/LC_MESSAGES/root/api/app/dividing_lines.po index 55c93b5..54e81bc 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/app/dividing_lines.po +++ b/docs/locales/en/LC_MESSAGES/root/api/app/dividing_lines.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,135 +25,231 @@ msgstr "" #: ../../root/api/app/dividing_lines.rst:6 msgid "" -"Разделительные линии в ``Argenta`` играют важную роль в визуальном " -"оформлении консольного интерфейса. Они используются для структурирования " -"вывода, отделения блоков информации друг от друга (например, вывода " -"команды от следующего приглашения к вводу). Библиотека предлагает два " -"подхода к управлению разделительными линиями: статический и динамический," -" каждый из которых имеет свои преимущества и сценарии использования." +"Разделительные линии в ``Argenta`` используются для визуального " +"структурирования вывода и отделения блоков информации друг от друга. " +"Библиотека предлагает два типа линий: статическую и динамическую." msgstr "" -#: ../../root/api/app/dividing_lines.rst:12 +#: ../../root/api/app/dividing_lines.rst:11 msgid "Класс ``StaticDividingLine``" msgstr "" -#: ../../root/api/app/dividing_lines.rst:14 +#: ../../root/api/app/dividing_lines.rst:13 msgid "" -"``StaticDividingLine`` — это класс, который создает разделительную линию " -"**фиксированной** длины. Длина и символ-заполнитель задаются при " -"инициализации объекта. Этот тип линии полезен, когда вам нужен " -"предсказуемый и унифицированный внешний вид интерфейса, независимо от " -"содержимого вывода." +"``StaticDividingLine`` создаёт разделительную линию **фиксированной** " +"длины. Этот тип линии полезен для создания предсказуемого и " +"унифицированного интерфейса." msgstr "" -#: ../../root/api/app/dividing_lines.rst:22 -msgid "Создает экземпляр статической разделительной линии." +#: ../../root/api/app/dividing_lines.rst:21 +msgid "Создаёт экземпляр статической разделительной линии." +msgstr "" + +#: ../../root/api/app/dividing_lines.rst:23 +msgid "" +"``unit_part``: Символ для построения линии (учитывается только первый " +"символ). По умолчанию: ``-``." msgstr "" #: ../../root/api/app/dividing_lines.rst:24 msgid "" -"``unit_part``: Символ, который будет использоваться для построения линии." -" Учитывается только первый символ строки. По умолчанию: ``-``." +"``length``: Фиксированная длина линии (keyword-only аргумент). По " +"умолчанию: ``25``." msgstr "" -#: ../../root/api/app/dividing_lines.rst:25 -msgid "" -"``length``: Целое число, определяющее фиксированную длину линии в " -"символах. Является keyword-only аргументом. По умолчанию: ``25``." -msgstr "" - -#: ../../root/api/app/dividing_lines.rst:30 +#: ../../root/api/app/dividing_lines.rst:29 msgid "Класс ``DynamicDividingLine``" msgstr "" -#: ../../root/api/app/dividing_lines.rst:32 +#: ../../root/api/app/dividing_lines.rst:31 msgid "" -"``DynamicDividingLine`` представляет собой более \"умный\" подход. Этот " -"класс создает линию, длина которой **динамически** подстраивается под " -"самую длинную строку, выведенную в консоль, в рамках выполнения одной " -"команды. Это достигается за счет механизма перехвата `stdout`. В " -"результате разделительные линии всегда идеально обрамляют выводимый " -"контент, что выглядит очень аккуратно." +"``DynamicDividingLine`` создаёт линию, длина которой **динамически** " +"подстраивается под самую длинную строку в выводе команды. Это требует " +"перехвата `stdout`, в результате чего разделители идеально обрамляют " +"выводимый контент." msgstr "" -#: ../../root/api/app/dividing_lines.rst:39 -msgid "Создает экземпляр динамической разделительной линии." +#: ../../root/api/app/dividing_lines.rst:38 +msgid "Создаёт экземпляр динамической разделительной линии." msgstr "" -#: ../../root/api/app/dividing_lines.rst:41 -msgid "" -"``unit_part``: Символ, который будет использоваться для построения линии." -" По умолчанию: ``-``." +#: ../../root/api/app/dividing_lines.rst:40 +msgid "``unit_part``: Символ для построения линии. По умолчанию: ``-``." msgstr "" -#: ../../root/api/app/dividing_lines.rst:43 -msgid "" -"Длина для этой линии не задается при инициализации, так как она " -"вычисляется автоматически во время выполнения." +#: ../../root/api/app/dividing_lines.rst:42 +msgid "Длина вычисляется автоматически и не задаётся при инициализации." msgstr "" -#: ../../root/api/app/dividing_lines.rst:46 +#: ../../root/api/app/dividing_lines.rst:45 msgid "" "Обязательно почитайте про нюансы использования динамических линий и " "перехвата ``stdout`` в :ref:`этом разделе`." msgstr "" -#: ../../root/api/app/dividing_lines.rst:51 +#: ../../root/api/app/dividing_lines.rst:50 msgid "Назначение и использование" msgstr "" -#: ../../root/api/app/dividing_lines.rst:53 -msgid "" -"Выбор между статической и динамической линией зависит от ваших " -"потребностей в конкретном приложении или даже для конкретного " -"``Router``-а." +#: ../../root/api/app/dividing_lines.rst:52 +msgid "Выбор между статической и динамической линией зависит от ваших задач." msgstr "" -#: ../../root/api/app/dividing_lines.rst:55 +#: ../../root/api/app/dividing_lines.rst:54 msgid "**StaticDividingLine** идеально подходит, если:" msgstr "" +#: ../../root/api/app/dividing_lines.rst:56 +msgid "Вам нужен строгий и консистентный дизайн." +msgstr "" + #: ../../root/api/app/dividing_lines.rst:57 -msgid "Вам нужен строгий, консистентный дизайн." +msgid "" +"Вы используете роутеры с отключённым перехватом ``stdout`` " +"(``disable_redirect_stdout=True``), где динамическое вычисление длины " +"невозможно." msgstr "" -#: ../../root/api/app/dividing_lines.rst:58 +#: ../../root/api/app/dividing_lines.rst:59 msgid "" -"Вы используете роутеры с отключенным перехватом ``stdout`` " -"(``disable_redirect_stdout=True``), так как в этом случае динамическое " -"вычисление длины невозможно." +"**DynamicDividingLine** (поведение по умолчанию) — предпочтительный " +"выбор, если:" msgstr "" -#: ../../root/api/app/dividing_lines.rst:60 -msgid "" -"**DynamicDividingLine** (используется по умолчанию) является " -"предпочтительным выбором, если:" +#: ../../root/api/app/dividing_lines.rst:61 +msgid "Вы хотите, чтобы интерфейс был адаптивным." msgstr "" #: ../../root/api/app/dividing_lines.rst:62 -msgid "Вы хотите, чтобы интерфейс выглядел аккуратно и адаптивно." +msgid "Вывод ваших команд имеет разную длину." msgstr "" #: ../../root/api/app/dividing_lines.rst:63 msgid "" -"Вывод ваших команд имеет разную длину, и вы хотите, чтобы рамки всегда " -"соответствовали контенту." +"В ваших обработчиках нет интерактивных операций ввода (например, " +"``input()``)." msgstr "" -#: ../../root/api/app/dividing_lines.rst:64 -msgid "В ваших хэндлерах нет ожидающих ``io`` операций." -msgstr "" - -#: ../../root/api/app/dividing_lines.rst:66 +#: ../../root/api/app/dividing_lines.rst:65 msgid "" -"Тип разделительной линии для всего приложения задается при инициализации " -"``App`` через параметр ``dividing_line``." +"Тип разделителя для всего приложения задаётся при инициализации ``App`` " +"через параметр ``dividing_line``." msgstr "" -#: ../../root/api/app/dividing_lines.rst:71 +#: ../../root/api/app/dividing_lines.rst:70 msgid "Пример конфигурации" msgstr "" #~ msgid "DividingLines" #~ msgstr "" +#~ msgid "" +#~ "Разделительные линии в ``Argenta`` играют " +#~ "важную роль в визуальном оформлении " +#~ "консольного интерфейса. Они используются для" +#~ " структурирования вывода, отделения блоков " +#~ "информации друг от друга (например, " +#~ "вывода команды от следующего приглашения " +#~ "к вводу). Библиотека предлагает два " +#~ "подхода к управлению разделительными линиями:" +#~ " статический и динамический, каждый из " +#~ "которых имеет свои преимущества и " +#~ "сценарии использования." +#~ msgstr "" + +#~ msgid "" +#~ "``StaticDividingLine`` — это класс, который" +#~ " создает разделительную линию **фиксированной**" +#~ " длины. Длина и символ-заполнитель задаются" +#~ " при инициализации объекта. Этот тип " +#~ "линии полезен, когда вам нужен " +#~ "предсказуемый и унифицированный внешний вид" +#~ " интерфейса, независимо от содержимого " +#~ "вывода." +#~ msgstr "" + +#~ msgid "Создает экземпляр статической разделительной линии." +#~ msgstr "" + +#~ msgid "" +#~ "``unit_part``: Символ, который будет " +#~ "использоваться для построения линии. " +#~ "Учитывается только первый символ строки. " +#~ "По умолчанию: ``-``." +#~ msgstr "" + +#~ msgid "" +#~ "``length``: Целое число, определяющее " +#~ "фиксированную длину линии в символах. " +#~ "Является keyword-only аргументом. По " +#~ "умолчанию: ``25``." +#~ msgstr "" + +#~ msgid "" +#~ "``DynamicDividingLine`` представляет собой более " +#~ "\"умный\" подход. Этот класс создает " +#~ "линию, длина которой **динамически** " +#~ "подстраивается под самую длинную строку, " +#~ "выведенную в консоль, в рамках " +#~ "выполнения одной команды. Это достигается " +#~ "за счет механизма перехвата `stdout`. В" +#~ " результате разделительные линии всегда " +#~ "идеально обрамляют выводимый контент, что " +#~ "выглядит очень аккуратно." +#~ msgstr "" + +#~ msgid "Создает экземпляр динамической разделительной линии." +#~ msgstr "" + +#~ msgid "" +#~ "``unit_part``: Символ, который будет " +#~ "использоваться для построения линии. По " +#~ "умолчанию: ``-``." +#~ msgstr "" + +#~ msgid "" +#~ "Длина для этой линии не задается " +#~ "при инициализации, так как она " +#~ "вычисляется автоматически во время выполнения." +#~ msgstr "" + +#~ msgid "" +#~ "Выбор между статической и динамической " +#~ "линией зависит от ваших потребностей в" +#~ " конкретном приложении или даже для " +#~ "конкретного ``Router``-а." +#~ msgstr "" + +#~ msgid "Вам нужен строгий, консистентный дизайн." +#~ msgstr "" + +#~ msgid "" +#~ "Вы используете роутеры с отключенным " +#~ "перехватом ``stdout`` (``disable_redirect_stdout=True``)," +#~ " так как в этом случае динамическое" +#~ " вычисление длины невозможно." +#~ msgstr "" + +#~ msgid "" +#~ "**DynamicDividingLine** (используется по умолчанию)" +#~ " является предпочтительным выбором, если:" +#~ msgstr "" + +#~ msgid "Вы хотите, чтобы интерфейс выглядел аккуратно и адаптивно." +#~ msgstr "" + +#~ msgid "" +#~ "Вывод ваших команд имеет разную длину," +#~ " и вы хотите, чтобы рамки всегда " +#~ "соответствовали контенту." +#~ msgstr "" + +#~ msgid "В ваших хэндлерах нет ожидающих ``io`` операций." +#~ msgstr "" + +#~ msgid "" +#~ "Тип разделительной линии для всего " +#~ "приложения задается при инициализации ``App``" +#~ " через параметр ``dividing_line``." +#~ msgstr "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/app/index.po b/docs/locales/en/LC_MESSAGES/root/api/app/index.po index 5866465..33cfbb9 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/app/index.po +++ b/docs/locales/en/LC_MESSAGES/root/api/app/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,12 +25,10 @@ msgstr "" #: ../../root/api/app/index.rst:6 msgid "" -"Объект ``App`` является центральной сущностью библиотеки ``Argenta``. Он " -"выступает в роли ядра вашего консольного приложения, отвечая за его " +"Объект ``App`` — это ядро вашего консольного приложения. Он отвечает за " "конфигурацию, управление жизненным циклом, обработку команд и " -"взаимодействие с пользователем. ``App`` координирует работу всех " -"остальных компонентов, таких как роутеры, обработчики команд и системные " -"сообщения." +"взаимодействие с пользователем, координируя работу всех компонентов: " +"роутеров, обработчиков и системных сообщений." msgstr "" #: ../../root/api/app/index.rst:11 @@ -38,71 +36,63 @@ msgid "Инициализация" msgstr "" #: ../../root/api/app/index.rst:38 -msgid "Создает и настраивает экземпляр приложения ``Argenta``." +msgid "Создаёт и настраивает экземпляр приложения." msgstr "" #: ../../root/api/app/index.rst:40 -msgid "" -"``prompt``: Строка-приглашение, которая отображается перед вводом каждой" -" команды. По умолчанию: **\"What do you want to do?\\\\n\\\\n\"**." +msgid "``prompt``: Приглашение к вводу, отображаемое перед каждой командой." msgstr "" #: ../../root/api/app/index.rst:41 -msgid "" -"``initial_message``: Приветственное сообщение, которое выводится при " -"запуске приложения." +msgid "``initial_message``: Сообщение, выводимое при запуске приложения." msgstr "" #: ../../root/api/app/index.rst:42 -msgid "" -"``farewell_message``: Прощальное сообщение при завершении работы " -"приложения." +msgid "``farewell_message``: Сообщение, выводимое при выходе из приложения." msgstr "" #: ../../root/api/app/index.rst:43 -msgid "" -"``exit_command``: Сущность команды, которая будет маркирована как команда" -" для выхода из приложения." +msgid "``exit_command``: Команда, используемая для выхода из приложения." msgstr "" #: ../../root/api/app/index.rst:44 msgid "" -"``system_router_title``: Заголовок для системного роутера, который " -"содержит команду выхода и другие системные команды." +"``system_router_title``: Заголовок для системного роутера (содержит " +"команду выхода)." msgstr "" #: ../../root/api/app/index.rst:45 msgid "" -"``ignore_command_register``: Если **True** (по умолчанию), регистр " -"введенных команд будет игнорироваться при поиске обработчика." +"``ignore_command_register``: Если ``True``, регистр команд игнорируется " +"при поиске обработчика." msgstr "" #: ../../root/api/app/index.rst:46 msgid "" -"``dividing_line``: Объект, управляющий стилем разделительной линии. Может" -" быть **StaticDividingLine** или **DynamicDividingLine**." +"``dividing_line``: Стиль разделительной линии (``StaticDividingLine`` или" +" ``DynamicDividingLine``)." msgstr "" #: ../../root/api/app/index.rst:47 msgid "" -"``repeat_command_groups``: Если **True** (по умолчанию), описание " -"доступных команд будет выводиться перед каждым вводом." +"``repeat_command_groups``: Если ``True``, список доступных команд " +"выводится перед каждым вводом." msgstr "" #: ../../root/api/app/index.rst:48 msgid "" -"``override_system_messages``: Если **True** (по умолчанию), стандартное " -"форматирование системных сообщений (цвета, ASCII-арт) будет отключено." +"``override_system_messages``: Если ``True``, стандартное форматирование " +"(цвета, ASCII-арт) отключается." msgstr "" #: ../../root/api/app/index.rst:49 -msgid "``autocompleter``: Объект, отвечающий за логику автодополнения команд." +msgid "``autocompleter``: Объект, отвечающий за автодополнение команд." msgstr "" #: ../../root/api/app/index.rst:50 msgid "" -"``print_func``: Функция, используемая для вывода всех системных " -"сообщений. По умолчанию используется ``rich.console.Console().print``." +"``print_func``: Функция для вывода всех системных сообщений (по умолчанию" +" ``rich.print``)." msgstr "" #: ../../root/api/app/index.rst:55 @@ -111,8 +101,8 @@ msgstr "" #: ../../root/api/app/index.rst:59 msgid "" -"Регистрирует один ``Router`` в приложении. Все команды, определенные в " -"этом роутере, становятся доступными для вызова." +"Регистрирует роутер в приложении. Все команды из этого роутера становятся" +" доступными для вызова." msgstr "" #: ../../root/api/app/index.rst @@ -120,126 +110,322 @@ msgid "Parameters" msgstr "" #: ../../root/api/app/index.rst:61 -msgid "Объект роутера, который нужно зарегистрировать." +msgid "Экземпляр ``Router`` для регистрации." msgstr "" #: ../../root/api/app/index.rst:65 -msgid "" -"Регистрирует несколько роутеров одновременно. Является удобной оберткой " -"над ``include_router``." +msgid "Регистрирует несколько роутеров одновременно." msgstr "" #: ../../root/api/app/index.rst:67 -msgid "Последовательность объектов ``Router`` для регистрации." +msgid "Последовательность экземпляров ``Router`` для регистрации." msgstr "" #: ../../root/api/app/index.rst:71 msgid "" -"Добавляет дополнительное текстовое сообщение, которое будет выведено на " -"экран при запуске приложения, сразу после `initial_message`." +"Добавляет текстовое сообщение, которое выводится при запуске приложения " +"после `initial_message`." msgstr "" #: ../../root/api/app/index.rst:73 msgid "Строка с сообщением." msgstr "" -#: ../../root/api/app/index.rst:78 +#: ../../root/api/app/index.rst:76 +msgid "" +"Для вывода стандартных сообщений можно использовать готовые шаблоны из " +":ref:`PredefinedMessages `." +msgstr "" + +#: ../../root/api/app/index.rst:81 msgid "Методы установки обработчиков" msgstr "" -#: ../../root/api/app/index.rst:80 +#: ../../root/api/app/index.rst:83 msgid "" -"``App`` позволяет гибко настраивать реакцию на различные события, такие " -"как ошибки ввода или ввод неизвестной команды." +"``App`` позволяет настраивать реакцию на различные события, такие как " +"ошибки ввода или неизвестные команды." msgstr "" -#: ../../root/api/app/index.rst:83 +#: ../../root/api/app/index.rst:86 msgid "" "Подробнее о исключениях и их обработке в соответствующем :ref:`разделе " "документации `." msgstr "" -#: ../../root/api/app/index.rst:89 +#: ../../root/api/app/index.rst:92 +msgid "Устанавливает шаблон для форматирования строки описания команды." +msgstr "" + +#: ../../root/api/app/index.rst:94 msgid "" -"Устанавливает пользовательский шаблон для форматирования строки, " -"описывающей доступную команду (триггер + описание)." +"Обработчик принимает триггер команды (``str``) и её описание (``str``), а" +" возвращает отформатированную строку." msgstr "" -#: ../../root/api/app/index.rst:91 -msgid "``DescriptionMessageGenerator`` -> ``Callable[[str, str], str]``" +#: ../../root/api/app/index.rst:100 +msgid "Устанавливает обработчик для некорректного синтаксиса флагов." 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 "" -"Где первый аргумент - это триггер команды, а второй - ее описание, " -"возвращает строку, которая является форматированной строкой." +"`PredefinedMessages` — это перечисление (Enum), содержащее набор готовых " +"к использованию строковых сообщений. Они отформатированы с использованием" +" синтаксиса `rich` и предназначены для вывода стандартной информации, " +"такой как подсказки по использованию." msgstr "" -#: ../../root/api/app/index.rst:99 -msgid "" -"Устанавливает обработчик, который вызывается при некорректном синтаксисе " -"флагов в введенной команде." +#: ../../root/api/app/index.rst:151 +msgid "Реккомендуется использовать их при старте приложения." msgstr "" -#: ../../root/api/app/index.rst:101 ../../root/api/app/index.rst:111 -msgid "``NonStandardBehaviorHandler[str]`` -> ``Callable[[str], None]``" +#: ../../root/api/app/index.rst:177 +msgid "Строка: ``[b dim]Usage[/b dim]: [i] <[green]flags[/green]>[/i]``" msgstr "" -#: ../../root/api/app/index.rst:103 ../../root/api/app/index.rst:113 -msgid "" -"Где первый и единственный аргумент - это необработанная строка " -"пользовательского ввода." +#: ../../root/api/app/index.rst:179 +msgid "Отображается как: ``Usage: ``" msgstr "" -#: ../../root/api/app/index.rst:109 -msgid "" -"Устанавливает обработчик для ситуации, когда пользователь вводит один и " -"тот же флаг несколько раз." +#: ../../root/api/app/index.rst:183 +msgid "Строка: ``[b dim]Help[/b dim]: [i][/i] [b red]--help[/b red]``" msgstr "" -#: ../../root/api/app/index.rst:119 -msgid "" -"Устанавливает обработчик, который срабатывает, если введенная команда не " -"была найдена ни в одном из зарегистрированных роутеров." +#: ../../root/api/app/index.rst:185 +msgid "Отображается как: ``Help: --help``" msgstr "" -#: ../../root/api/app/index.rst:121 -msgid "" -"``NonStandardBehaviorHandler[InputCommand]`` -> " -"``Callable[[InputCommand], None]``" +#: ../../root/api/app/index.rst:189 +msgid "Строка: ``[b dim]Autocomplete[/b dim]: [i][/i] [bold]``" msgstr "" -#: ../../root/api/app/index.rst:123 -msgid "" -"Где первый и единственный аргумент - это распаршенный в объект " -"InputCommand ввод пользователя." +#: ../../root/api/app/index.rst:191 +msgid "Отображается как: ``Autocomplete: ``" msgstr "" -#: ../../root/api/app/index.rst:129 -msgid "" -"Устанавливает обработчик для случая, когда пользователь отправляет пустую" -" строку вместо команды." -msgstr "" +#~ msgid "" +#~ "Объект ``App`` является центральной сущностью" +#~ " библиотеки ``Argenta``. Он выступает в " +#~ "роли ядра вашего консольного приложения, " +#~ "отвечая за его конфигурацию, управление " +#~ "жизненным циклом, обработку команд и " +#~ "взаимодействие с пользователем. ``App`` " +#~ "координирует работу всех остальных " +#~ "компонентов, таких как роутеры, обработчики" +#~ " команд и системные сообщения." +#~ msgstr "" -#: ../../root/api/app/index.rst:131 -msgid "``EmptyCommandHandler`` -> ``Callable[[], None]``" -msgstr "" +#~ msgid "Создает и настраивает экземпляр приложения ``Argenta``." +#~ msgstr "" -#: ../../root/api/app/index.rst:133 -msgid "Не принимает и не возвращает ничего." -msgstr "" +#~ msgid "" +#~ "``prompt``: Строка-приглашение, которая " +#~ "отображается перед вводом каждой команды. " +#~ "По умолчанию: **\"What do you want " +#~ "to do?\\\\n\\\\n\"**." +#~ msgstr "" -#: ../../root/api/app/index.rst:139 -msgid "" -"Позволяет переопределить стандартное поведение при вызове команды выхода." -" По умолчанию просто выводится ``farewell_message``." -msgstr "" +#~ msgid "" +#~ "``initial_message``: Приветственное сообщение, " +#~ "которое выводится при запуске приложения." +#~ msgstr "" -#: ../../root/api/app/index.rst:141 -msgid "``NonStandardBehaviorHandler[Response]`` -> ``Callable[[Response], None]``" -msgstr "" +#~ msgid "" +#~ "``farewell_message``: Прощальное сообщение при " +#~ "завершении работы приложения." +#~ msgstr "" -#: ../../root/api/app/index.rst:143 -msgid "Где первый и единственный аргумент - это объект ответа, ``Response``." -msgstr "" +#~ msgid "" +#~ "``exit_command``: Сущность команды, которая " +#~ "будет маркирована как команда для выхода" +#~ " из приложения." +#~ msgstr "" + +#~ msgid "" +#~ "``system_router_title``: Заголовок для системного" +#~ " роутера, который содержит команду выхода" +#~ " и другие системные команды." +#~ msgstr "" + +#~ msgid "" +#~ "``ignore_command_register``: Если **True** (по " +#~ "умолчанию), регистр введенных команд будет " +#~ "игнорироваться при поиске обработчика." +#~ msgstr "" + +#~ msgid "" +#~ "``dividing_line``: Объект, управляющий стилем " +#~ "разделительной линии. Может быть " +#~ "**StaticDividingLine** или **DynamicDividingLine**." +#~ msgstr "" + +#~ msgid "" +#~ "``repeat_command_groups``: Если **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 "" diff --git a/docs/locales/en/LC_MESSAGES/root/api/bridge.po b/docs/locales/en/LC_MESSAGES/root/api/bridge.po new file mode 100644 index 0000000..52c5878 --- /dev/null +++ b/docs/locales/en/LC_MESSAGES/root/api/bridge.po @@ -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 , 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 \n" +"Language: en\n" +"Language-Team: en \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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/command/flag.po b/docs/locales/en/LC_MESSAGES/root/api/command/flag.po new file mode 100644 index 0000000..4fd9c96 --- /dev/null +++ b/docs/locales/en/LC_MESSAGES/root/api/command/flag.po @@ -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 , 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 \n" +"Language: en\n" +"Language-Team: en \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 ` " +"— перечисление, определяющее типы допустимых значений." +msgstr "" + +#: ../../root/api/command/flag.rst:12 +msgid "" +"Документация по :ref:`InputFlag ` — объект " +"обработанного флага, введённого пользователем." +msgstr "" + +#: ../../root/api/command/flag.rst:14 +msgid "" +":ref:`Общая информация ` о флагах и их использовании в " +"приложении ``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`." +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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/command/flags.po b/docs/locales/en/LC_MESSAGES/root/api/command/flags.po index 8d36684..0cf3df3 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/command/flags.po +++ b/docs/locales/en/LC_MESSAGES/root/api/command/flags.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -23,15 +23,194 @@ msgstr "" msgid "Flags" msgstr "" +#: ../../root/api/command/flags.rst:6 +msgid "" +"`Flags` — это коллекция флагов команды. Её основная задача — группировать" +" и управлять набором флагов, зарегистрированных для конкретной команды. " +"`Flags` служит контейнером, который позволяет удобно добавлять, " +"извлекать, итерировать флаги и проверять их наличие." +msgstr "" + #: ../../root/api/command/flags.rst:8 -msgid "Flag" +msgid "" +"`Flags` наследуется от базового класса `BaseFlags` и специализируется на " +"работе с объектами типа `Flag`. Этот класс используется при создании " +"команд с несколькими флагами и предоставляет интерфейс для управления " +"ими." msgstr "" #: ../../root/api/command/flags.rst:12 -msgid "InputFlags" +msgid "" +"Документация по отдельным флагам (:ref:`Flag `, " +":ref:`InputFlag `)" msgstr "" -#: ../../root/api/command/flags.rst:18 -msgid "InputFlag" +#: ../../root/api/command/flags.rst:14 +msgid "" +"Документация по :ref:`InputFlags ` — " +"коллекция обработанных флагов, введённых пользователем." msgstr "" +#: ../../root/api/command/flags.rst:16 +msgid "" +":ref:`Общая информация ` о флагах и их использовании в " +"приложении ``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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/command/index.po b/docs/locales/en/LC_MESSAGES/root/api/command/index.po index 2a3b756..aeadacb 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/command/index.po +++ b/docs/locales/en/LC_MESSAGES/root/api/command/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -23,7 +23,171 @@ msgstr "" msgid "Command" 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 ` и :ref:`Флаги " +"вводимых команд `." +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" msgstr "" +#: ../../root/api/command/index.rst:115 +msgid "" +"``InputCommand`` представляет собой обработанную команду, введённую " +"пользователем. Этот внутренний класс создаётся автоматически при " +"обработке пользовательского ввода. Прямая работа с ним возможна при " +"создании пользовательского обработчика для неизвестных команд." +msgstr "" + +#: ../../root/api/command/index.rst:118 +msgid "" +"Подробнее о пользовательских обработчиках исключений см. :ref:`здесь " +"`." +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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/command/input_flag.po b/docs/locales/en/LC_MESSAGES/root/api/command/input_flag.po new file mode 100644 index 0000000..a546a80 --- /dev/null +++ b/docs/locales/en/LC_MESSAGES/root/api/command/input_flag.po @@ -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 , 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 \n" +"Language: en\n" +"Language-Team: en \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 ` — класс для " +"регистрации флага." +msgstr "" + +#: ../../root/api/command/input_flag.rst:12 +msgid "" +"Документация по :ref:`ValidationStatus " +"` — статусы валидации флагов." +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 `." +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`." +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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/command/input_flags.po b/docs/locales/en/LC_MESSAGES/root/api/command/input_flags.po new file mode 100644 index 0000000..e109b76 --- /dev/null +++ b/docs/locales/en/LC_MESSAGES/root/api/command/input_flags.po @@ -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 , 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 \n" +"Language: en\n" +"Language-Team: en \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 `, " +":ref:`InputFlag `)" +msgstr "" + +#: ../../root/api/command/input_flags.rst:14 +msgid "" +"Документация по :ref:`InputFlags ` — " +"коллекция обработанных флагов, введённых пользователем." +msgstr "" + +#: ../../root/api/command/input_flags.rst:16 +msgid "" +"Документация по :ref:`Response ` — объект ответа, " +"содержащий ``InputFlags``" +msgstr "" + +#: ../../root/api/command/input_flags.rst:18 +msgid "" +":ref:`Общая информация ` о флагах и их использовании в " +"приложении ``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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/command/possible_values.po b/docs/locales/en/LC_MESSAGES/root/api/command/possible_values.po index 9ed112a..77a7501 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/command/possible_values.po +++ b/docs/locales/en/LC_MESSAGES/root/api/command/possible_values.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -19,11 +19,177 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" -#: ../../root/api/command/possible_values.rst:4 +#: ../../root/api/command/possible_values.rst:5 msgid "PossibleValues" msgstr "" -#: ../../root/api/command/possible_values.rst:6 -msgid "mda" +#: ../../root/api/command/possible_values.rst:7 +msgid "" +"`PossibleValues` — это перечисление (`Enum`), которое определяет " +"специальные режимы валидации для значений флагов. Его задача — " +"предоставить стандартные константы для управления поведением флагов. " +"`PossibleValues` используется в параметре `possible_values` класса " +"`Flag`, чтобы указать, может ли флаг принимать значения и какие " +"ограничения на них накладываются." 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:`здесь `." +msgstr "" + +#: ../../root/api/command/possible_values.rst:16 +msgid "" +"Документация по :ref:`Flag ` — класс флага, " +"использующий `PossibleValues`." +msgstr "" + +#: ../../root/api/command/possible_values.rst:18 +msgid "" +"Документация по :ref:`PredefinedFlags " +"` — готовые флаги с примерами " +"использования `PossibleValues`." +msgstr "" + +#: ../../root/api/command/possible_values.rst:20 +msgid "" +":ref:`Общая информация ` о флагах и их использовании в " +"приложении ``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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/command/validation_status.po b/docs/locales/en/LC_MESSAGES/root/api/command/validation_status.po index 18ac021..a026d04 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/command/validation_status.po +++ b/docs/locales/en/LC_MESSAGES/root/api/command/validation_status.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -24,6 +24,151 @@ msgid "ValidationStatus" msgstr "" #: ../../root/api/command/validation_status.rst:6 -msgid "case" +msgid "" +"`ValidationStatus` — это перечисление (`Enum`), которое определяет " +"состояние валидации флага. Его задача — предоставить стандартные " +"константы для отображения результата проверки. `ValidationStatus` " +"используется в атрибуте `status` класса `InputFlag`, чтобы сообщить, " +"прошла ли валидация успешно." 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 ` — класс " +"введённого флага, использующий `ValidationStatus`." +msgstr "" + +#: ../../root/api/command/validation_status.rst:18 +msgid "" +"Документация по :ref:`Flag ` — класс флага с " +"правилами валидации." +msgstr "" + +#: ../../root/api/command/validation_status.rst:20 +msgid "" +"Документация по :ref:`PossibleValues ` " +"— типы допустимых значений." +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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/index.po b/docs/locales/en/LC_MESSAGES/root/api/index.po index baeed85..ae85bae 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/index.po +++ b/docs/locales/en/LC_MESSAGES/root/api/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -28,44 +28,193 @@ msgid "Описание раздела" msgstr "" #: ../../root/api/index.rst:10 -msgid "" -"В данном разделе приводятся сведения о публичной части интерфейса " -"библиотеки:" +msgid "В этом разделе описан публичный API библиотеки. Он включает:" msgstr "" #: ../../root/api/index.rst:12 -msgid "" -"Классы и функции, предназначенные для прямой интеграции в сторонние " -"приложения." +msgid "Классы и функции для интеграции в ваши приложения." msgstr "" #: ../../root/api/index.rst:13 -msgid "" -"Советы по совместимости, ограничения и поддерживаемые сценарии " -"использования." +msgid "Рекомендации по использованию и поддерживаемые сценарии." msgstr "" #: ../../root/api/index.rst:14 -msgid "" -"Примеры типовой интеграции, подробные сигнатуры методов и описание " -"возвращаемых сущностей." +msgid "Примеры кода, подробные сигнатуры и описание возвращаемых значений." msgstr "" #: ../../root/api/index.rst:15 -msgid "" -"Гарантии стабильности API, поддержка и обратная совместимость между " -"версиями." +msgid "Гарантии стабильности и обратной совместимости." msgstr "" #: ../../root/api/index.rst:17 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 ` — Основной класс приложения." +msgstr "" + +#: ../../root/api/index.rst:35 +msgid "" +":ref:`Orchestrator ` — Класс для управления " +"жизненным циклом." +msgstr "" + +#: ../../root/api/index.rst:36 +msgid "" +":ref:`Router ` — Класс для группировки и регистрации " +"команд." +msgstr "" + +#: ../../root/api/index.rst:37 +msgid ":ref:`Command ` — Класс для создания команд." +msgstr "" + +#: ../../root/api/index.rst:38 +msgid "" +":ref:`Response ` — Объект ответа, передаваемый в " +"обработчики." +msgstr "" + +#: ../../root/api/index.rst:41 +msgid "Команды и флаги" +msgstr "" + +#: ../../root/api/index.rst:54 +msgid ":ref:`Flag ` — Класс для описания флага." +msgstr "" + +#: ../../root/api/index.rst:55 +msgid ":ref:`Flags ` — Коллекция для регистрации флагов." +msgstr "" + +#: ../../root/api/index.rst:56 +msgid "" +":ref:`InputFlag ` — Класс для введённого " +"пользователем флага." +msgstr "" + +#: ../../root/api/index.rst:57 +msgid "" +":ref:`InputFlags ` — Коллекция введённых " +"флагов." +msgstr "" + +#: ../../root/api/index.rst:58 +msgid "" +":ref:`PossibleValues ` — Правила " +"валидации значений флагов." +msgstr "" + +#: ../../root/api/index.rst:59 +msgid "" +":ref:`ValidationStatus ` — Статусы " +"валидации флагов." +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 ` — Базовый класс для " +"автодополнения." +msgstr "" + +#: ../../root/api/index.rst:74 +msgid "" +":ref:`StaticDividingLine ` — Статическая " +"разделительная линия." +msgstr "" + +#: ../../root/api/index.rst:75 +msgid "" +":ref:`DynamicDividingLine ` — Динамическая " +"разделительная линия." +msgstr "" + +#: ../../root/api/index.rst:76 +msgid "``PredefinedMessages`` — Готовые системные сообщения." +msgstr "" + +#: ../../root/api/index.rst:79 +msgid "Внедрение зависимостей" +msgstr "" + +#: ../../root/api/index.rst:87 +msgid "" +":ref:`FromDishka ` — Маркер для внедрения " +"зависимостей." +msgstr "" + +#: ../../root/api/index.rst:88 +msgid "" +":ref:`inject ` — Декоратор для асинхронного " +"внедрения." msgstr "" #~ msgid "Публичный API" #~ msgstr "" +#~ msgid "" +#~ "В данном разделе приводятся сведения о" +#~ " публичной части интерфейса библиотеки:" +#~ msgstr "" + +#~ msgid "" +#~ "Классы и функции, предназначенные для " +#~ "прямой интеграции в сторонние приложения." +#~ msgstr "" + +#~ msgid "" +#~ "Советы по совместимости, ограничения и " +#~ "поддерживаемые сценарии использования." +#~ msgstr "" + +#~ msgid "" +#~ "Примеры типовой интеграции, подробные " +#~ "сигнатуры методов и описание возвращаемых " +#~ "сущностей." +#~ msgstr "" + +#~ msgid "" +#~ "Гарантии стабильности API, поддержка и " +#~ "обратная совместимость между версиями." +#~ msgstr "" + +#~ msgid "" +#~ "Интерфейсы, не указанные в этом разделе," +#~ " считаются внутренними и не подлежат " +#~ "использованию вне самой библиотеки. При " +#~ "разработке собственных решений рекомендуем " +#~ "обращаться именно к описанным здесь " +#~ "компонентам — это даст стабильность и" +#~ " гарантии на будущее развитие ваших " +#~ "продуктов с использованием ``Argenta``." +#~ msgstr "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argparser.po b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argparser.po index 2baf285..c09d61f 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argparser.po +++ b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argparser.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,12 +25,11 @@ msgstr "" #: ../../root/api/orchestrator/argparser.rst:6 msgid "" -"Объект ``ArgParser`` в ``Argenta`` предназначен для разбора и обработки " -"**аргументов командной строки**, которые передаются вашему приложению при" -" его запуске. Важно не путать их с флагами команд, которые пользователь " -"вводит в интерактивном режиме работы приложения. ``ArgParser`` позволяет " -"вашему приложению получать внешнюю конфигурацию в момент старта, " -"например, путь к файлу настроек, флаги для отладки или режим запуска." +"``ArgParser`` предназначен для обработки **аргументов командной строки**," +" передаваемых приложению при запуске. Важно не путать их с флагами, " +"которые пользователь вводит в интерактивном режиме. ``ArgParser`` " +"позволяет получать внешнюю конфигурацию в момент старта (например, путь к" +" файлу настроек, флаги отладки или режим запуска)." msgstr "" #: ../../root/api/orchestrator/argparser.rst:11 @@ -38,30 +37,25 @@ msgid "Инициализация" msgstr "" #: ../../root/api/orchestrator/argparser.rst:21 -msgid "Создает экземпляр парсера аргументов командной строки." +msgid "Создаёт экземпляр парсера аргументов командной строки." msgstr "" #: ../../root/api/orchestrator/argparser.rst:23 msgid "" -"``processed_args``: Список аргументов, которые будут обрабатываться и " -"парситься при запуске приложения, подробнее :ref:`тут " -"`." +"``processed_args``: Список аргументов для обработки при запуске " +"приложения. Подробнее см. :ref:`здесь `." msgstr "" #: ../../root/api/orchestrator/argparser.rst:24 -msgid "``name``: Имя приложения, которое будет отображаться в справке." +msgid "``name``: Имя приложения для отображения в справке." msgstr "" #: ../../root/api/orchestrator/argparser.rst:25 -msgid "" -"``description``: Описание приложения, которое будет отображаться в " -"справке." +msgid "``description``: Описание приложения для отображения в справке." msgstr "" #: ../../root/api/orchestrator/argparser.rst:26 -msgid "" -"``epilog``: Дополнительная информация, которая будет отображаться в конце" -" справки." +msgid "``epilog``: Дополнительная информация для отображения в конце справки." msgstr "" #: ../../root/api/orchestrator/argparser.rst:29 @@ -70,24 +64,22 @@ msgstr "" #: ../../root/api/orchestrator/argparser.rst:33 msgid "" -"Экземпляр класса ``ArgSpace``, который содержит все обработанные " -"аргументы командной строки, подробнее :ref:`тут " -"`." +"Экземпляр ``ArgSpace``, содержащий все обработанные аргументы командной " +"строки. Подробнее см. :ref:`здесь `." msgstr "" #: ../../root/api/orchestrator/argparser.rst:36 msgid "" -"До инициализации инстанса ``Orchestrator``, которому в конструктор был " -"передан соответствующий экземпляр ``ArgParser``, атрибут " -"``parsed_argspace`` будет равен пустому ``ArgSpace``." +"До инициализации ``Orchestrator``, в конструктор которого был передан " +"экземпляр ``ArgParser``, атрибут ``parsed_argspace`` будет содержать " +"пустой ``ArgSpace``." msgstr "" #: ../../root/api/orchestrator/argparser.rst:38 msgid "" -"Парсинг и валидация аргументов командной строки происходит при " -"инициализации ``Orchestrator``, соответственно использование атрибута " -"``parsed_argspace`` **целесообразно только после инициализации** " -"``Orchestrator``." +"Парсинг и валидация аргументов происходят при инициализации " +"``Orchestrator``, поэтому использовать ``parsed_argspace`` " +"**целесообразно только после** этого." msgstr "" #: ../../root/api/orchestrator/argparser.rst:43 @@ -96,9 +88,9 @@ msgstr "" #: ../../root/api/orchestrator/argparser.rst:45 msgid "" -"Использование атрибута ``parsed_argspace`` рекомендуется только на этапе " -"настройки приложения, в хэндлерах лучшей практикой является получение " -"``ArgSpace`` через ``di``, подробнее :ref:`тут " +"Использовать атрибут ``parsed_argspace`` рекомендуется только на этапе " +"настройки приложения. В обработчиках лучшей практикой является получение " +"``ArgSpace`` через DI. Подробнее см. :ref:`здесь " "`." msgstr "" @@ -146,3 +138,71 @@ msgstr "" #~ msgid "nu" #~ msgstr "" +#~ msgid "" +#~ "Объект ``ArgParser`` в ``Argenta`` " +#~ "предназначен для разбора и обработки " +#~ "**аргументов командной строки**, которые " +#~ "передаются вашему приложению при его " +#~ "запуске. Важно не путать их с " +#~ "флагами команд, которые пользователь вводит" +#~ " в интерактивном режиме работы приложения." +#~ " ``ArgParser`` позволяет вашему приложению " +#~ "получать внешнюю конфигурацию в момент " +#~ "старта, например, путь к файлу настроек," +#~ " флаги для отладки или режим запуска." +#~ msgstr "" + +#~ msgid "Создает экземпляр парсера аргументов командной строки." +#~ msgstr "" + +#~ msgid "" +#~ "``processed_args``: Список аргументов, которые " +#~ "будут обрабатываться и парситься при " +#~ "запуске приложения, подробнее :ref:`тут " +#~ "`." +#~ msgstr "" + +#~ msgid "``name``: Имя приложения, которое будет отображаться в справке." +#~ msgstr "" + +#~ msgid "" +#~ "``description``: Описание приложения, которое " +#~ "будет отображаться в справке." +#~ msgstr "" + +#~ msgid "" +#~ "``epilog``: Дополнительная информация, которая " +#~ "будет отображаться в конце справки." +#~ msgstr "" + +#~ msgid "" +#~ "Экземпляр класса ``ArgSpace``, который " +#~ "содержит все обработанные аргументы командной" +#~ " строки, подробнее :ref:`тут " +#~ "`." +#~ msgstr "" + +#~ msgid "" +#~ "До инициализации инстанса ``Orchestrator``, " +#~ "которому в конструктор был передан " +#~ "соответствующий экземпляр ``ArgParser``, атрибут " +#~ "``parsed_argspace`` будет равен пустому " +#~ "``ArgSpace``." +#~ msgstr "" + +#~ msgid "" +#~ "Парсинг и валидация аргументов командной " +#~ "строки происходит при инициализации " +#~ "``Orchestrator``, соответственно использование " +#~ "атрибута ``parsed_argspace`` **целесообразно только" +#~ " после инициализации** ``Orchestrator``." +#~ msgstr "" + +#~ msgid "" +#~ "Использование атрибута ``parsed_argspace`` " +#~ "рекомендуется только на этапе настройки " +#~ "приложения, в хэндлерах лучшей практикой " +#~ "является получение ``ArgSpace`` через ``di``," +#~ " подробнее :ref:`тут `." +#~ msgstr "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argspace.po b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argspace.po index dfaa7ff..1e39b05 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argspace.po +++ b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argspace.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,18 +25,15 @@ msgstr "" #: ../../root/api/orchestrator/argspace.rst:6 msgid "" -"Объект ``ArgSpace`` является контейнером для хранения и управления " -"распаршенными аргументами командной строки в приложении ``Argenta``. Его " -"основная задача — предоставить удобный интерфейс для доступа к значениям " -"аргументов, переданных при запуске приложения." +"``ArgSpace`` — это контейнер для хранения и управления обработанными " +"аргументами командной строки. Его основная задача — предоставить удобный " +"интерфейс для доступа к значениям, переданным при запуске приложения." msgstr "" #: ../../root/api/orchestrator/argspace.rst:8 msgid "" -"``ArgSpace`` автоматически создается после парсинга аргументов через " -"``ArgParser`` и содержит коллекцию объектов ``InputArgument``, " -"представляющих собой финальные значения всех переданных параметров " -"командной строки." +"``ArgSpace`` создаётся автоматически после обработки аргументов с помощью" +" `ArgParser` и содержит коллекцию объектов `InputArgument`." msgstr "" #: ../../root/api/orchestrator/argspace.rst:13 @@ -44,13 +41,13 @@ msgid "Инициализация" msgstr "" #: ../../root/api/orchestrator/argspace.rst:20 -msgid "Создает новое пространство аргументов." +msgid "Создаёт новое пространство аргументов." msgstr "" #: ../../root/api/orchestrator/argspace.rst:22 msgid "" -"``all_arguments`` : Список распаршенных аргументов в виде объектов " -"``InputArgument``. Каждый элемент содержит имя, значение и тип исходного " +"``all_arguments``: Список обработанных аргументов в виде объектов " +"`InputArgument`. Каждый элемент содержит имя, значение и тип исходного " "аргумента." msgstr "" @@ -60,9 +57,8 @@ msgstr "" #: ../../root/api/orchestrator/argspace.rst:28 msgid "" -"Список всех распаршенных аргументов типа ``InputArgument``. Содержит все " -"аргументы, переданные при запуске приложения, включая значения по " -"умолчанию для не указанных параметров." +"Список всех обработанных аргументов типа `InputArgument`, включая " +"значения по умолчанию для не указанных параметров." msgstr "" #: ../../root/api/orchestrator/argspace.rst:33 @@ -74,7 +70,7 @@ msgid "get_by_name" msgstr "" #: ../../root/api/orchestrator/argspace.rst:43 -msgid "Возвращает аргумент по его имени." +msgid "Возвращает аргумент по имени." msgstr "" #: ../../root/api/orchestrator/argspace.rst @@ -82,7 +78,7 @@ msgid "param name" msgstr "" #: ../../root/api/orchestrator/argspace.rst:45 -msgid "Имя искомого аргумента" +msgid "Имя искомого аргумента." msgstr "" #: ../../root/api/orchestrator/argspace.rst @@ -90,16 +86,13 @@ msgid "return" msgstr "" #: ../../root/api/orchestrator/argspace.rst:46 -msgid "" -"Объект ``InputArgument`` с указанным именем или ``None``, если аргумент " -"не найден" +msgid "Объект `InputArgument` или `None`, если аргумент не найден." msgstr "" #: ../../root/api/orchestrator/argspace.rst:48 msgid "" -"Метод выполняет линейный поиск по списку ``all_arguments`` и возвращает " -"аргумент с соответствующим именем. Если аргумент не найден, возвращается " -"``None``." +"Метод выполняет линейный поиск по списку `all_arguments`. Если аргумент " +"не найден, возвращается `None`." msgstr "" #: ../../root/api/orchestrator/argspace.rst:50 @@ -112,7 +105,7 @@ msgid "get_by_type" msgstr "" #: ../../root/api/orchestrator/argspace.rst:79 -msgid "Получает все аргументы определенного типа." +msgid "Возвращает все аргументы определённого типа." msgstr "" #: ../../root/api/orchestrator/argspace.rst @@ -120,54 +113,144 @@ msgid "param arg_type" msgstr "" #: ../../root/api/orchestrator/argspace.rst:81 -msgid "Тип аргумента (``BooleanArgument`` или ``ValueArgument``)" +msgid "Тип аргумента (`BooleanArgument` или `ValueArgument`)." msgstr "" #: ../../root/api/orchestrator/argspace.rst:82 -msgid "" -"Список аргументов указанного типа или пустой список, если аргументы не " -"найдены" +msgid "Список аргументов указанного типа или пустой список." msgstr "" #: ../../root/api/orchestrator/argspace.rst:84 msgid "" -"Метод фильтрует ``all_arguments`` по атрибуту ``founder_class`` каждого " -"``InputArgument`` и возвращает только те аргументы, которые были созданы " -"из указанного типа." +"Метод фильтрует `all_arguments` по атрибуту `founder_class` и возвращает " +"аргументы, созданные из указанного типа." msgstr "" -#: ../../root/api/orchestrator/argspace.rst:109 +#: ../../root/api/orchestrator/argspace.rst:94 msgid "InputArgument" msgstr "" -#: ../../root/api/orchestrator/argspace.rst:112 +#: ../../root/api/orchestrator/argspace.rst:97 msgid "" -"Документация по ``InputArgument`` находится :ref:`тут " -"`" +"Документация по ``InputArgument`` находится :ref:`здесь " +"`." msgstr "" -#: ../../root/api/orchestrator/argspace.rst:117 +#: ../../root/api/orchestrator/argspace.rst:102 msgid "Примеры испольования" msgstr "" -#: ../../root/api/orchestrator/argspace.rst:119 +#: ../../root/api/orchestrator/argspace.rst:104 msgid "" -"``ArgSpace`` используется для доступа к значениям аргументов после " -"запуска приложения. Типичный сценарий работы включает парсинг аргументов " -"через ``ArgParser`` и последующее извлечение значений из ``ArgSpace``." +"`ArgSpace` используется для доступа к значениям аргументов после запуска " +"приложения. Типичный сценарий включает обработку аргументов через " +"`ArgParser` и последующее извлечение значений из `ArgSpace`." msgstr "" -#: ../../root/api/orchestrator/argspace.rst:121 +#: ../../root/api/orchestrator/argspace.rst:106 msgid "**Полный пример:**" msgstr "" -#: ../../root/api/orchestrator/argspace.rst:126 +#: ../../root/api/orchestrator/argspace.rst:111 msgid "" -"Доступ к аргументам из хэндлеров осуществляется с помощью ``di``, " -"подробнее :ref:`тут `." +"Доступ к аргументам из обработчиков осуществляется с помощью DI. " +"Подробнее см. :ref:`здесь `." msgstr "" -#: ../../root/api/orchestrator/argspace.rst:131 +#: ../../root/api/orchestrator/argspace.rst:116 msgid "**Запуск приложения:**" 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:`тут `" +#~ msgstr "" + +#~ msgid "" +#~ "``ArgSpace`` используется для доступа к " +#~ "значениям аргументов после запуска приложения." +#~ " Типичный сценарий работы включает парсинг" +#~ " аргументов через ``ArgParser`` и " +#~ "последующее извлечение значений из " +#~ "``ArgSpace``." +#~ msgstr "" + +#~ msgid "" +#~ "Доступ к аргументам из хэндлеров " +#~ "осуществляется с помощью ``di``, подробнее " +#~ ":ref:`тут `." +#~ msgstr "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/arguments.po b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/arguments.po index 54d4403..973130b 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/arguments.po +++ b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/arguments.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,16 +25,15 @@ msgstr "" #: ../../root/api/orchestrator/arguments.rst:6 msgid "" -"Модуль ``Arguments`` предоставляет набор классов для работы с аргументами" -" командной строки при запуске приложения ``Argenta``. Эти аргументы " -"позволяют настраивать поведение приложения на этапе его старта, передавая" -" различные параметры конфигурации через интерфейс командной строки." +"Модуль ``Arguments`` предоставляет классы для работы с аргументами " +"командной строки. Они позволяют настраивать поведение приложения в момент" +" его запуска, передавая различные параметры конфигурации." msgstr "" #: ../../root/api/orchestrator/arguments.rst:8 msgid "" -"Аргументы регистрируются в ``ArgParser`` и парсятся при запуске " -"приложения, становясь доступными через объект ``ArgSpace``." +"Аргументы регистрируются в `ArgParser` и после обработки становятся " +"доступными в объекте `ArgSpace`." msgstr "" #: ../../root/api/orchestrator/arguments.rst:13 @@ -43,13 +42,12 @@ msgstr "" #: ../../root/api/orchestrator/arguments.rst:15 msgid "" -"Класс для аргументов командной строки, требующих передачи значения. " -"Используется для параметров конфигурации, которым необходимо указать " -"конкретное значение при запуске приложения." +"Класс для аргументов, требующих передачи значения. Используется для " +"параметров конфигурации, которым необходимо указать значение при запуске." msgstr "" #: ../../root/api/orchestrator/arguments.rst:30 -msgid "Создает аргумент командной строки, требующий значения." +msgid "Создаёт аргумент командной строки, требующий значения." msgstr "" #: ../../root/api/orchestrator/arguments.rst @@ -68,7 +66,7 @@ msgstr "" #: ../../root/api/orchestrator/arguments.rst:33 #: ../../root/api/orchestrator/arguments.rst:101 -msgid "Префикс аргумента, по умолчанию ``--``" +msgid "Префикс (по умолчанию ``--``)" msgstr "" #: ../../root/api/orchestrator/arguments.rst @@ -77,7 +75,7 @@ msgstr "" #: ../../root/api/orchestrator/arguments.rst:34 #: ../../root/api/orchestrator/arguments.rst:102 -msgid "Сообщение справки, отображаемое при ``--help``" +msgid "Сообщение для справки (``--help``)" msgstr "" #: ../../root/api/orchestrator/arguments.rst @@ -85,9 +83,7 @@ msgid "param possible_values" msgstr "" #: ../../root/api/orchestrator/arguments.rst:35 -msgid "" -"Список допустимых значений для аргумента. Передается в параметр " -"``choices`` ArgumentParser" +msgid "Список допустимых значений (передаётся в `choices` `ArgumentParser`)" msgstr "" #: ../../root/api/orchestrator/arguments.rst @@ -95,7 +91,7 @@ msgid "param default" msgstr "" #: ../../root/api/orchestrator/arguments.rst:36 -msgid "Значение по умолчанию, используемое если аргумент не передан при запуске" +msgid "Значение по умолчанию, если аргумент не передан" msgstr "" #: ../../root/api/orchestrator/arguments.rst @@ -103,9 +99,7 @@ msgid "param is_required" msgstr "" #: ../../root/api/orchestrator/arguments.rst:37 -msgid "" -"Обязатялен ли аргумент. Если ``True``, приложение не запустится без этого" -" аргумента" +msgid "Если ``True``, аргумент становится обязательным" msgstr "" #: ../../root/api/orchestrator/arguments.rst @@ -114,7 +108,7 @@ msgstr "" #: ../../root/api/orchestrator/arguments.rst:38 #: ../../root/api/orchestrator/arguments.rst:103 -msgid "Является ли аргумент устаревшим" +msgid "Если ``True``, помечает аргумент как устаревший" msgstr "" #: ../../root/api/orchestrator/arguments.rst:40 @@ -133,14 +127,12 @@ msgstr "" #: ../../root/api/orchestrator/arguments.rst:86 msgid "" -"Класс для булевых аргументов командной строки, которые не требуют " -"передачи значения. Наличие или отсутствие аргумента при запуске " -"определяет состояние распаршенных аргументов(``True`` при наличии и " -"``False`` при отсутствии)." +"Класс для булевых аргументов, не требующих значения. Их наличие при " +"запуске устанавливает значение в `True`, отсутствие — в `False`." msgstr "" #: ../../root/api/orchestrator/arguments.rst:98 -msgid "Создает булевый аргумент командной строки без значения." +msgid "Создаёт булев аргумент командной строки без значения." msgstr "" #: ../../root/api/orchestrator/arguments.rst:147 @@ -149,20 +141,20 @@ msgstr "" #: ../../root/api/orchestrator/arguments.rst:150 msgid "" -"``InputArgument`` непосредственно связан и является наполнителем " -"контейнера ``ArgSpace``, подробнее про него :ref:`тут " +"``InputArgument`` напрямую связан с контейнером ``ArgSpace`` и является " +"его наполнителем. Подробнее о нём см. :ref:`здесь " "`." msgstr "" #: ../../root/api/orchestrator/arguments.rst:152 msgid "" -"Представляет собой распаршенный аргумент командной строки после запуска " -"приложения. Этот класс используется внутри объекта ``ArgSpace`` для " -"хранения значений аргументов, полученных при парсинге." +"Представляет собой обработанный аргумент командной строки. Этот класс " +"используется внутри `ArgSpace` для хранения значений, полученных после " +"парсинга." msgstr "" #: ../../root/api/orchestrator/arguments.rst:163 -msgid "Создает экземпляр распарсенного входного аргумента." +msgid "Создаёт экземпляр обработанного входного аргумента." msgstr "" #: ../../root/api/orchestrator/arguments.rst @@ -171,8 +163,8 @@ msgstr "" #: ../../root/api/orchestrator/arguments.rst:166 msgid "" -"Значение аргумента. Для ``BooleanArgument`` всегда ``True`` если флаг " -"передан, для ``ValueArgument`` — строка со значением" +"Значение аргумента. Для `BooleanArgument` — `True`, если флаг передан; " +"для `ValueArgument` — строка со значением" msgstr "" #: ../../root/api/orchestrator/arguments.rst @@ -181,54 +173,179 @@ msgstr "" #: ../../root/api/orchestrator/arguments.rst:167 msgid "" -"Класс-родитель, из которого был создан этот аргумент (``BooleanArgument``" -" или ``ValueArgument``)" +"Класс-родитель, из которого был создан аргумент (`BooleanArgument` или " +"`ValueArgument`)" msgstr "" #: ../../root/api/orchestrator/arguments.rst:169 msgid "**Атрибуты:**" msgstr "" -#: ../../root/api/orchestrator/arguments.rst:173 +#: ../../root/api/orchestrator/arguments.rst:174 msgid "" -"Имя аргумента в виде строки. Соответствует имени, указанному при создании" -" ``ValueArgument`` или ``BooleanArgument``." +"Имя аргумента, указанное при создании `ValueArgument` или " +"`BooleanArgument`." msgstr "" -#: ../../root/api/orchestrator/arguments.rst:177 -msgid "Значение аргумента. Тип значения зависит от исходного класса аргумента:" -msgstr "" - -#: ../../root/api/orchestrator/arguments.rst:179 -msgid "Для ``BooleanArgument``: ``True`` если флаг был передан при запуске" +#: ../../root/api/orchestrator/arguments.rst:178 +msgid "Значение аргумента. Тип зависит от исходного класса:" msgstr "" #: ../../root/api/orchestrator/arguments.rst:180 +msgid "Для `BooleanArgument`: `True`, если флаг был передан." +msgstr "" + +#: ../../root/api/orchestrator/arguments.rst:181 msgid "" -"Для ``ValueArgument``: строка с переданным значением или значением по " +"Для `ValueArgument`: строка с переданным значением или значением по " "умолчанию" msgstr "" -#: ../../root/api/orchestrator/arguments.rst:184 +#: ../../root/api/orchestrator/arguments.rst:185 msgid "" -"Ссылка на класс, из которого был создан этот аргумент. Используется для " -"определения типа аргумента и фильтрации в методе ``get_by_type()``." +"Ссылка на класс-родитель. Используется для определения типа и фильтрации " +"в методе `get_by_type()`." msgstr "" -#: ../../root/api/orchestrator/arguments.rst:186 +#: ../../root/api/orchestrator/arguments.rst:187 msgid "**Методы:**" msgstr "" -#: ../../root/api/orchestrator/arguments.rst:190 -msgid "" -"Возвращает строковое представление аргумента в формате " -"``InputArgument(name=value)``." +#: ../../root/api/orchestrator/arguments.rst:191 +msgid "Возвращает строковое представление в формате `InputArgument(name=value)`." msgstr "" -#: ../../root/api/orchestrator/arguments.rst:200 -msgid "Возвращает техническое представление объекта в виде строки." +#: ../../root/api/orchestrator/arguments.rst:201 +msgid "Возвращает техническое представление объекта." msgstr "" #~ msgid "prikol" #~ 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:`тут " +#~ "`." +#~ 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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/index.po b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/index.po index 76f7b0f..e1e781f 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/index.po +++ b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/index.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,18 +25,17 @@ msgstr "" #: ../../root/api/orchestrator/index.rst:6 msgid "" -"Объект ``Orchestrator`` в ``Argenta`` представляет собой высокоуровневый " -"компонент, который стоит над ``App`` и отвечает за \"оркестрацию\" всего " -"приложения. Его главная задача — инициализация и конфигурация сложных " -"систем, таких как внедрение зависимостей (``di``), парсинг аргументов " -"командной строки при запуске, и запуск основного цикла приложения." +"``Orchestrator`` — это высокоуровневый компонент, который управляет " +"жизненным циклом приложения. Его главная задача — инициализация и " +"конфигурация окружения, включая внедрение зависимостей (DI), парсинг " +"аргументов командной строки и запуск основного цикла `App`." msgstr "" #: ../../root/api/orchestrator/index.rst:8 msgid "" -"В то время как ``App`` отвечает за интерактивную сессию (ввод команд, " -"роутинг), ``Orchestrator`` подготавливает окружение, в котором ``App`` " -"будет работать. Он является точкой входа для приложений." +"В то время как `App` отвечает за логику интерактивной сессии (ввод " +"команд, маршрутизация), `Orchestrator` подготавливает окружение для его " +"работы и служит точкой входа в приложение." msgstr "" #: ../../root/api/orchestrator/index.rst:13 @@ -44,30 +43,28 @@ msgid "Инициализация" msgstr "" #: ../../root/api/orchestrator/index.rst:28 -msgid "Создает и конфигурирует экземпляр ``Orchestrator``." +msgid "Создаёт и конфигурирует экземпляр ``Orchestrator``." msgstr "" #: ../../root/api/orchestrator/index.rst:30 msgid "" -"``arg_parser``: Экземпляр " -":class:`argenta.orchestrator.argparser.ArgParser`, который отвечает за " -"парсинг аргументов, переданных скрипту при запуске из командной строки " -"(не путать с командами, вводимыми в интерактивном режиме)." +"``arg_parser``: Экземпляр `ArgParser`, отвечающий за парсинг аргументов " +"командной строки при запуске скрипта (не путать с командами в " +"интерактивном режиме)." msgstr "" #: ../../root/api/orchestrator/index.rst:31 msgid "" "``custom_providers``: Список пользовательских провайдеров " -"``dishka.Provider``. Это основной механизм для добавления ваших " -"собственных сервисов (например, подключений к базе данных, клиентов API) " -"в контейнер внедрения зависимостей." +"`dishka.Provider` для добавления ваших сервисов (например, подключений к " +"БД или API-клиентов) в DI-контейнер." msgstr "" #: ../../root/api/orchestrator/index.rst:32 msgid "" -"``auto_inject_handlers``: Если **True** (по умолчанию), ``dishka`` будет " -"автоматически инспектировать сигнатуры обработчиков команд и внедрять в " -"них требуемые зависимости из контейнера." +"``auto_inject_handlers``: Если `True` (по умолчанию), `dishka` " +"автоматически внедрит зависимости в обработчики команд, инспектируя их " +"сигнатуры." msgstr "" #: ../../root/api/orchestrator/index.rst:37 @@ -76,18 +73,17 @@ msgstr "" #: ../../root/api/orchestrator/index.rst:41 msgid "" -"Это главный метод, который запускает все приложение. Он выполняет " -"следующие шаги:" +"Это главный метод, который запускает приложение. Он выполняет следующие " +"шаги:" msgstr "" #: ../../root/api/orchestrator/index.rst:43 msgid "" -"**Настройка DI**: На основе системного провайдера (``SystemProvider``, " -"который предоставляет ``ArgParser``) и списка ``custom_providers`` " -"создается ``ioc`` - контейнер и настраивается внедрение зависимостей." +"**Настройка DI**: Создаёт DI-контейнер на основе системного провайдера " +"(предоставляет `ArgParser`) и пользовательских `custom_providers`." msgstr "" -#: ../../root/api/orchestrator/index.rst:45 +#: ../../root/api/orchestrator/index.rst:44 msgid "" "**Запуск основного цикла**: Запускает бесконечный цикл ожидания и " "обработки пользовательского ввода." @@ -97,43 +93,139 @@ msgstr "" msgid "Parameters" msgstr "" -#: ../../root/api/orchestrator/index.rst:47 -msgid "Экземпляр класса :class:`~argenta.app.models.App`, который будет запущен." +#: ../../root/api/orchestrator/index.rst:46 +msgid "Экземпляр `App`, который будет запущен." msgstr "" -#: ../../root/api/orchestrator/index.rst:52 +#: ../../root/api/orchestrator/index.rst:51 msgid "Назначение и использование" msgstr "" -#: ../../root/api/orchestrator/index.rst:54 +#: ../../root/api/orchestrator/index.rst:53 msgid "" -"``Orchestrator`` абстрагирует от вас всю сложность, связанную с " -"настройкой внедрения зависимостей и парсингом стартовых аргументов. " -"Типичный сценарий использования ``Argenta`` выглядит следующим образом:" +"``Orchestrator`` абстрагирует сложность, связанную с настройкой DI и " +"парсингом стартовых аргументов. Типичный сценарий использования выглядит " +"так:" +msgstr "" + +#: ../../root/api/orchestrator/index.rst:55 +msgid "Создайте и настройте экземпляр `App` (добавьте роутеры)." msgstr "" #: ../../root/api/orchestrator/index.rst:56 -msgid "Создать экземпляр ``App`` и настроить его (добавить роутеры)." +msgid "Создайте экземпляр `Orchestrator`, передав в него DI-провайдеры." msgstr "" #: ../../root/api/orchestrator/index.rst:57 +msgid "Вызовите `orchestrator.start_polling(app)`, чтобы запустить приложение." +msgstr "" + +#: ../../root/api/orchestrator/index.rst:59 msgid "" -"Создать экземпляр ``Orchestrator``, передав в него необходимые " -"DI-провайдеры и, возможно, парсер аргументов." +"Такой подход разделяет ответственности: `App` отвечает за логику " +"интерактивной сессии, а `Orchestrator` — за подготовку и запуск " +"окружения." msgstr "" -#: ../../root/api/orchestrator/index.rst:58 -msgid "Вызвать ``orchestrator.start_polling(app)``, чтобы запустить приложение." -msgstr "" - -#: ../../root/api/orchestrator/index.rst:60 -msgid "" -"Такой подход позволяет сохранить код чистым и разделяет ответственность: " -"``App`` отвечает за логику интерактивной сессии, а ``Orchestrator`` — за " -"подготовку и запуск окружения." -msgstr "" - -#: ../../root/api/orchestrator/index.rst:63 +#: ../../root/api/orchestrator/index.rst:62 msgid "Пример использования" 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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/response.po b/docs/locales/en/LC_MESSAGES/root/api/response.po index 200c74e..8ce0e82 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/response.po +++ b/docs/locales/en/LC_MESSAGES/root/api/response.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -23,3 +23,145 @@ msgstr "" msgid "Response" msgstr "" +#: ../../root/api/response.rst:6 +msgid "" +"`Response` — это объект, который передаётся в обработчик команды. Он " +"создаётся автоматически при обработке пользовательского ввода и содержит " +"статус валидации, введённые флаги." +msgstr "" + +#: ../../root/api/response.rst:11 +msgid "" +"Документация по :ref:`InputFlags ` — " +"коллекция введённых флагов команды." +msgstr "" + +#: ../../root/api/response.rst:13 +msgid "" +"Документация по :ref:`ResponseStatus ` — " +"статусы валидации флагов команды." +msgstr "" + +#: ../../root/api/response.rst:15 +msgid "" +"Документация по :ref:`InputFlag ` — " +"отдельный введённый флаг." +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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/api/router.po b/docs/locales/en/LC_MESSAGES/root/api/router.po index 352d998..3fcccd1 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/router.po +++ b/docs/locales/en/LC_MESSAGES/root/api/router.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,18 +25,17 @@ msgstr "" #: ../../root/api/router.rst:6 msgid "" -"Объект ``Router`` является фундаментальным строительным блоком для " -"организации логики в приложении ``Argenta``. Его основная задача — " -"группировать связанные команды и их обработчики. Каждый роутер " -"представляет собой логический контейнер для определенного набора " -"функциональности." +"``Router`` — это основной строительный блок для организации логики в " +"приложении. Его задача — группировать связанные команды и их обработчики." +" Каждый роутер представляет собой логический контейнер для определённого " +"набора функций." msgstr "" #: ../../root/api/router.rst:8 msgid "" "Например, в приложении для управления пользователями один роутер может " -"отвечать за команды, связанные с аутентификацией (``login``, ``logout``)," -" а другой — за операции с профилем (``profile show``, ``profile edit``)." +"отвечать за аутентификацию (``login``, ``logout``), а другой — за " +"операции с профилем (``profile-show``, ``profile-edit``)." msgstr "" #: ../../root/api/router.rst:13 @@ -44,24 +43,22 @@ msgid "Инициализация" msgstr "" #: ../../root/api/router.rst:21 -msgid "Создает новый экземпляр маршрутизатора." +msgid "Создаёт новый экземпляр роутера." msgstr "" #: ../../root/api/router.rst:23 msgid "" -"``title`` : Необязательный заголовок для группы команд, которые " -"регистрируются в этом роутере. Этот заголовок будет отображаться в списке" -" доступных команд, помогая пользователю ориентироваться." +"``title``: Необязательный заголовок для группы команд. Отображается в " +"списке доступных команд, помогая пользователю ориентироваться." msgstr "" #: ../../root/api/router.rst:24 msgid "" -"``disable_redirect_stdout`` : Если установлено в ``True``, отключает " -"механизм перехвата стандартного вывода (``stdout``) для всех команд этого" -" роутера. Это необходимо для команд, которые требуют интерактивного ввода" -" от пользователя (например, с помощью ``input()``). При отключении " -"перехвата вывода автоматически используется статическая разделительная " -"линия. Подробнее в :ref:`соответствующем разделе `" +"``disable_redirect_stdout``: Если ``True``, отключает перехват ``stdout``" +" для всех команд этого роутера. Это необходимо для интерактивных команд " +"(например, с ``input()``). При отключении перехвата автоматически " +"используется статическая разделительная линия. Подробнее см. в разделе " +":ref:`Переопределение стандартного вывода `." msgstr "" #: ../../root/api/router.rst:29 @@ -70,12 +67,12 @@ msgstr "" #: ../../root/api/router.rst:31 msgid "" -"Для регистрации новой команды и привязки к ней функции-обработчика " -"используется декоратор ``@command``." +"Для регистрации команды и привязки к ней обработчика используется " +"декоратор ``@command``." msgstr "" #: ../../root/api/router.rst:35 -msgid "Декоратор для регистрации функции как обработчика для указанной команды." +msgid "Декоратор для регистрации функции как обработчика команды." msgstr "" #: ../../root/api/router.rst @@ -84,10 +81,9 @@ msgstr "" #: ../../root/api/router.rst:37 msgid "" -"Экземпляр класса ``argenta.command.Command``, описывающий триггер, флаги " -"и описание команды. Также может быть просто строкой, которая будет " -"являться триггером, в этом случае нет возможности настроить флаги, " -"описание и всё остальное." +"Экземпляр ``Command``, описывающий триггер, флаги и описание команды. " +"Может быть строкой, которая станет триггером (без возможности настройки " +"флагов и описания)." msgstr "" #: ../../root/api/router.rst:39 @@ -106,17 +102,16 @@ msgstr "" #: ../../root/api/router.rst:54 msgid "" -"Предопределенный экземпляр ``Router``, который содержит базовые системные" -" команды. По умолчанию в него включена команда выхода из приложения " -"(обычно **exit**). Он имеет заголовок **\"System points:\"**, который " -"можно переопределить в инстансе приложения -> ``App``." +"Предопределённый экземпляр ``Router`` с базовыми системными командами (по" +" умолчанию — команда выхода). Имеет заголовок **«System points:»**, " +"который можно переопределить в ``App``." msgstr "" #: ../../root/api/router.rst:56 msgid "" -"Вы можете добавлять свои команды в этот роутер, для этого импортируйте " -"``argenta.router.defaults.system_router`` и декорируйте его методом " -"необходимые хэндлеры." +"Вы можете добавлять свои команды в этот роутер. Для этого импортируйте " +"``argenta.router.defaults.system_router`` и используйте его декоратор " +"``@command``." msgstr "" #: ../../root/api/router.rst:61 @@ -126,13 +121,13 @@ msgstr "" #: ../../root/api/router.rst:63 msgid "" "При регистрации команд и флагов в ``Router`` могут возникнуть следующие " -"исключения, сигнализирующие о некорректной конфигурации:" +"исключения:" msgstr "" #: ../../root/api/router.rst:67 msgid "" -"Выбрасывается, если триггер команды, передаваемый в ``Command``, содержит" -" пробелы. Триггеры команд должны быть одним словом." +"Выбрасывается, если триггер команды в ``Command`` содержит пробелы. " +"Триггеры должны быть одним словом." msgstr "" #: ../../root/api/router.rst:69 @@ -143,9 +138,9 @@ msgstr "" #: ../../root/api/router.rst:74 msgid "" -"Возникает, если при определении флагов для одной команды были " -"использованы дублирующиеся имена (как короткие, так и длинные). Каждое " -"имя флага в рамках одной команды должно быть уникальным." +"Возникает, если при определении флагов для команды были использованы " +"дублирующиеся имена. Имена флагов в рамках одной команды должны быть " +"уникальны." msgstr "" #: ../../root/api/router.rst:76 @@ -154,7 +149,116 @@ msgstr "" #: ../../root/api/router.rst:88 msgid "" -"Это исключение возникает, если какой-либо обработчик команды не ожидает " -"обязательный аргумент, которым является объект ответа(``Response``)." +"Возникает, если обработчик команды не принимает обязательный аргумент " +"``Response``." 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:`соответствующем разделе `" +#~ 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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/code_of_conduct.po b/docs/locales/en/LC_MESSAGES/root/code_of_conduct.po index fa4909b..374802c 100644 --- a/docs/locales/en/LC_MESSAGES/root/code_of_conduct.po +++ b/docs/locales/en/LC_MESSAGES/root/code_of_conduct.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -29,133 +29,126 @@ msgstr "" #: ../../root/code_of_conduct.rst:9 msgid "" -"В стремлении создать открытую и приветливую атмосферу, мы, как участники " -"и мейнтейнеры, обязуемся сделать участие в нашем проекте и сообществе " +"В целях создания открытой и гостеприимной атмосферы мы, как участники и " +"мейнтейнеры, обязуемся сделать участие в нашем проекте и сообществе " "свободным от преследований для всех, независимо от возраста, " -"телосложения, инвалидности, этнической принадлежности, половых " -"характеристик, уровня опыта, образования, социально-экономического " -"статуса, национальности, внешности, расы и религии." +"телосложения, инвалидности, этнической принадлежности, гендерной " +"идентичности и самовыражения, уровня опыта, образования, " +"социально-экономического статуса, национальности, внешности, расы, " +"религии или сексуальной идентичности и ориентации." msgstr "" -#: ../../root/code_of_conduct.rst:18 +#: ../../root/code_of_conduct.rst:14 msgid "Наши стандарты" 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 -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 "Предоставление и тактичное принятие конструктивной обратной связи." msgstr "" -#: ../../root/code_of_conduct.rst:26 +#: ../../root/code_of_conduct.rst:21 msgid "" -"Принятие ответственности, извинения перед теми, кого затронули наши " -"ошибки, и извлечение уроков из этого опыта." +"Принятие ответственности и извинения перед теми, кого затронули наши " +"ошибки, а также извлечение уроков из этого опыта." msgstr "" -#: ../../root/code_of_conduct.rst:28 -msgid "" -"Сосредоточение на том, что лучше не только для нас как отдельных " -"личностей, но и для всего сообщества в целом." +#: ../../root/code_of_conduct.rst:22 +msgid "Фокус на том, что лучше для всего сообщества." msgstr "" -#: ../../root/code_of_conduct.rst:31 +#: ../../root/code_of_conduct.rst:24 msgid "Примеры недопустимого поведения включают:" msgstr "" -#: ../../root/code_of_conduct.rst:33 +#: ../../root/code_of_conduct.rst:26 msgid "" "Троллинг, оскорбительные или уничижительные комментарии, а также личные " "или политические нападки." msgstr "" -#: ../../root/code_of_conduct.rst:34 +#: ../../root/code_of_conduct.rst:27 msgid "Публичное или частное преследование." msgstr "" -#: ../../root/code_of_conduct.rst:35 +#: ../../root/code_of_conduct.rst:28 msgid "" -"Публикация личной информации других лиц, такой как физический или " -"электронный адрес, без их явного разрешения." +"Публикация личной информации других лиц (например, физического или " +"электронного адреса) без их явного разрешения." msgstr "" -#: ../../root/code_of_conduct.rst:37 +#: ../../root/code_of_conduct.rst:29 msgid "" -"Иное поведение, которое можно обоснованно считать неуместным в " +"Любое другое поведение, которое можно обоснованно считать неуместным в " "профессиональной среде." msgstr "" -#: ../../root/code_of_conduct.rst:43 +#: ../../root/code_of_conduct.rst:34 msgid "Наши обязанности" 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 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 "" -#: ../../root/code_of_conduct.rst:69 +#: ../../root/code_of_conduct.rst:50 msgid "Обеспечение соблюдения" msgstr "" -#: ../../root/code_of_conduct.rst:71 +#: ../../root/code_of_conduct.rst:52 msgid "" "О случаях оскорбительного, преследовательского или иного неприемлемого " -"поведения можно сообщить руководителям сообщества, ответственным за " -"обеспечение правоприменения, по адресу . Все жалобы будут рассмотрены и " -"расследованы оперативно и справедливо." +"поведения можно сообщить команде проекта по адресу " +"kolo.is.main@gmail.com. Все жалобы будут рассмотрены и расследованы " +"оперативно и справедливо." msgstr "" -#: ../../root/code_of_conduct.rst:75 -msgid "" -"Все руководители сообщества обязаны уважать частную жизнь и безопасность " -"заявителя любого инцидента." +#: ../../root/code_of_conduct.rst:54 +msgid "Команда проекта обязуется уважать частную жизнь и безопасность заявителя." msgstr "" -#: ../../root/code_of_conduct.rst:81 +#: ../../root/code_of_conduct.rst:59 msgid "Атрибуция" msgstr "" -#: ../../root/code_of_conduct.rst:83 +#: ../../root/code_of_conduct.rst:61 msgid "" "Настоящий Кодекс поведения адаптирован из `Contributor Covenant " "`__, версии `1.4 `__." 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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/contributing.po b/docs/locales/en/LC_MESSAGES/root/contributing.po index 97607b9..44e4700 100644 --- a/docs/locales/en/LC_MESSAGES/root/contributing.po +++ b/docs/locales/en/LC_MESSAGES/root/contributing.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -29,33 +29,32 @@ msgstr "" #: ../../root/contributing.rst:10 msgid "" -"Мы приветствуем и ценим любые виды вклада. Пожалуйста, прочтите " -"соответствующий раздел, прежде чем делать свой вклад. Это значительно " -"облегчит работу для нас, мейнтейнеров, и сделает процесс более гладким " -"для всех участников. Сообщество с нетерпением ждет ваших вкладов. 🎉" +"Мы приветствуем и ценим любой вклад. Пожалуйста, прочтите соответствующий" +" раздел, прежде чем начать. Это облегчит работу мейнтейнеров и сделает " +"процесс более гладким для всех. Сообщество с нетерпением ждёт ваших идей!" +" 🎉" msgstr "" #: ../../root/contributing.rst:14 msgid "" -"Если вам нравится проект, но у вас просто нет времени на вклад, это " -"нормально. Есть и другие простые способы поддержать проект и выразить " -"свою признательность, которым мы также будем очень рады:" +"Если вам нравится проект, но у вас нет времени на активный вклад, вы " +"можете поддержать нас другими способами:" msgstr "" #: ../../root/contributing.rst:16 -msgid "Поставить звезду проекту" +msgid "Поставить звезду на GitHub." msgstr "" #: ../../root/contributing.rst:17 -msgid "Написать о нем в ``Twitter``" +msgid "Написать о проекте в Twitter или других социальных сетях." msgstr "" #: ../../root/contributing.rst:18 -msgid "Ссылаться на этот проект в ``Readme`` вашего проекта" +msgid "Сослаться на проект в `README` вашего репозитория." msgstr "" #: ../../root/contributing.rst:19 -msgid "Упомянуть проект на местных встречах и рассказать о нем друзьям/коллегам" +msgid "Упомянуть проект на митапах и рассказать о нём друзьям и коллегам." msgstr "" #: ../../root/contributing.rst:24 @@ -119,532 +118,495 @@ msgstr "" #: ../../root/contributing.rst:54 msgid "" -"Если вы хотите задать вопрос, мы предполагаем, что вы уже ознакомились с " -"доступной `Документацией `_." +"Прежде чем задать вопрос, пожалуйста, ознакомьтесь с `документацией " +"`_." msgstr "" #: ../../root/contributing.rst:56 msgid "" -"Прежде чем задать вопрос, лучше всего поискать существующие `Issues " -"`_, которые могут вам " -"помочь. Если вы нашли подходящий ``issue``, но все еще нуждаетесь в " -"разъяснениях, вы можете написать свой вопрос в этом ``issue``. Также " -"рекомендуется сначала поискать ответы в интернете." +"Поищите ответ в существующих `Issues " +"`_. Если вы нашли похожий " +"вопрос, но всё ещё нуждаетесь в разъяснениях, можете написать в нём. " +"Также рекомендуем поискать ответ в интернете." msgstr "" #: ../../root/contributing.rst:58 msgid "" -"Если после этого вы все еще чувствуете необходимость задать вопрос, мы " -"рекомендуем следующее:" +"Если ответа не нашлось, создайте новый `Issue " +"`_ и предоставьте как " +"можно больше контекста, включая версии проекта и платформы (CPython, pip " +"и т.д.)." msgstr "" #: ../../root/contributing.rst:60 -msgid "Откройте новый `Issue `_." -msgstr "" - -#: ../../root/contributing.rst:61 -msgid "Предоставьте как можно больше контекста о том, с чем вы столкнулись." -msgstr "" - -#: ../../root/contributing.rst:62 -msgid "" -"Укажите версии проекта и платформы (cpython, pip и т.д.), в зависимости " -"от того, что кажется релевантным." -msgstr "" - -#: ../../root/contributing.rst:64 msgid "Мы займемся вашей задачей как можно скорее." msgstr "" -#: ../../root/contributing.rst:71 +#: ../../root/contributing.rst:67 msgid "Я хочу внести вклад" msgstr "" -#: ../../root/contributing.rst:74 +#: ../../root/contributing.rst:70 msgid "Правовое уведомление" msgstr "" -#: ../../root/contributing.rst:77 +#: ../../root/contributing.rst:73 msgid "" -"Внося вклад в этот проект, вы должны согласиться с тем, что вы являетесь " -"автором 100% контента, что у вас есть необходимые права на этот контент, " -"и что предоставленный вами контент может распространяться под лицензией " -"проекта." +"Внося вклад в этот проект, вы подтверждаете, что являетесь автором 100% " +"контента, обладаете необходимыми правами на него и соглашаетесь, что он " +"может распространяться под лицензией проекта." msgstr "" -#: ../../root/contributing.rst:82 +#: ../../root/contributing.rst:78 msgid "Сообщение об ошибках" msgstr "" -#: ../../root/contributing.rst:85 +#: ../../root/contributing.rst:81 msgid "Перед отправкой отчета об ошибке" msgstr "" +#: ../../root/contributing.rst:82 +msgid "" +"Хороший отчёт об ошибке не должен заставлять других вытягивать из вас " +"дополнительную информацию. Пожалуйста, тщательно всё изучите, соберите " +"информацию и подробно опишите проблему. Это поможет нам исправить её как " +"можно быстрее." +msgstr "" + +#: ../../root/contributing.rst:84 ../../root/contributing.rst:125 +msgid "Убедитесь, что вы используете последнюю версию." +msgstr "" + +#: ../../root/contributing.rst:85 +msgid "" +"Убедитесь, что проблема действительно является ошибкой, а не вызвана, " +"например, использованием несовместимых версий окружения. Прочтите " +"`документацию `_ и, если нужна поддержка," +" загляните в раздел `У меня есть вопрос`_." +msgstr "" + #: ../../root/contributing.rst:86 msgid "" -"Хороший отчет об ошибке не должен заставлять других вытягивать из вас " -"дополнительную информацию. Поэтому мы просим вас тщательно все изучить, " -"собрать информацию и подробно описать проблему в своем отчете. " -"Пожалуйста, выполните следующие шаги заранее, чтобы помочь нам исправить " -"любую потенциальную ошибку как можно быстрее." +"Проверьте, нет ли уже отчёта о вашей ошибке в `трекере " +"`_." msgstr "" -#: ../../root/contributing.rst:88 ../../root/contributing.rst:129 -msgid "Убедитесь, что вы используете последнюю версию." +#: ../../root/contributing.rst:87 +msgid "" +"Также поищите в интернете (включая `Stack Overflow`), чтобы узнать, " +"обсуждалась ли проблема за пределами `GitHub`." +msgstr "" + +#: ../../root/contributing.rst:88 +msgid "Соберите информацию об ошибке:" msgstr "" #: ../../root/contributing.rst:89 -msgid "" -"Определите, действительно ли ваша проблема является ошибкой, а не ошибкой" -" с вашей стороны, например, из-за использования несовместимых " -"компонентов/версий окружения (Убедитесь, что вы прочитали `документацию " -"`_. Если вам нужна поддержка, возможно, " -"стоит заглянуть в раздел `У меня есть вопрос`_)." +msgid "Трассировка стека." msgstr "" #: ../../root/contributing.rst:90 -msgid "" -"Чтобы увидеть, сталкивались ли другие пользователи (и, возможно, уже " -"решили) с той же проблемой, проверьте, нет ли уже отчета о вашей ошибке в" -" `трекере ошибок " -"`_." +msgid "ОС, платформа и версия (Windows, Linux, macOS, x86, ARM)." msgstr "" #: ../../root/contributing.rst:91 msgid "" -"Также обязательно поищите в интернете (включая ``Stack Overflow``), чтобы" -" узнать, обсуждали ли проблему пользователи за пределами сообщества " -"``GitHub``." +"Версия интерпретатора, компилятора, SDK, среды выполнения, менеджера " +"пакетов и т.д." msgstr "" #: ../../root/contributing.rst:92 -msgid "Соберите информацию об ошибке:" +msgid "Входные данные и полученный результат." msgstr "" #: ../../root/contributing.rst:93 -msgid "Трассировка стека" -msgstr "" - -#: ../../root/contributing.rst:94 -msgid "ОС, платформа и версия ``Windows``, ``Linux``, ``macOS``, ``x86``, ``ARM``" -msgstr "" - -#: ../../root/contributing.rst:95 msgid "" -"Версия интерпретатора, компилятора, SDK, среды выполнения, менеджера " -"пакетов, в зависимости от того, что кажется релевантным." +"Можете ли вы надёжно воспроизвести проблему? Воспроизводится ли она на " +"старых версиях?" msgstr "" #: ../../root/contributing.rst:96 -msgid "Возможно, ваши входные данные и результат" -msgstr "" - -#: ../../root/contributing.rst:97 -msgid "" -"Можете ли вы надежно воспроизвести проблему? И можете ли вы воспроизвести" -" ее на старых версиях?" -msgstr "" - -#: ../../root/contributing.rst:100 msgid "Как мне отправить хороший отчет об ошибке?" msgstr "" +#: ../../root/contributing.rst:99 +msgid "" +"Никогда не сообщайте о проблемах безопасности, уязвимостях или ошибках с " +"конфиденциальной информацией в публичном трекере. Для этого используйте " +"электронную почту." +msgstr "" + +#: ../../root/contributing.rst:101 +msgid "" +"Мы используем `GitHub Issues` для отслеживания ошибок. Если вы " +"столкнулись с проблемой:" +msgstr "" + #: ../../root/contributing.rst:103 msgid "" -"Никогда не сообщайте о проблемах безопасности, уязвимостях или ошибках, " -"содержащих конфиденциальную информацию, в трекере задач или в других " -"публичных местах. Конфиденциальные ошибки должны быть отправлены по " -"электронной почте." +"Откройте новый `Issue " +"`_. На этом этапе не " +"нужно присваивать ему метки." +msgstr "" + +#: ../../root/contributing.rst:104 +msgid "Объясните ожидаемое и фактическое поведение." msgstr "" #: ../../root/contributing.rst:105 msgid "" -"Мы используем ``Issues GitHub`` для отслеживания ошибок. Если вы " -"столкнулись с проблемой в проекте:" +"Предоставьте как можно больше контекста и опишите **шаги для " +"воспроизведения**, чтобы проблему можно было воссоздать. Лучше всего " +"изолировать её и создать минимальный тестовый пример." msgstr "" -#: ../../root/contributing.rst:107 -msgid "" -"Откройте `Issue `_. " -"(Поскольку на данном этапе мы не можем быть уверены, является ли это " -"ошибкой, мы просим вас пока не говорить об ошибке и не присваивать метку " -"задаче.)" -msgstr "" - -#: ../../root/contributing.rst:108 -msgid "Объясните поведение, которое вы ожидали, и фактическое поведение." -msgstr "" - -#: ../../root/contributing.rst:109 -msgid "" -"Пожалуйста, предоставьте как можно больше контекста и опишите *шаги для " -"воспроизведения*, чтобы кто-то другой мог воссоздать проблему " -"самостоятельно. Обычно это включает ваш код. Для хороших отчетов об " -"ошибках следует изолировать проблему и создать сокращенный тестовый " -"пример." -msgstr "" - -#: ../../root/contributing.rst:110 +#: ../../root/contributing.rst:106 msgid "Предоставьте информацию, которую вы собрали в предыдущем разделе." msgstr "" -#: ../../root/contributing.rst:112 +#: ../../root/contributing.rst:108 msgid "После того, как задача будет создана:" msgstr "" -#: ../../root/contributing.rst:114 +#: ../../root/contributing.rst:110 msgid "Команда проекта присвоит задаче соответствующую метку." msgstr "" -#: ../../root/contributing.rst:115 +#: ../../root/contributing.rst:111 msgid "" -"Член команды попытается воспроизвести проблему по вашим шагам. Если шагов" -" для воспроизведения нет или нет очевидного способа воспроизвести " -"проблему, команда попросит вас предоставить эти шаги и пометит задачу как" -" `needs-repro`. Ошибки с меткой `needs-repro` не будут рассматриваться до" -" тех пор, пока они не будут воспроизведены." +"Член команды попытается воспроизвести проблему. Если шагов нет или они не" +" приводят к результату, команда попросит вас предоставить их и пометит " +"задачу как `needs-repro`. Такие задачи не будут рассматриваться до тех " +"пор, пока проблема не будет воспроизведена." msgstr "" -#: ../../root/contributing.rst:116 +#: ../../root/contributing.rst:112 msgid "" -"Если команда сможет воспроизвести проблему, она будет помечена как " -"`needs-fix`, а также, возможно, другими метками (например, `critical`), и" -" задача будет оставлена для :ref:`реализации кем-либо <Ваш первый вклад в" -" код>`." +"Если проблема будет воспроизведена, она будет помечена как `needs-fix` " +"(и, возможно, другими метками, например `critical`), после чего её сможет" +" взять в работу :ref:`любой желающий <Ваш первый вклад в код>`." msgstr "" -#: ../../root/contributing.rst:123 +#: ../../root/contributing.rst:119 msgid "Предложение улучшений" msgstr "" -#: ../../root/contributing.rst:125 +#: ../../root/contributing.rst:121 msgid "" -"Этот раздел поможет вам отправить предложение по улучшению ``Argenta``, " -"**включая совершенно новые функции и незначительные улучшения " -"существующей функциональности**. Следование этим рекомендациям поможет " -"мейнтейнерам и сообществу понять ваше предложение и найти связанные с ним" -" предложения." +"Этот раздел поможет вам отправить предложение по улучшению `Argenta`, " +"**включая как новые функции, так и незначительные улучшения**. Следование" +" этим рекомендациям поможет мейнтейнерам и сообществу лучше понять вашу " +"идею." msgstr "" -#: ../../root/contributing.rst:128 +#: ../../root/contributing.rst:124 msgid "Перед отправкой предложения по улучшению" msgstr "" -#: ../../root/contributing.rst:130 +#: ../../root/contributing.rst:126 msgid "" "Внимательно прочтите `документацию `_ и " -"выясните, не реализована ли уже данная функциональность, возможно, через " -"индивидуальную конфигурацию." +"убедитесь, что предлагаемая функциональность ещё не реализована " +"(возможно, через конфигурацию)." +msgstr "" + +#: ../../root/contributing.rst:127 +msgid "" +"Выполните `поиск `_, чтобы " +"проверить, не предлагалось ли это улучшение ранее. Если да, добавьте " +"комментарий к существующей задаче." +msgstr "" + +#: ../../root/contributing.rst:128 +msgid "" +"Определите, соответствует ли ваша идея масштабу и целям проекта. Вам " +"предстоит убедительно доказать её пользу. Мы хотим видеть функции, " +"которые будут полезны большинству пользователей. Если ваша идея " +"ориентирована на узкий круг, рассмотрите возможность создания плагина." msgstr "" #: ../../root/contributing.rst:131 -msgid "" -"Выполните `поиск `_, чтобы " -"проверить, не было ли уже предложено данное улучшение. Если да, добавьте " -"комментарий к существующей задаче вместо создания новой." +msgid "Как мне отправить хорошее предложение по улучшению?" msgstr "" #: ../../root/contributing.rst:132 msgid "" -"Определите, соответствует ли ваша идея масштабам и целям проекта. Вам " -"предстоит убедительно доказать разработчикам проекта достоинства этой " -"функции. Помните, что мы хотим видеть функции, которые будут полезны " -"большинству наших пользователей, а не только небольшой их части. Если вы " -"ориентируетесь только на меньшинство пользователей, рассмотрите " -"возможность написания дополнения/плагина." +"Предложения по улучшению отслеживаются в `GitHub Issues " +"`_." +msgstr "" + +#: ../../root/contributing.rst:134 +msgid "" +"Используйте **чёткий и описательный заголовок**, чтобы идентифицировать " +"предложение." msgstr "" #: ../../root/contributing.rst:135 -msgid "Как мне отправить хорошее предложение по улучшению?" +msgid "Предоставьте **пошаговое и подробное описание** предлагаемого улучшения." msgstr "" #: ../../root/contributing.rst:136 msgid "" -"Предложения по улучшению отслеживаются как `Issues GitHub " -"`_." +"**Опишите текущее поведение** и **объясните, какое вы ожидали увидеть " +"вместо этого** и почему. Здесь же можно указать, какие альтернативы вам " +"не подходят." +msgstr "" + +#: ../../root/contributing.rst:137 +msgid "" +"**Приложите скриншоты или видео**, которые помогут продемонстрировать " +"шаги или указать на часть, к которой относится предложение." msgstr "" #: ../../root/contributing.rst:138 msgid "" -"Используйте **четкий и описательный заголовок** для задачи, чтобы " -"идентифицировать предложение." +"**Объясните, почему это улучшение будет полезно** большинству " +"пользователей `Argenta`. Вы также можете указать на другие проекты, " +"которые решили эту проблему и могут послужить источником вдохновения." msgstr "" -#: ../../root/contributing.rst:139 -msgid "" -"Предоставьте **пошаговое описание предлагаемого улучшения** как можно " -"подробнее." -msgstr "" - -#: ../../root/contributing.rst:140 -msgid "" -"**Опишите текущее поведение** и **объясните, какое поведение вы ожидали " -"увидеть вместо этого** и почему. На этом этапе вы также можете указать, " -"какие альтернативы вам не подходят." -msgstr "" - -#: ../../root/contributing.rst:141 -msgid "" -"Вы можете **включить скриншоты или записи экрана**, которые помогут " -"продемонстрировать шаги или указать на часть, к которой относится " -"предложение." -msgstr "" - -#: ../../root/contributing.rst:142 -msgid "" -"**Объясните, почему это улучшение было бы полезно** большинству " -"пользователей ``Argenta``. Вы также можете указать на другие проекты, " -"которые решили эту проблему лучше и которые могут послужить источником " -"вдохновения." -msgstr "" - -#: ../../root/contributing.rst:149 +#: ../../root/contributing.rst:145 msgid "Ваш первый вклад в код" msgstr "" +#: ../../root/contributing.rst:147 +msgid "" +"Не знаете, с чего начать? Посмотрите на задачи с метками `good first " +"issue` и `help wanted` в нашем репозитории на `GitHub`. Они хорошо " +"подходят для новичков." +msgstr "" + +#: ../../root/contributing.rst:149 +msgid "" +"Чтобы начать, настройте локальное окружение для разработки, следуя этим " +"шагам." +msgstr "" + #: ../../root/contributing.rst:151 -msgid "" -"Не знаете, с чего начать свой вклад в ``Argenta``? Вы можете начать с " -"просмотра задач с метками ``good first issue`` и ``help wanted`` в нашем " -"репозитории на ``GitHub``. Это задачи, которые хорошо подходят для " -"новичков." -msgstr "" - -#: ../../root/contributing.rst:153 -msgid "" -"Чтобы начать вносить свой первый вклад в код, пожалуйста, выполните " -"следующие шаги для настройки вашего локального окружения для разработки." -msgstr "" - -#: ../../root/contributing.rst:155 msgid "Сделайте форк репозитория ``Argenta`` на ``GitHub``." msgstr "" -#: ../../root/contributing.rst:156 +#: ../../root/contributing.rst:152 msgid "Клонируйте ваш форк на локальную машину:" msgstr "" -#: ../../root/contributing.rst:163 +#: ../../root/contributing.rst:159 msgid "Создайте и активируйте виртуальное окружение." msgstr "" -#: ../../root/contributing.rst:175 +#: ../../root/contributing.rst:171 msgid "Установите зависимости проекта, включая инструменты для разработки." msgstr "" -#: ../../root/contributing.rst:181 +#: ../../root/contributing.rst:177 msgid "" -"Создайте новую ветку для вашей новой функции или исправления ошибки. " -"Используйте описательное имя, например ``fix/login-bug`` или ``feat/new-" -"widget``." +"Создайте новую ветку для вашей функции или исправления. Используйте " +"описательное имя, например `fix/login-bug` или `feat/new-widget`." msgstr "" -#: ../../root/contributing.rst:187 +#: ../../root/contributing.rst:183 msgid "" -"Внесите свои изменения! Напишите код и не забудьте добавить или обновить " -"тесты для ваших изменений." +"Внесите свои изменения. Напишите код и не забудьте добавить или обновить " +"тесты." msgstr "" -#: ../../root/contributing.rst:188 +#: ../../root/contributing.rst:184 msgid "Запустите тесты, чтобы убедиться, что все работает корректно." msgstr "" -#: ../../root/contributing.rst:194 +#: ../../root/contributing.rst:190 msgid "" -"Сделайте коммит ваших изменений, следуя нашему руководству по стилю " -"сообщений коммитов, и отправьте их в ваш форк." +"Сделайте коммит, следуя нашему руководству по стилю, и отправьте " +"изменения в ваш форк." msgstr "" -#: ../../root/contributing.rst:202 +#: ../../root/contributing.rst:198 msgid "" -"Откройте ``Pull Request`` из вашей ветки в ветку ``main`` официального " -"репозитория ``Argenta``. Предоставьте четкое описание проблемы и вашего " -"решения. Укажите номер связанной задачи, если это применимо." +"Откройте `Pull Request` из вашей ветки в ветку `main` официального " +"репозитория. Предоставьте чёткое описание проблемы и вашего решения. " +"Укажите номер связанной задачи, если она есть." msgstr "" -#: ../../root/contributing.rst:209 +#: ../../root/contributing.rst:205 msgid "Улучшение документации" msgstr "" -#: ../../root/contributing.rst:211 +#: ../../root/contributing.rst:207 msgid "" -"Хорошая документация крайне важна для любого проекта. Мы используем " -"``Sphinx`` для генерации нашей документации из исходных файлов, " -"расположенных в директории ``docs/``. Мы приветствуем любые улучшения, от" -" исправления простой опечатки до написания целого нового раздела." +"Хорошая документация крайне важна. Мы используем `Sphinx` для её " +"генерации из исходных файлов в директории `docs/`. Мы приветствуем любые " +"улучшения: от исправления опечатки до написания нового раздела." msgstr "" -#: ../../root/contributing.rst:215 +#: ../../root/contributing.rst:211 msgid "Мы поддерживаем документацию на двух языках: русском и английском." msgstr "" -#: ../../root/contributing.rst:217 +#: ../../root/contributing.rst:213 msgid "" "Для улучшения документации вы можете следовать процессу, похожему на " "внесение вклада в код:" msgstr "" -#: ../../root/contributing.rst:219 +#: ../../root/contributing.rst:215 msgid "" "Убедитесь, что ваше окружение для разработки настроено, как описано в " "разделе `Ваш первый вклад в код`_." msgstr "" -#: ../../root/contributing.rst:220 +#: ../../root/contributing.rst:216 msgid "Перейдите в директорию с документацией." msgstr "" -#: ../../root/contributing.rst:226 +#: ../../root/contributing.rst:222 msgid "" -"Внесите необходимые изменения в **русскую** версию документации - " -"``docs/index.rst`` и/или ``docs/root/*``" +"Внесите изменения в **русскую** версию документации (`docs/index.rst` " +"и/или `docs/root/*`)." msgstr "" -#: ../../root/contributing.rst:227 -msgid "Чтобы собрать документацию локально и увидеть ваши изменения, выполните:" +#: ../../root/contributing.rst:223 +msgid "Чтобы собрать документацию локально и увидеть изменения, выполните:" msgstr "" -#: ../../root/contributing.rst:233 +#: ../../root/contributing.rst:229 msgid "" -"Откройте ``127.0.0.1:8000`` в вашем веб-браузере, чтобы просмотреть " -"сгенерированную документацию." +"Откройте `127.0.0.1:8000` в браузере, чтобы просмотреть сгенерированную " +"документацию." msgstr "" -#: ../../root/contributing.rst:234 +#: ../../root/contributing.rst:230 msgid "" -"После завершения работы над русской документацией необходимо создать " -"английский перевод:" +"После завершения работы над русской версией необходимо создать английский" +" перевод:" msgstr "" -#: ../../root/contributing.rst:240 +#: ../../root/contributing.rst:236 msgid "" -"После обновления шаблона перевода, обновите необходимые файлы перевода, " -"расположенные по пути ``docs/locales/en/LC_MESSAGES``." +"После обновления шаблона обновите файлы перевода, расположенные в " +"`docs/locales/en/LC_MESSAGES/`." msgstr "" -#: ../../root/contributing.rst:241 +#: ../../root/contributing.rst:237 msgid "" -"Когда вы будете довольны своими изменениями, сделайте коммит и откройте " -"``Pull Request``. Используйте префикс ``docs:`` в сообщении коммита." +"Когда изменения будут готовы, сделайте коммит и откройте `Pull Request`. " +"Используйте префикс `docs:` в сообщении коммита." msgstr "" -#: ../../root/contributing.rst:248 +#: ../../root/contributing.rst:244 msgid "Руководства по стилю" msgstr "" -#: ../../root/contributing.rst:253 +#: ../../root/contributing.rst:249 msgid "Сообщения коммитов" msgstr "" -#: ../../root/contributing.rst:255 +#: ../../root/contributing.rst:251 msgid "" "Мы следуем спецификации `Conventional Commits " -"`_ для наших сообщений " -"коммитов. Это приводит к более читаемым сообщениям, которые легко " -"отслеживать при просмотре истории проекта, и позволяет автоматически " -"генерировать журнал изменений." +"`_. Это делает историю " +"проекта более читаемой и позволяет автоматически генерировать журнал " +"изменений." msgstr "" -#: ../../root/contributing.rst:257 +#: ../../root/contributing.rst:253 msgid "" "Каждое сообщение коммита состоит из **заголовка**, **тела** и **нижнего " "колонтитула**." msgstr "" -#: ../../root/contributing.rst:267 +#: ../../root/contributing.rst:263 msgid "``<тип>`` должен быть одним из следующих:" msgstr "" -#: ../../root/contributing.rst:269 +#: ../../root/contributing.rst:265 msgid "**feat**: Новая функция для пользователя." msgstr "" -#: ../../root/contributing.rst:270 +#: ../../root/contributing.rst:266 msgid "**fix**: Исправление ошибки для пользователя." msgstr "" -#: ../../root/contributing.rst:271 +#: ../../root/contributing.rst:267 msgid "**docs**: Только изменения в документации." msgstr "" -#: ../../root/contributing.rst:272 +#: ../../root/contributing.rst:268 msgid "" "**style**: Изменения, не влияющие на смысл кода (пробелы, форматирование " "и т.д.)." msgstr "" -#: ../../root/contributing.rst:273 +#: ../../root/contributing.rst:269 msgid "" "**refactor**: Изменение кода, которое не исправляет ошибку и не добавляет" " новую функцию." msgstr "" -#: ../../root/contributing.rst:274 +#: ../../root/contributing.rst:270 msgid "**perf**: Изменение кода, улучшающее производительность." msgstr "" -#: ../../root/contributing.rst:275 +#: ../../root/contributing.rst:271 msgid "**test**: Добавление недостающих тестов или исправление существующих." msgstr "" -#: ../../root/contributing.rst:276 +#: ../../root/contributing.rst:272 msgid "" "**chore**: Изменения в процессе сборки или вспомогательных инструментах и" " библиотеках." msgstr "" -#: ../../root/contributing.rst:279 +#: ../../root/contributing.rst:275 msgid "Примеры" msgstr "" -#: ../../root/contributing.rst:280 +#: ../../root/contributing.rst:276 msgid "Простое исправление: ``fix: correct typo in user authentication flow``" msgstr "" -#: ../../root/contributing.rst:283 +#: ../../root/contributing.rst:279 msgid "" "Новая функция с областью видимости: ``feat(api): add new endpoint for " "user profiles``" msgstr "" -#: ../../root/contributing.rst:291 +#: ../../root/contributing.rst:287 msgid "Присоединяйтесь к команде проекта" msgstr "" -#: ../../root/contributing.rst:293 +#: ../../root/contributing.rst:289 msgid "" -"Мы всегда ищем энтузиастов и преданных своему делу людей для " -"присоединения к нашей команде проекта. Если вы являетесь постоянным " -"участником и продемонстрировали глубокое понимание целей и архитектуры " -"проекта, вы можете стать хорошим кандидатом на роль мейнтейнера." +"Мы всегда ищем энтузиастов для присоединения к команде. Если вы являетесь" +" постоянным участником и продемонстрировали глубокое понимание целей и " +"архитектуры проекта, вы можете стать хорошим кандидатом на роль " +"мейнтейнера." +msgstr "" + +#: ../../root/contributing.rst:291 +msgid "" +"Активные члены сообщества могут стать членами команды. Обычно это " +"включает:" +msgstr "" + +#: ../../root/contributing.rst:293 +msgid "Постоянный вклад в виде качественного кода и документации." +msgstr "" + +#: ../../root/contributing.rst:294 +msgid "Помощь другим пользователям с их вопросами и проблемами." msgstr "" #: ../../root/contributing.rst:295 msgid "" -"Активные члены сообщества могут стать членами команды. Обычно это " -"включает в себя:" +"Проверку `Pull Request`'ов от других участников с конструктивной обратной" +" связью." msgstr "" #: ../../root/contributing.rst:297 -msgid "Постоянный вклад в виде высококачественного кода и документации." -msgstr "" - -#: ../../root/contributing.rst:298 -msgid "Помощь другим пользователям, отвечая на вопросы и разбирая проблемы." -msgstr "" - -#: ../../root/contributing.rst:299 -msgid "" -"Проверку ``Pull Request`` от других участников с конструктивной обратной " -"связью." -msgstr "" - -#: ../../root/contributing.rst:301 msgid "" "Если вы заинтересованы в том, чтобы стать постоянным членом команды, " -"лучший способ начать — это быть активным и полезным членом сообщества. " -"Существующие мейнтейнеры заметят ваши усилия и могут связаться с вами с " -"приглашением присоединиться к команде." +"лучший способ — быть активным и полезным участником сообщества. " +"Существующие мейнтейнеры заметят ваши усилия и могут связаться с вами." msgstr "" #~ msgid "" @@ -655,3 +617,429 @@ msgstr "" #~ msgid "Getting started" #~ msgstr "" +#~ msgid "" +#~ "Мы приветствуем и ценим любые виды " +#~ "вклада. Пожалуйста, прочтите соответствующий " +#~ "раздел, прежде чем делать свой вклад." +#~ " Это значительно облегчит работу для " +#~ "нас, мейнтейнеров, и сделает процесс " +#~ "более гладким для всех участников. " +#~ "Сообщество с нетерпением ждет ваших " +#~ "вкладов. 🎉" +#~ msgstr "" + +#~ msgid "" +#~ "Если вам нравится проект, но у вас" +#~ " просто нет времени на вклад, это " +#~ "нормально. Есть и другие простые способы" +#~ " поддержать проект и выразить свою " +#~ "признательность, которым мы также будем " +#~ "очень рады:" +#~ msgstr "" + +#~ msgid "Поставить звезду проекту" +#~ msgstr "" + +#~ msgid "Написать о нем в ``Twitter``" +#~ msgstr "" + +#~ msgid "Ссылаться на этот проект в ``Readme`` вашего проекта" +#~ msgstr "" + +#~ msgid "" +#~ "Упомянуть проект на местных встречах и" +#~ " рассказать о нем друзьям/коллегам" +#~ msgstr "" + +#~ msgid "" +#~ "Если вы хотите задать вопрос, мы " +#~ "предполагаем, что вы уже ознакомились с" +#~ " доступной `Документацией " +#~ "`_." +#~ msgstr "" + +#~ msgid "" +#~ "Прежде чем задать вопрос, лучше всего" +#~ " поискать существующие `Issues " +#~ "`_, которые " +#~ "могут вам помочь. Если вы нашли " +#~ "подходящий ``issue``, но все еще " +#~ "нуждаетесь в разъяснениях, вы можете " +#~ "написать свой вопрос в этом ``issue``." +#~ " Также рекомендуется сначала поискать " +#~ "ответы в интернете." +#~ msgstr "" + +#~ msgid "" +#~ "Если после этого вы все еще " +#~ "чувствуете необходимость задать вопрос, мы " +#~ "рекомендуем следующее:" +#~ msgstr "" + +#~ msgid "" +#~ "Откройте новый `Issue " +#~ "`_." +#~ msgstr "" + +#~ msgid "Предоставьте как можно больше контекста о том, с чем вы столкнулись." +#~ msgstr "" + +#~ msgid "" +#~ "Укажите версии проекта и платформы " +#~ "(cpython, pip и т.д.), в зависимости " +#~ "от того, что кажется релевантным." +#~ msgstr "" + +#~ msgid "" +#~ "Внося вклад в этот проект, вы " +#~ "должны согласиться с тем, что вы " +#~ "являетесь автором 100% контента, что у" +#~ " вас есть необходимые права на этот" +#~ " контент, и что предоставленный вами " +#~ "контент может распространяться под лицензией" +#~ " проекта." +#~ msgstr "" + +#~ msgid "" +#~ "Хороший отчет об ошибке не должен " +#~ "заставлять других вытягивать из вас " +#~ "дополнительную информацию. Поэтому мы просим" +#~ " вас тщательно все изучить, собрать " +#~ "информацию и подробно описать проблему в" +#~ " своем отчете. Пожалуйста, выполните " +#~ "следующие шаги заранее, чтобы помочь нам" +#~ " исправить любую потенциальную ошибку как" +#~ " можно быстрее." +#~ msgstr "" + +#~ msgid "" +#~ "Определите, действительно ли ваша проблема " +#~ "является ошибкой, а не ошибкой с " +#~ "вашей стороны, например, из-за использования" +#~ " несовместимых компонентов/версий окружения " +#~ "(Убедитесь, что вы прочитали `документацию " +#~ "`_. Если вам нужна" +#~ " поддержка, возможно, стоит заглянуть в " +#~ "раздел `У меня есть вопрос`_)." +#~ msgstr "" + +#~ msgid "" +#~ "Чтобы увидеть, сталкивались ли другие " +#~ "пользователи (и, возможно, уже решили) с" +#~ " той же проблемой, проверьте, нет ли" +#~ " уже отчета о вашей ошибке в " +#~ "`трекере ошибок " +#~ "`_." +#~ msgstr "" + +#~ msgid "" +#~ "Также обязательно поищите в интернете " +#~ "(включая ``Stack Overflow``), чтобы узнать," +#~ " обсуждали ли проблему пользователи за " +#~ "пределами сообщества ``GitHub``." +#~ msgstr "" + +#~ msgid "Трассировка стека" +#~ msgstr "" + +#~ msgid "" +#~ "ОС, платформа и версия ``Windows``, " +#~ "``Linux``, ``macOS``, ``x86``, ``ARM``" +#~ msgstr "" + +#~ msgid "" +#~ "Версия интерпретатора, компилятора, SDK, среды" +#~ " выполнения, менеджера пакетов, в " +#~ "зависимости от того, что кажется " +#~ "релевантным." +#~ msgstr "" + +#~ msgid "Возможно, ваши входные данные и результат" +#~ msgstr "" + +#~ msgid "" +#~ "Можете ли вы надежно воспроизвести " +#~ "проблему? И можете ли вы воспроизвести" +#~ " ее на старых версиях?" +#~ msgstr "" + +#~ msgid "" +#~ "Никогда не сообщайте о проблемах " +#~ "безопасности, уязвимостях или ошибках, " +#~ "содержащих конфиденциальную информацию, в " +#~ "трекере задач или в других публичных " +#~ "местах. Конфиденциальные ошибки должны быть" +#~ " отправлены по электронной почте." +#~ msgstr "" + +#~ msgid "" +#~ "Мы используем ``Issues GitHub`` для " +#~ "отслеживания ошибок. Если вы столкнулись " +#~ "с проблемой в проекте:" +#~ msgstr "" + +#~ msgid "" +#~ "Откройте `Issue " +#~ "`_. (Поскольку" +#~ " на данном этапе мы не можем " +#~ "быть уверены, является ли это ошибкой," +#~ " мы просим вас пока не говорить " +#~ "об ошибке и не присваивать метку " +#~ "задаче.)" +#~ msgstr "" + +#~ msgid "Объясните поведение, которое вы ожидали, и фактическое поведение." +#~ msgstr "" + +#~ msgid "" +#~ "Пожалуйста, предоставьте как можно больше " +#~ "контекста и опишите *шаги для " +#~ "воспроизведения*, чтобы кто-то другой мог " +#~ "воссоздать проблему самостоятельно. Обычно это" +#~ " включает ваш код. Для хороших " +#~ "отчетов об ошибках следует изолировать " +#~ "проблему и создать сокращенный тестовый " +#~ "пример." +#~ msgstr "" + +#~ msgid "" +#~ "Член команды попытается воспроизвести проблему" +#~ " по вашим шагам. Если шагов для " +#~ "воспроизведения нет или нет очевидного " +#~ "способа воспроизвести проблему, команда " +#~ "попросит вас предоставить эти шаги и " +#~ "пометит задачу как `needs-repro`. Ошибки" +#~ " с меткой `needs-repro` не будут " +#~ "рассматриваться до тех пор, пока они " +#~ "не будут воспроизведены." +#~ msgstr "" + +#~ msgid "" +#~ "Если команда сможет воспроизвести проблему," +#~ " она будет помечена как `needs-fix`," +#~ " а также, возможно, другими метками " +#~ "(например, `critical`), и задача будет " +#~ "оставлена для :ref:`реализации кем-либо <Ваш" +#~ " первый вклад в код>`." +#~ msgstr "" + +#~ msgid "" +#~ "Этот раздел поможет вам отправить " +#~ "предложение по улучшению ``Argenta``, " +#~ "**включая совершенно новые функции и " +#~ "незначительные улучшения существующей " +#~ "функциональности**. Следование этим рекомендациям" +#~ " поможет мейнтейнерам и сообществу понять" +#~ " ваше предложение и найти связанные с" +#~ " ним предложения." +#~ msgstr "" + +#~ msgid "" +#~ "Внимательно прочтите `документацию " +#~ "`_ и выясните, не" +#~ " реализована ли уже данная " +#~ "функциональность, возможно, через индивидуальную " +#~ "конфигурацию." +#~ msgstr "" + +#~ msgid "" +#~ "Выполните `поиск " +#~ "`_, чтобы " +#~ "проверить, не было ли уже предложено " +#~ "данное улучшение. Если да, добавьте " +#~ "комментарий к существующей задаче вместо " +#~ "создания новой." +#~ msgstr "" + +#~ msgid "" +#~ "Определите, соответствует ли ваша идея " +#~ "масштабам и целям проекта. Вам предстоит" +#~ " убедительно доказать разработчикам проекта " +#~ "достоинства этой функции. Помните, что " +#~ "мы хотим видеть функции, которые будут" +#~ " полезны большинству наших пользователей, а" +#~ " не только небольшой их части. Если" +#~ " вы ориентируетесь только на меньшинство" +#~ " пользователей, рассмотрите возможность написания" +#~ " дополнения/плагина." +#~ msgstr "" + +#~ msgid "" +#~ "Предложения по улучшению отслеживаются как " +#~ "`Issues GitHub " +#~ "`_." +#~ msgstr "" + +#~ msgid "" +#~ "Используйте **четкий и описательный " +#~ "заголовок** для задачи, чтобы идентифицировать" +#~ " предложение." +#~ msgstr "" + +#~ msgid "" +#~ "Предоставьте **пошаговое описание предлагаемого " +#~ "улучшения** как можно подробнее." +#~ msgstr "" + +#~ msgid "" +#~ "**Опишите текущее поведение** и **объясните," +#~ " какое поведение вы ожидали увидеть " +#~ "вместо этого** и почему. На этом " +#~ "этапе вы также можете указать, какие " +#~ "альтернативы вам не подходят." +#~ msgstr "" + +#~ msgid "" +#~ "Вы можете **включить скриншоты или " +#~ "записи экрана**, которые помогут " +#~ "продемонстрировать шаги или указать на " +#~ "часть, к которой относится предложение." +#~ msgstr "" + +#~ msgid "" +#~ "**Объясните, почему это улучшение было " +#~ "бы полезно** большинству пользователей " +#~ "``Argenta``. Вы также можете указать на" +#~ " другие проекты, которые решили эту " +#~ "проблему лучше и которые могут послужить" +#~ " источником вдохновения." +#~ msgstr "" + +#~ msgid "" +#~ "Не знаете, с чего начать свой " +#~ "вклад в ``Argenta``? Вы можете начать" +#~ " с просмотра задач с метками ``good" +#~ " first issue`` и ``help wanted`` в" +#~ " нашем репозитории на ``GitHub``. Это " +#~ "задачи, которые хорошо подходят для " +#~ "новичков." +#~ msgstr "" + +#~ msgid "" +#~ "Чтобы начать вносить свой первый вклад" +#~ " в код, пожалуйста, выполните следующие " +#~ "шаги для настройки вашего локального " +#~ "окружения для разработки." +#~ msgstr "" + +#~ msgid "" +#~ "Создайте новую ветку для вашей новой " +#~ "функции или исправления ошибки. Используйте" +#~ " описательное имя, например ``fix/login-" +#~ "bug`` или ``feat/new-widget``." +#~ msgstr "" + +#~ msgid "" +#~ "Внесите свои изменения! Напишите код и" +#~ " не забудьте добавить или обновить " +#~ "тесты для ваших изменений." +#~ msgstr "" + +#~ msgid "" +#~ "Сделайте коммит ваших изменений, следуя " +#~ "нашему руководству по стилю сообщений " +#~ "коммитов, и отправьте их в ваш " +#~ "форк." +#~ msgstr "" + +#~ msgid "" +#~ "Откройте ``Pull Request`` из вашей ветки" +#~ " в ветку ``main`` официального репозитория" +#~ " ``Argenta``. Предоставьте четкое описание " +#~ "проблемы и вашего решения. Укажите номер" +#~ " связанной задачи, если это применимо." +#~ msgstr "" + +#~ msgid "" +#~ "Хорошая документация крайне важна для " +#~ "любого проекта. Мы используем ``Sphinx`` " +#~ "для генерации нашей документации из " +#~ "исходных файлов, расположенных в директории" +#~ " ``docs/``. Мы приветствуем любые " +#~ "улучшения, от исправления простой опечатки " +#~ "до написания целого нового раздела." +#~ msgstr "" + +#~ msgid "" +#~ "Внесите необходимые изменения в **русскую**" +#~ " версию документации - ``docs/index.rst`` " +#~ "и/или ``docs/root/*``" +#~ msgstr "" + +#~ msgid "" +#~ "Чтобы собрать документацию локально и " +#~ "увидеть ваши изменения, выполните:" +#~ msgstr "" + +#~ msgid "" +#~ "Откройте ``127.0.0.1:8000`` в вашем " +#~ "веб-браузере, чтобы просмотреть сгенерированную " +#~ "документацию." +#~ msgstr "" + +#~ msgid "" +#~ "После завершения работы над русской " +#~ "документацией необходимо создать английский " +#~ "перевод:" +#~ msgstr "" + +#~ msgid "" +#~ "После обновления шаблона перевода, обновите" +#~ " необходимые файлы перевода, расположенные " +#~ "по пути ``docs/locales/en/LC_MESSAGES``." +#~ msgstr "" + +#~ msgid "" +#~ "Когда вы будете довольны своими " +#~ "изменениями, сделайте коммит и откройте " +#~ "``Pull Request``. Используйте префикс " +#~ "``docs:`` в сообщении коммита." +#~ msgstr "" + +#~ msgid "" +#~ "Мы следуем спецификации `Conventional Commits" +#~ " `_ для " +#~ "наших сообщений коммитов. Это приводит к" +#~ " более читаемым сообщениям, которые легко" +#~ " отслеживать при просмотре истории проекта," +#~ " и позволяет автоматически генерировать " +#~ "журнал изменений." +#~ msgstr "" + +#~ msgid "" +#~ "Мы всегда ищем энтузиастов и преданных" +#~ " своему делу людей для присоединения " +#~ "к нашей команде проекта. Если вы " +#~ "являетесь постоянным участником и " +#~ "продемонстрировали глубокое понимание целей и" +#~ " архитектуры проекта, вы можете стать " +#~ "хорошим кандидатом на роль мейнтейнера." +#~ msgstr "" + +#~ msgid "" +#~ "Активные члены сообщества могут стать " +#~ "членами команды. Обычно это включает в" +#~ " себя:" +#~ msgstr "" + +#~ msgid "Постоянный вклад в виде высококачественного кода и документации." +#~ msgstr "" + +#~ msgid "Помощь другим пользователям, отвечая на вопросы и разбирая проблемы." +#~ msgstr "" + +#~ msgid "" +#~ "Проверку ``Pull Request`` от других " +#~ "участников с конструктивной обратной связью." +#~ msgstr "" + +#~ msgid "" +#~ "Если вы заинтересованы в том, чтобы " +#~ "стать постоянным членом команды, лучший " +#~ "способ начать — это быть активным " +#~ "и полезным членом сообщества. Существующие " +#~ "мейнтейнеры заметят ваши усилия и могут" +#~ " связаться с вами с приглашением " +#~ "присоединиться к команде." +#~ msgstr "" + diff --git a/docs/locales/en/LC_MESSAGES/root/dependency_injection.po b/docs/locales/en/LC_MESSAGES/root/dependency_injection.po index 7e7844e..7aaac6d 100644 --- a/docs/locales/en/LC_MESSAGES/root/dependency_injection.po +++ b/docs/locales/en/LC_MESSAGES/root/dependency_injection.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -27,105 +27,185 @@ msgstr "Dependency Injection" msgid "" "Внедрение зависимостей (Dependency Injection, DI) — это паттерн " "проектирования, который помогает писать слабосвязанный, легко тестируемый" -" и расширяемый код. Вместо того чтобы хендлеры сами создавали нужные им " -"объекты (зависимости) они лишь объявляют о необходимости в их получении, " -"а ``Argenta`` \"внедряет\" их в хендлеры в момент вызова." +" и расширяемый код. Вместо того чтобы обработчики сами создавали нужные " +"им объекты (зависимости), они лишь объявляют их в качестве аргументов. В " +"момент вызова ``Argenta`` автоматически \"внедряет\" эти зависимости." msgstr "" #: ../../root/dependency_injection.rst:8 msgid "" -"``Argenta`` использует популярную библиотеку ``dishka`` для реализации " -"DI, что позволяет вам декларативно объявлять зависимости прямо в " -"сигнатурах ваших хендлеров. Более подробно про ``DI``, ``IoC``, ``API`` " -"создания провайдеров и другое вы можете прочитать тут_." +"``Argenta`` использует библиотеку ``dishka`` для реализации DI, что " +"позволяет декларативно объявлять зависимости прямо в сигнатурах ваших " +"обработчиков. Подробнее о `DI`, `IoC` и API для создания провайдеров " +"можно прочитать в `официальной документации dishka " +"`_." msgstr "" -#: ../../root/dependency_injection.rst:14 +#: ../../root/dependency_injection.rst:12 msgid "Основная идея" msgstr "" -#: ../../root/dependency_injection.rst:16 +#: ../../root/dependency_injection.rst:14 msgid "" -"Представьте, что вашему хендлеру для работы нужен доступ к базе данных. " -"Вместо того чтобы импортировать и инициализировать соединение внутри " -"функции, вы просто объявляете его как аргумент с тайп-хинтом:" +"Представьте, что вашему обработчику для работы нужен доступ к базе " +"данных. Вместо импорта и инициализации соединения внутри функции, вы " +"просто объявляете его как аргумент с аннотацией типа:" msgstr "" -#: ../../root/dependency_injection.rst:19 +#: ../../root/dependency_injection.rst:17 msgid "" -"``argenta.di.FromDishka`` это алиас к ``dishka.FromDishka``, они " -"полностью взаимозаменяемы." +"``argenta.di.FromDishka`` является псевдонимом для ``dishka.FromDishka``," +" и они полностью взаимозаменяемы." msgstr "" -#: ../../root/dependency_injection.rst:24 +#: ../../root/dependency_injection.rst:23 msgid "" -"``Argenta`` -> ``dishka`` зарезолвит тайпхинты и внедрит зависимость с " -"возвращаемым типом ``Connection``, прежде чем использовать зависимость её" -" нужно создать, для этого нужно создать соответствующий провайдер." +"``Argenta`` с помощью ``dishka`` разрешит зависимость по типу " +"``Connection`` и внедрит её. Но прежде чем использовать зависимость, её " +"необходимо объявить в провайдере." msgstr "" #: ../../root/dependency_injection.rst:29 -msgid "После создания провайдера, его нужно зарегистрировать в оркестраторе." +msgid "После создания провайдера его необходимо зарегистрировать в оркестраторе." msgstr "" -#: ../../root/dependency_injection.rst:35 +#: ../../root/dependency_injection.rst:36 msgid "Как это работает?" msgstr "" -#: ../../root/dependency_injection.rst:37 -msgid "В основе DI в Argente лежат **провайдеры** и **контейнер**." +#: ../../root/dependency_injection.rst:38 +msgid "В основе DI в Argenta лежат **провайдеры** и **контейнер**." msgstr "" -#: ../../root/dependency_injection.rst:39 +#: ../../root/dependency_injection.rst:40 msgid "" "**Провайдер (Provider)** — это \"рецепт\", который объясняет, как " "создавать и настраивать ту или иную зависимость (например, подключение к " "БД, API-клиент или любой другой сервис)." msgstr "" -#: ../../root/dependency_injection.rst:40 +#: ../../root/dependency_injection.rst:41 msgid "" "**Контейнер (IoC Container)** — это \"фабрика\", которая хранит все " "рецепты (провайдеры) и по запросу создаёт и выдаёт готовые зависимости." msgstr "" -#: ../../root/dependency_injection.rst:43 +#: ../../root/dependency_injection.rst:44 msgid "Встроенные провайдеры" msgstr "" -#: ../../root/dependency_injection.rst:45 +#: ../../root/dependency_injection.rst:46 msgid "" -"``Argenta`` поставляется с предопределённым провайдером, который даёт " -"доступ к важным системным зависимостям без какой-либо настройки. К " -"примеру вы можете получить объект ``ArgSpace``, который представляет из " -"себя распаршенные аргументы командной строки при запуске приложения." +"``Argenta`` поставляется со встроенным провайдером, который даёт доступ к" +" важным системным зависимостям без дополнительной настройки. Например, вы" +" можете получить объект ``ArgSpace``, который содержит аргументы " +"командной строки, переданные при запуске приложения." msgstr "" -#: ../../root/dependency_injection.rst:47 +#: ../../root/dependency_injection.rst:48 msgid "" -"Краткий сэмпл кода, который получает объект ``ArgSpace`` и выводит в " -"консоль аргумент с именем \"type\":" -msgstr "" - -#: ../../root/dependency_injection.rst:53 -msgid "Обмен данными между хендлерами" +"Пример получения объекта ``ArgSpace`` и вывода в консоль значения " +"аргумента `type`:" msgstr "" #: ../../root/dependency_injection.rst:55 -msgid "" -"Помимо DI, хендлеры могут общаться друг с другом в контексте приложения " -"через **объект контекста** (в ``Argenta`` эту роль выполняет объект " -"``Response``)." +msgid "Обмен данными между хендлерами" msgstr "" #: ../../root/dependency_injection.rst:57 -msgid "Каждый хендлер может записывать данные, читать, обновлять и удалять." +msgid "" +"Помимо DI, обработчики могут обмениваться данными в рамках сессии через " +"**объект контекста**. В ``Argenta`` эту роль выполняет объект " +"``Response``." msgstr "" -#: ../../root/dependency_injection.rst:61 +#: ../../root/dependency_injection.rst:59 +msgid "" +"Каждый обработчик может записывать в него данные, а также читать, " +"обновлять и удалять их." +msgstr "" + +#: ../../root/dependency_injection.rst:63 msgid "Подробнее об этом можно прочитать в разделе :ref:`root_api_response`." msgstr "" #~ msgid "мда мда мда" #~ 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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/error_handling.po b/docs/locales/en/LC_MESSAGES/root/error_handling.po index 535ddd5..6f91bda 100644 --- a/docs/locales/en/LC_MESSAGES/root/error_handling.po +++ b/docs/locales/en/LC_MESSAGES/root/error_handling.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -30,177 +30,159 @@ msgstr "" #: ../../root/error_handling.rst:9 msgid "" -"``Argenta`` в рантайме вызывает исключения в пограничных случаях " -"пользовательского ввода. Все исключения обрабатываются системными " -"хэндлерами, но у вас есть возможность их переопределить. Переопределение " -"осуществляется с помощью сеттеров инстанса ``App`` - " -"``.set_*_handler(_)``, где ``_`` - это протокол хэндлера нестандартного " -"поведения, подробнее о каждом протоколе и соответствующем сеттере " -":ref:`ниже `" +"Argenta выбрасывает исключения в пограничных случаях, связанных с " +"пользовательским вводом. По умолчанию они обрабатываются системными " +"хэндлерами, но вы можете их переопределить. Это делается с помощью " +"сеттеров экземпляра ``App`` вида ``.set_*_handler()``. Подробнее о каждом" +" из них рассказано :ref:`ниже `." +msgstr "" + +#: ../../root/error_handling.rst:13 +msgid "" +"Ни одно исключение не остаётся необработанным, так как для каждого случая" +" предусмотрен стандартный хэндлер. Поэтому переопределение является " +"опциональным." msgstr "" #: ../../root/error_handling.rst:15 -msgid "" -"Все исключения никогда не остаются необработанными, так как у них есть " -"стандартные хэндлеры. Поэтому переопределение опционально." +msgid "Пример переопределения обработчика для пустой команды:" msgstr "" -#: ../../root/error_handling.rst:17 -msgid "Краткий сэмпл кода, переопределяющего хэндлер ввода пустой команды" -msgstr "" - -#: ../../root/error_handling.rst:27 +#: ../../root/error_handling.rst:25 msgid "Возможные исключения и нестандартное поведение" msgstr "" -#: ../../root/error_handling.rst:30 -msgid "``UnprocessedInputFlagException``: Необрабатываемый ввод от пользователя" +#: ../../root/error_handling.rst:28 +msgid "``UnprocessedInputFlagException``: Некорректный синтаксис флагов" msgstr "" -#: ../../root/error_handling.rst:32 +#: ../../root/error_handling.rst:30 msgid "" -"Исключение вызывается, когда пользователь вводит команду с некорректным " -"синтаксисом и как следствие парсер не может *распарсить* её. В " -"большинстве случаев это означат, что проблема в синтаксисе введённых " -"флагов команды, подробнее о флагах и их синтаксисе в :ref:`Flags " +"Это исключение выбрасывается, когда парсер не может обработать команду " +"из-за некорректного синтаксиса. Чаще всего это связано с ошибкой в " +"синтаксисе флагов. Подробнее о них можно прочитать в разделе :ref:`Flags " "`." msgstr "" -#: ../../root/error_handling.rst:36 ../../root/error_handling.rst:62 -#: ../../root/error_handling.rst:84 ../../root/error_handling.rst:107 -msgid "Дефолтный хэндлер выводит в консоль" +#: ../../root/error_handling.rst:32 ../../root/error_handling.rst:56 +#: ../../root/error_handling.rst:77 ../../root/error_handling.rst:98 +msgid "Стандартный хэндлер выводит в консоль" msgstr "" -#: ../../root/error_handling.rst:42 +#: ../../root/error_handling.rst:38 msgid "" -"Для переопределения стандартного поведения используется сеттер " -"``.set_incorrect_input_syntax_handler(_: " -"NonStandardBehaviorHandler[str])``, протокол " -"``NonStandardBehaviorHandler[str]`` соответствует ``Callable[[str], " -"None]``, то есть хэндлер должен быть вызываемым объектом, к примеру " -"функция или лямбда, которая принимает единственный аргумент - строку, " -"которая представляет собой необработанную введённую команду, и ничего не " -"возвращает." +"Для переопределения используется сеттер " +"``.set_incorrect_input_syntax_handler()``. Он принимает на вход " +"обработчик с сигнатурой ``Callable[[str], None]``, где единственный " +"аргумент — это строка с необработанной командой." msgstr "" -#: ../../root/error_handling.rst:46 +#: ../../root/error_handling.rst:40 msgid "" -"Сэмпл кода, переопределяющего хэндлер ввода команды с некорректным " +"Пример кода, переопределяющего хэндлер ввода команды с некорректным " "синтаксисом:" msgstr "" -#: ../../root/error_handling.rst:54 -msgid "``RepeatedInputFlagsException``: Повторяющийся флаг в введённой команде" +#: ../../root/error_handling.rst:49 +msgid "``RepeatedInputFlagsException``: Повторяющиеся флаги в команде" msgstr "" -#: ../../root/error_handling.rst:56 +#: ../../root/error_handling.rst:51 msgid "" -"Исключение вызывается, когда пользователь вводит команду с повторяющимся " -"флагом, пара введённых флагов(:ref:`InputFlag " -"`) считается равной, если у них одинаковые " -"имена. Подробнее о флагах и их синтаксисе в :ref:`Flags `." +"Исключение выбрасывается, если пользователь ввёл команду с повторяющимися" +" флагами. Два флага (:ref:`InputFlag `) " +"считаются одинаковыми, если у них совпадают имена. Подробнее о флагах и " +"их синтаксисе — в разделе :ref:`Flags `." msgstr "" -#: ../../root/error_handling.rst:60 +#: ../../root/error_handling.rst:54 msgid "" "Сравнение на равенство у регистрируемых флагов(Flag) происходит иначе, " "подробнее в :ref:`Flag `." msgstr "" -#: ../../root/error_handling.rst:68 +#: ../../root/error_handling.rst:62 msgid "" -"Для переопределения стандартного поведения используется сеттер " -"``.set_repeated_input_flags_handler(_: " -"NonStandardBehaviorHandler[str])``, протокол " -"``NonStandardBehaviorHandler[str]`` соответствует ``Callable[[str], " -"None]``, то есть хэндлер должен быть вызываемым объектом, к примеру " -"функция или лямбда, которая принимает единственный аргумент - строку, " -"которая представляет собой необработанную введённую команду, и ничего не " -"возвращает." +"Для переопределения используется сеттер " +"``.set_repeated_input_flags_handler()``. Он принимает на вход обработчик " +"с сигнатурой ``Callable[[str], None]``, где единственный аргумент — это " +"строка с необработанной командой." msgstr "" -#: ../../root/error_handling.rst:72 +#: ../../root/error_handling.rst:64 msgid "" -"Сэмпл кода, переопределяющего хэндлер ввода команды с повторяющимися " +"Пример кода, переопределяющего хэндлер ввода команды с повторяющимися " "флагами:" msgstr "" -#: ../../root/error_handling.rst:80 +#: ../../root/error_handling.rst:73 msgid "``EmptyInputCommandException``: Введена пустая команда" msgstr "" -#: ../../root/error_handling.rst:82 +#: ../../root/error_handling.rst:75 msgid "" -"Исключение вызывается, когда пользователь вводит команду в виде строки из" -" пробельных символов - ``\\n``, ``\\t``, пробел и т.д." +"Исключение выбрасывается, если пользователь ввёл пустую строку или " +"строку, состоящую только из пробельных символов (``\\n``, ``\\t``, пробел" +" и т.д.)." msgstr "" -#: ../../root/error_handling.rst:90 +#: ../../root/error_handling.rst:83 msgid "" -"Для переопределения стандартного поведения используется сеттер " -"``.set_empty_command_handler(_: EmptyCommandHandler)``, протокол " -"``EmptyCommandHandler`` соответствует ``Callable[[], None]``, то есть " -"хэндлер должен быть вызываемым объектом, к примеру функция или лямбда, " -"которая не принимает аргументов и ничего не возвращает." +"Для переопределения используется сеттер ``.set_empty_command_handler()``." +" Он принимает на вход обработчик с сигнатурой ``Callable[[], None]`` (без" +" аргументов)." +msgstr "" + +#: ../../root/error_handling.rst:85 +msgid "Пример кода, переопределяющего хэндлер ввода пустой команды:" msgstr "" #: ../../root/error_handling.rst:94 -msgid "Сэмпл кода, переопределяющего хэндлер ввода пустой команды:" +msgid "Обработка неизвестной команды" msgstr "" -#: ../../root/error_handling.rst:102 -msgid "``Поведение обработки неизвестной команды``: Введена неизвестная команда" +#: ../../root/error_handling.rst:96 +msgid "" +"Это поведение активируется, когда пользователь вводит команду, которая не" +" зарегистрирована ни в одном из роутеров и не является псевдонимом " +"(alias) для существующей команды." msgstr "" #: ../../root/error_handling.rst:104 msgid "" -"Поведение триггерится, когда пользователь вводит команду, которая не " -"зарегистрирована ни в одном роутере и не является алиасом ни для одной " -"зарегистрированной команды." +"Для переопределения используется сеттер " +"``.set_unknown_command_handler()``. Он принимает на вход обработчик с " +"сигнатурой ``Callable[[InputCommand], None]``, где аргумент — объект " +":ref:`InputCommand `." msgstr "" -#: ../../root/error_handling.rst:113 -msgid "" -"Для переопределения стандартного поведения используется сеттер " -"``.set_unknown_command_handler(_: " -"NonStandardBehaviorHandler[InputCommand])``, протокол " -"``NonStandardBehaviorHandler[InputCommand]`` соответствует " -"``Callable[[InputCommand], None]``, то есть хэндлер должен быть " -"вызываемым объектом, к примеру функция или лямбда, которая принимает " -"обязательный аргумент типа :ref:`InputCommand ` и ничего " -"не возвращает." +#: ../../root/error_handling.rst:106 +msgid "Пример кода, переопределяющего хэндлер ввода неизвестной команды:" +msgstr "" + +#: ../../root/error_handling.rst:115 +msgid "Выход из приложения" msgstr "" #: ../../root/error_handling.rst:117 -msgid "Сэмпл кода, переопределяющего хэндлер ввода неизвестной команды:" +msgid "" +"Это поведение активируется, когда пользователь вводит команду, помеченную" +" как команда выхода." +msgstr "" + +#: ../../root/error_handling.rst:119 +msgid "Стандартный хэндлер выводит в консоль текст и завершает работу приложения." msgstr "" #: ../../root/error_handling.rst:125 -msgid "``Поведение выхода из приложения``: Введена команда выхода" +msgid "" +"Для переопределения используется сеттер ``.set_exit_command_handler()``. " +"Он принимает на вход обработчик с сигнатурой ``Callable[[Response], " +"None]``, где аргумент — объект :ref:`Response `." msgstr "" #: ../../root/error_handling.rst:127 -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 ` и ничего не возвращает." -msgstr "" - -#: ../../root/error_handling.rst:139 -msgid "Сэмпл кода, переопределяющего хэндлер ввода команды выхода:" +msgid "Пример кода, переопределяющего хэндлер ввода команды выхода:" msgstr "" #~ msgid "привет" @@ -465,3 +447,178 @@ msgstr "" #~ "возвращает." #~ msgstr "" +#~ msgid "" +#~ "``Argenta`` в рантайме вызывает исключения " +#~ "в пограничных случаях пользовательского ввода." +#~ " Все исключения обрабатываются системными " +#~ "хэндлерами, но у вас есть возможность" +#~ " их переопределить. Переопределение " +#~ "осуществляется с помощью сеттеров инстанса " +#~ "``App`` - ``.set_*_handler(_)``, где ``_`` " +#~ "- это протокол хэндлера нестандартного " +#~ "поведения, подробнее о каждом протоколе " +#~ "и соответствующем сеттере :ref:`ниже " +#~ "`" +#~ msgstr "" + +#~ msgid "" +#~ "Все исключения никогда не остаются " +#~ "необработанными, так как у них есть " +#~ "стандартные хэндлеры. Поэтому переопределение " +#~ "опционально." +#~ msgstr "" + +#~ msgid "Краткий сэмпл кода, переопределяющего хэндлер ввода пустой команды" +#~ msgstr "" + +#~ msgid "" +#~ "``UnprocessedInputFlagException``: Необрабатываемый ввод" +#~ " от пользователя" +#~ msgstr "" + +#~ msgid "" +#~ "Исключение вызывается, когда пользователь " +#~ "вводит команду с некорректным синтаксисом " +#~ "и как следствие парсер не может " +#~ "*распарсить* её. В большинстве случаев " +#~ "это означат, что проблема в синтаксисе" +#~ " введённых флагов команды, подробнее о " +#~ "флагах и их синтаксисе в :ref:`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 " +#~ "`) считается равной, " +#~ "если у них одинаковые имена. Подробнее" +#~ " о флагах и их синтаксисе в " +#~ ":ref:`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 ` и ничего " +#~ "не возвращает." +#~ msgstr "" + +#~ msgid "Сэмпл кода, переопределяющего хэндлер ввода неизвестной команды:" +#~ msgstr "" + +#~ msgid "``Поведение выхода из приложения``: Введена команда выхода" +#~ msgstr "" + +#~ msgid "" +#~ "Поведение триггерится, когда пользователь " +#~ "вводит команду, которая маркирована как " +#~ "команда завершения работы." +#~ msgstr "" + +#~ msgid "" +#~ "Дефолтный хэндлер выводит в консоль " +#~ "текст и завершает работу приложения." +#~ msgstr "" + +#~ msgid "" +#~ "Для переопределения стандартного поведения " +#~ "используется сеттер ``.set_exit_command_handler(_: " +#~ "NonStandardBehaviorHandler[Response])``, протокол " +#~ "``NonStandardBehaviorHandler[Response]`` соответствует " +#~ "``Callable[[Response], None]``, то есть " +#~ "хэндлер должен быть вызываемым объектом, " +#~ "к примеру функция или лямбда, которая" +#~ " принимает обязательный аргумент типа " +#~ ":ref:`Response ` и ничего " +#~ "не возвращает." +#~ msgstr "" + +#~ msgid "Сэмпл кода, переопределяющего хэндлер ввода команды выхода:" +#~ msgstr "" + diff --git a/docs/locales/en/LC_MESSAGES/root/flags.po b/docs/locales/en/LC_MESSAGES/root/flags.po index 8b4478a..587cc4a 100644 --- a/docs/locales/en/LC_MESSAGES/root/flags.po +++ b/docs/locales/en/LC_MESSAGES/root/flags.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,93 +25,152 @@ msgstr "" #: ../../root/flags.rst:6 msgid "" -"Флаги (или параметры) — это специальные аргументы, которые конечный юзер " -"может добавлять к командам, чтобы управлять их поведением." -msgstr "" - -#: ../../root/flags.rst:9 -msgid "Синтаксис флагов" +"Флаги (или параметры) — это специальные аргументы, которые пользователь " +"может добавлять к командам для управления их поведением." msgstr "" #: ../../root/flags.rst:11 -msgid "Обобщённый синтаксис выглядит так:" +msgid "Синтаксис флагов" msgstr "" -#: ../../root/flags.rst:17 +#: ../../root/flags.rst:13 +msgid "Общий синтаксис выглядит так:" +msgstr "" + +#: ../../root/flags.rst:19 msgid "" -"То есть, у флага обязательно должен быть префикс, который может быть " -"одним, двум или трем минусам. После префикса следует имя флага, без " -"пробела, после, через пробел, идёт значение флага, если оно есть." +"Флаг состоит из префикса (``-``, ``--`` или ``---``), имени и, " +"опционально, значения, которое указывается через пробел." msgstr "" -#: ../../root/flags.rst:21 +#: ../../root/flags.rst:24 msgid "Два типа флагов" msgstr "" -#: ../../root/flags.rst:23 -msgid "" -"Флаги бывают двух основных видов: без значений (переключатели) и со " -"значениями. ``Argenta`` позволяет регистрировать и вводить флаги обоих " -"типов в любой последовательности для одной команды." -msgstr "" - #: ../../root/flags.rst:26 msgid "" -"Ошибки валидации значений являются пассивными, их не нужно обрабатывать " -"явно. У каждого инстанса :ref:`InputFlag ` " -"есть поле ``status``, по которому можно определить результат валидации " -"флага. **Конкретная реализация и описание API вы можете найти в разделе**" -" :ref:`Flag `." +"Флаги бывают двух основных видов: без значений (переключатели) и со " +"значениями. ``Argenta`` позволяет регистрировать и вводить флаги обоих " +"типов в любой последовательности для одной команды." msgstr "" -#: ../../root/flags.rst:28 +#: ../../root/flags.rst:29 msgid "" -"При регистрации флага вы можете указать допустимые для него значения, по " -"умолчанию любое введённое значение для флага будет валидным. Допустимые " -"значения можно указать различными способами:" +"Ошибки валидации не выбрасывают исключений. Вместо этого у каждого " +"объекта :ref:`InputFlag ` есть атрибут " +"``status``, по которому можно определить, прошла ли валидация успешно. " +"Подробное описание API для создания флагов находится в разделе :ref:`Flag" +" `." msgstr "" #: ../../root/flags.rst:31 +msgid "" +"При регистрации флага можно задать правила валидации для его значения. По" +" умолчанию любое значение считается корректным. Валидацию можно настроить" +" несколькими способами:" +msgstr "" + +#: ../../root/flags.rst:36 msgid "Ограничение по списку возможных значений" msgstr "" -#: ../../root/flags.rst:33 +#: ../../root/flags.rst:38 msgid "Вы можете заранее определить список допустимых значений для флага." msgstr "" -#: ../../root/flags.rst:35 ../../root/flags.rst:52 -msgid "**Пример:**" -msgstr "" - -#: ../../root/flags.rst:37 +#: ../../root/flags.rst:40 msgid "" "Предположим, у вас есть флаг ``--format``, который может принимать только" " значения ``json`` или ``xml``." msgstr "" -#: ../../root/flags.rst:48 +#: ../../root/flags.rst:54 msgid "Проверка с помощью регулярных выражений" msgstr "" -#: ../../root/flags.rst:50 +#: ../../root/flags.rst:56 msgid "" -"Для более сложных проверок вы можете использовать регулярные выражения. " -"Это особенно полезно, когда значение должно соответствовать определённому" -" формату, например, быть email-адресом, датой или номером телефона." +"Для более сложных проверок можно использовать регулярные выражения. Это " +"полезно, когда значение должно соответствовать определённому формату " +"(например, email-адрес, дата или номер телефона)." msgstr "" -#: ../../root/flags.rst:54 +#: ../../root/flags.rst:58 msgid "" "Допустим, флаг ``--email`` должен принимать только корректные " "email-адреса." msgstr "" -#: ../../root/flags.rst:64 +#: ../../root/flags.rst:69 msgid "" -"Встроенная валидация избавляет вас от необходимости писать ручные " -"проверки и делает ваш код более декларативным." +"Встроенная валидация избавляет от необходимости писать проверки вручную и" +" делает код более декларативным." msgstr "" #~ msgid "Флаги" #~ msgstr "" +#~ msgid "" +#~ "Флаги (или параметры) — это специальные" +#~ " аргументы, которые конечный юзер может " +#~ "добавлять к командам, чтобы управлять их" +#~ " поведением." +#~ msgstr "" + +#~ msgid "Обобщённый синтаксис выглядит так:" +#~ msgstr "" + +#~ msgid "" +#~ "То есть, у флага обязательно должен " +#~ "быть префикс, который может быть одним," +#~ " двум или трем минусам. После " +#~ "префикса следует имя флага, без пробела," +#~ " после, через пробел, идёт значение " +#~ "флага, если оно есть." +#~ msgstr "" + +#~ msgid "" +#~ "Флаги бывают двух основных видов: без" +#~ " значений (переключатели) и со значениями." +#~ " ``Argenta`` позволяет регистрировать и " +#~ "вводить флаги обоих типов в любой " +#~ "последовательности для одной команды." +#~ msgstr "" + +#~ msgid "" +#~ "Ошибки валидации значений являются пассивными," +#~ " их не нужно обрабатывать явно. У " +#~ "каждого инстанса :ref:`InputFlag " +#~ "` есть поле ``status``," +#~ " по которому можно определить результат " +#~ "валидации флага. **Конкретная реализация и " +#~ "описание API вы можете найти в " +#~ "разделе** :ref:`Flag `." +#~ msgstr "" + +#~ msgid "" +#~ "При регистрации флага вы можете указать" +#~ " допустимые для него значения, по " +#~ "умолчанию любое введённое значение для " +#~ "флага будет валидным. Допустимые значения " +#~ "можно указать различными способами:" +#~ msgstr "" + +#~ msgid "**Пример:**" +#~ msgstr "" + +#~ msgid "" +#~ "Для более сложных проверок вы можете " +#~ "использовать регулярные выражения. Это " +#~ "особенно полезно, когда значение должно " +#~ "соответствовать определённому формату, например, " +#~ "быть email-адресом, датой или номером " +#~ "телефона." +#~ msgstr "" + +#~ msgid "" +#~ "Встроенная валидация избавляет вас от " +#~ "необходимости писать ручные проверки и " +#~ "делает ваш код более декларативным." +#~ msgstr "" + diff --git a/docs/locales/en/LC_MESSAGES/root/overriding_formatting.po b/docs/locales/en/LC_MESSAGES/root/overriding_formatting.po index 7096b6b..5fcf341 100644 --- a/docs/locales/en/LC_MESSAGES/root/overriding_formatting.po +++ b/docs/locales/en/LC_MESSAGES/root/overriding_formatting.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -21,23 +21,22 @@ msgstr "" #: ../../root/overriding_formatting.rst:4 #, fuzzy -msgid "Стандартное форматирование" +msgid "Управление форматированием вывода" msgstr "Overriding formatting" #: ../../root/overriding_formatting.rst:6 msgid "" -"По умолчанию в ``Argenta`` используется библиотека ``rich`` для вывода " -"текста с расширенным форматированием в консоли. ``rich`` позволяет " -"применять цвета, стили (жирный, курсив, подчеркнутый), составлять " -"таблицы, выделять синтаксис кода и многое другое, что значительно " -"улучшает визуальное восприятие текста." +"По умолчанию ``Argenta`` использует библиотеку ``rich`` для вывода текста" +" с расширенным форматированием. Она позволяет применять цвета и стили, " +"создавать таблицы, подсвечивать синтаксис и многое другое, что улучшает " +"визуальное восприятие информации." msgstr "" #: ../../root/overriding_formatting.rst:8 msgid "" -"Вывод системных сообщений производится с помощью метода ``print`` объекта" -" ``Console`` из библиотеки ``rich``, который обладает интерфейсом, " -"совместимым со встроенной функцией ``print``." +"Системные сообщения выводятся с помощью метода ``print`` объекта " +"``rich.console.Console``, который имеет интерфейс, совместимый со " +"встроенной функцией ``print``." msgstr "" #: ../../root/overriding_formatting.rst:13 @@ -47,18 +46,15 @@ msgstr "Overriding formatting" #: ../../root/overriding_formatting.rst:15 msgid "" -"При создании экземпляра класса ``App`` предусмотрен параметр " -"``override_system_messages`` типа ``bool`` (по умолчанию ``False``), " -"который позволяет включать или отключать стандартное форматирование " -"системных сообщений." +"При создании экземпляра ``App`` можно использовать параметр " +"``override_system_messages: bool`` (по умолчанию ``False``), который " +"позволяет отключать стандартное форматирование." msgstr "" #: ../../root/overriding_formatting.rst:17 msgid "" -"Если установить этот флаг в ``True``, стандартное форматирование, " -"применяемое по умолчанию (например, стилизация текста и ASCII-арт), будет" -" отключено, и системные сообщения будут выводиться в \"сыром\" виде, без " -"дополнительных стилей." +"Если установить его в ``True``, стилизация текста и ASCII-арт будут " +"отключены, а системные сообщения — выводиться в «сыром» виде." msgstr "" #: ../../root/overriding_formatting.rst:22 @@ -68,18 +64,16 @@ msgstr "" #: ../../root/overriding_formatting.rst:24 msgid "" "Приветственное (``initial_message``) и прощальное (``farewell_message``) " -"сообщения по умолчанию формируются как ASCII-графика с помощью библиотеки" -" ``art``. В частности, используется функция ``text2art``, которая " -"преобразует обычный текст в стилизованное ASCII-арт изображение." +"сообщения по умолчанию выводятся в виде ASCII-графики с помощью " +"библиотеки ``art`` (а именно, функции ``text2art``)." msgstr "" #: ../../root/overriding_formatting.rst:27 msgid "" "Библиотека ``art`` ориентирована на работу с ASCII-символами и **не " -"поддерживает корректный вывод кириллицы**. Это приводит к искажению или " -"некорректному отображению символов русского и других кириллических " -"алфавитов. Если ваше приветственное сообщение содержит кириллицу, " -"рекомендуется отключить стандартное форматирование с помощью " +"поддерживает кириллицу**. Это приводит к искажению символов русского и " +"других кириллических алфавитов. Если ваше сообщение содержит кириллицу, " +"рекомендуется отключить форматирование с помощью " "``override_system_messages=True`` или использовать только латинские " "символы." msgstr "" @@ -90,17 +84,16 @@ msgstr "" #: ../../root/overriding_formatting.rst:34 msgid "" -"Для полной замены логики вывода сообщений в конструкторе ``App`` доступен" -" параметр ``print_func``." +"Для полной замены логики вывода в конструкторе ``App`` предусмотрен " +"параметр ``print_func``." msgstr "" #: ../../root/overriding_formatting.rst:36 msgid "" -"**print_func**: ``Printer`` - Протокол ``Printer`` соответствует " -"``Callable[[str], None]``. Этот параметр позволяет передать любую " -"вызываемую сущность (например, функцию или лямбду), которая будет " +"**print_func**: ``Callable[[str], None]`` Этот параметр позволяет " +"передать любую вызываемую сущность (например, функцию), которая будет " "использоваться для вывода всех системных сообщений. По умолчанию это " -"обертка вокруг ``rich.console.Console().print``. Вы можете передать сюда " +"обёртка над ``rich.console.Console().print``. Вы можете передать сюда " "свою функцию, чтобы, например, логировать вывод в файл или отправлять его" " по сети." msgstr "" @@ -112,3 +105,85 @@ msgstr "" #~ msgid "ндааааааааааааааа" #~ 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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/quickstart.po b/docs/locales/en/LC_MESSAGES/root/quickstart.po index 1f3dfa8..238b2d1 100644 --- a/docs/locales/en/LC_MESSAGES/root/quickstart.po +++ b/docs/locales/en/LC_MESSAGES/root/quickstart.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -24,32 +24,105 @@ msgid "Быстрый старт" msgstr "Quick Start" #: ../../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 "" #: ../../root/quickstart.rst:12 -msgid "" -"**Определение роутера и хэндлеров**. За регистрацию функции как " -"обработчика отвечает декоратор ``@router.command``, хэндлер всегда должен" -" принимать аргумент с типом ``Response``, подробнее в :ref:`разделе " -"`." +msgid "Простой пример" msgstr "" -#: ../../root/quickstart.rst:17 +#: ../../root/quickstart.rst:14 msgid "" -"**Определение приложения и оркестратора**. Для запуска приложения " -"необходимо вызвать ``.include_router()`` у созданного приложения и " -"передать ему раннее созданный роутер, после этого необходимо вызвать " -"``.start_polling()`` у созданного оркестратора и передать ему созданное " -"приложение." +"Этот пример демонстрирует абсолютный минимум, необходимый для создания и " +"запуска приложения. Вы можете скопировать этот код, запустить его и сразу" +" увидеть результат." +msgstr "" + +#: ../../root/quickstart.rst:20 ../../root/quickstart.rst:68 +msgid "**Результат**" msgstr "" #: ../../root/quickstart.rst:22 -msgid "**Запуск приложения**. Запускаем приложение как обычный скрипт." +msgid "Simple App Example" msgstr "" -#: ../../root/quickstart.rst:25 -msgid "Quickstart Example" +#: ../../root/quickstart.rst:26 +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 "" #~ msgid "" @@ -83,3 +156,31 @@ msgstr "" #~ "`." #~ msgstr "" +#~ msgid "**Установка** ``Argenta``" +#~ msgstr "" + +#~ msgid "" +#~ "**Определение роутера и хэндлеров**. За " +#~ "регистрацию функции как обработчика отвечает" +#~ " декоратор ``@router.command``, хэндлер всегда" +#~ " должен принимать аргумент с типом " +#~ "``Response``, подробнее в :ref:`разделе " +#~ "`." +#~ msgstr "" + +#~ msgid "" +#~ "**Определение приложения и оркестратора**. Для" +#~ " запуска приложения необходимо вызвать " +#~ "``.include_router()`` у созданного приложения " +#~ "и передать ему раннее созданный роутер," +#~ " после этого необходимо вызвать " +#~ "``.start_polling()`` у созданного оркестратора " +#~ "и передать ему созданное приложение." +#~ msgstr "" + +#~ msgid "**Запуск приложения**. Запускаем приложение как обычный скрипт." +#~ msgstr "" + +#~ msgid "Quickstart Example" +#~ msgstr "" + diff --git a/docs/locales/en/LC_MESSAGES/root/redirect_stdout.po b/docs/locales/en/LC_MESSAGES/root/redirect_stdout.po index 61f1aff..a4a8857 100644 --- a/docs/locales/en/LC_MESSAGES/root/redirect_stdout.po +++ b/docs/locales/en/LC_MESSAGES/root/redirect_stdout.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \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" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -24,195 +24,332 @@ msgstr "" msgid "Переопределение стандартного вывода" msgstr "Redirect stdout" -#: ../../root/redirect_stdout.rst:7 -msgid "О разделе" -msgstr "" - -#: ../../root/redirect_stdout.rst:9 +#: ../../root/redirect_stdout.rst:6 msgid "" -"``Argenta`` предоставляет гибкие механизмы для управления форматированием" -" вывода, включая использование динамических разделительных линий. Это " -"достигается за счет перехвата стандартного потока вывода (``stdout``), " -"что имеет свои особенности." +"``Argenta`` предоставляет гибкие механизмы для форматирования вывода, " +"включая динамические разделительные линии. Это достигается за счёт " +"перехвата стандартного потока вывода (``stdout``), что накладывает " +"некоторые особенности." msgstr "" -#: ../../root/redirect_stdout.rst:14 +#: ../../root/redirect_stdout.rst:11 msgid "Механизм перехвата ``stdout``" msgstr "" -#: ../../root/redirect_stdout.rst:16 +#: ../../root/redirect_stdout.rst:13 msgid "" -"По умолчанию ``Argenta`` перехватывает весь текст, который выводится в " -"``stdout`` внутри обработчика команды (``handler``). Это делается для " -"реализации **динамической длины разделителя**. Система анализирует весь " -"выведенный текст, находит самую длинную строку и использует её длину для " -"отрисовки верхней и нижней разделительных линий. Это создает аккуратный и" -" визуально согласованный интерфейс, где вывод команды \"обернут\" в " -"рамку, идеально подогнанную под его содержимое." +"По умолчанию ``Argenta`` перехватывает весь текст, выводимый в ``stdout``" +" внутри обработчика команды. Это необходимо для реализации **динамических" +" разделителей**: система анализирует вывод, находит самую длинную строку " +"и использует её для отрисовки верхней и нижней границ. Такой подход " +"создаёт аккуратный интерфейс, где вывод команды «обёрнут» в рамку, " +"подогнанную под его содержимое." 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``" msgstr "" -#: ../../root/redirect_stdout.rst:21 +#: ../../root/redirect_stdout.rst:34 msgid "" "Главный побочный эффект этого механизма проявляется при использовании " "функций, которые одновременно ожидают ввод от пользователя и выводят " -"текст-приглашение. Классический пример — стандартная функция ``input()``." +"приглашение в консоль. Классический пример — стандартная функция " +"``input()``." msgstr "" -#: ../../root/redirect_stdout.rst:30 +#: ../../root/redirect_stdout.rst:44 msgid "" -"При включенном перехвате ``stdout`` текст-приглашение ``\"Введите ваше " -"имя: \"`` **не будет выведен в консоль немедленно**. Он попадет в буфер, " -"и пользователь увидит только мигающий курсор, ожидающий ввода. Текст " -"приглашения будет выведен только после того, как выполнение всего " -"обработчика завершится, вместе с остальным буферизованным выводом. Это " -"может сбить пользователя с толку и является пограничным случаем, " -"требующим внимания при разработке." +"При включённом перехвате ``stdout`` текст-приглашение (например, " +"``\"Введите ваше имя: \"``) **не будет выведен в консоль немедленно**. Он" +" попадёт в буфер, и пользователь увидит только мигающий курсор. Текст " +"приглашения отобразится лишь после завершения работы обработчика вместе с" +" остальным выводом. Это может сбить пользователя с толку." msgstr "" -#: ../../root/redirect_stdout.rst:35 +#: ../../root/redirect_stdout.rst:49 msgid "Отключение перехвата ``stdout`` с помощью ``disable_redirect_stdout``" 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 -msgid "Типы разделительных линий" +msgid "" +"Чтобы решить эту проблему, в конструкторе ``Router`` предусмотрен " +"специальный аргумент:" msgstr "" #: ../../root/redirect_stdout.rst:53 -msgid "" -"``Argenta`` поддерживает два типа разделительных линий, которые можно " -"настроить при инициализации ``App``:" +msgid "**disable_redirect_stdout** (``bool``, по умолчанию ``False``)" msgstr "" #: ../../root/redirect_stdout.rst:55 -msgid "**DynamicDividingLine()**" -msgstr "" - -#: ../../root/redirect_stdout.rst:56 msgid "" -"Это поведение по умолчанию. Длина линии динамически подстраивается под " -"самый длинный выведенный текст." -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`." +"Если при создании роутера установить ``disable_redirect_stdout=True``, " +"механизм перехвата ``stdout`` будет отключён для всех его обработчиков." msgstr "" #: ../../root/redirect_stdout.rst:61 msgid "" -"Используется автоматически для роутеров, где " -"``disable_redirect_stdout=True``, так как без перехвата вывода невозможно" -" определить необходимую динамическую длину." -msgstr "" - -#: ../../root/redirect_stdout.rst:64 -msgid "Настройка разделительной линии в `App`" +"В этом случае ``input()`` будет работать как обычно, и пользователь сразу" +" увидит приглашение к вводу." msgstr "" #: ../../root/redirect_stdout.rst:66 +msgid "Типы разделительных линий" +msgstr "" + +#: ../../root/redirect_stdout.rst:68 msgid "" -"Вы можете глобально задать тип разделительной линии для всего приложения " -"через аргумент ``dividing_line`` в конструкторе ``App``." +"``Argenta`` поддерживает два типа разделителей, которые настраиваются при" +" инициализации ``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 "" #: ../../root/redirect_stdout.rst:74 -msgid "Итоговое поведение" +msgid "**StaticDividingLine(length: int = 25)**" msgstr "" -#: ../../root/redirect_stdout.rst:80 -msgid "``disable_redirect_stdout`` на ``Router``" +#: ../../root/redirect_stdout.rst:75 +msgid "" +"Линия имеет фиксированную длину (по умолчанию 25 символов), которую можно" +" задать через аргумент `length`." +msgstr "" + +#: ../../root/redirect_stdout.rst:76 +msgid "" +"Используется принудительно для роутеров с " +"``disable_redirect_stdout=True``, так как без перехвата вывода невозможно" +" определить динамическую длину." +msgstr "" + +#: ../../root/redirect_stdout.rst:79 +msgid "Настройка разделительной линии в `App`" msgstr "" #: ../../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``" msgstr "" -#: ../../root/redirect_stdout.rst:82 +#: ../../root/redirect_stdout.rst:98 msgid "Фактическое поведение" msgstr "" -#: ../../root/redirect_stdout.rst:83 +#: ../../root/redirect_stdout.rst:99 msgid "``input()`` работает корректно?" msgstr "" -#: ../../root/redirect_stdout.rst:84 ../../root/redirect_stdout.rst:88 +#: ../../root/redirect_stdout.rst:100 ../../root/redirect_stdout.rst:104 msgid "``False`` (по умолчанию)" msgstr "" -#: ../../root/redirect_stdout.rst:85 ../../root/redirect_stdout.rst:93 +#: ../../root/redirect_stdout.rst:101 ../../root/redirect_stdout.rst:109 msgid "``DynamicDividingLine``" msgstr "" -#: ../../root/redirect_stdout.rst:86 +#: ../../root/redirect_stdout.rst:102 msgid "Динамическая линия, длина по содержимому" msgstr "" -#: ../../root/redirect_stdout.rst:87 ../../root/redirect_stdout.rst:91 +#: ../../root/redirect_stdout.rst:103 ../../root/redirect_stdout.rst:107 msgid "Нет" msgstr "" -#: ../../root/redirect_stdout.rst:89 ../../root/redirect_stdout.rst:97 +#: ../../root/redirect_stdout.rst:105 ../../root/redirect_stdout.rst:113 msgid "``StaticDividingLine``" msgstr "" -#: ../../root/redirect_stdout.rst:90 ../../root/redirect_stdout.rst:98 +#: ../../root/redirect_stdout.rst:106 ../../root/redirect_stdout.rst:114 msgid "Статическая линия указанной длины" msgstr "" -#: ../../root/redirect_stdout.rst:92 ../../root/redirect_stdout.rst:96 +#: ../../root/redirect_stdout.rst:108 ../../root/redirect_stdout.rst:112 msgid "``True``" msgstr "" -#: ../../root/redirect_stdout.rst:94 +#: ../../root/redirect_stdout.rst:110 msgid "**Принудительно статическая линия** (длина по умолч.)" msgstr "" -#: ../../root/redirect_stdout.rst:95 ../../root/redirect_stdout.rst:99 +#: ../../root/redirect_stdout.rst:111 ../../root/redirect_stdout.rst:115 msgid "Да" msgstr "" -#: ../../root/redirect_stdout.rst:101 +#: ../../root/redirect_stdout.rst:117 msgid "" -"Таким образом, для создания интерактивных команд, требующих ввода от " -"пользователя, всегда отключайте перехват ``stdout`` на соответствующем " -"роутере. Для всех остальных команд можно оставить поведение по умолчанию." +"Таким образом, для интерактивных команд, требующих ввода от пользователя," +" отключайте перехват ``stdout`` на уровне роутера. Для всех остальных " +"команд можно оставить поведение по умолчанию." 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 "" + diff --git a/docs/locales/en/LC_MESSAGES/root/testing.po b/docs/locales/en/LC_MESSAGES/root/testing.po new file mode 100644 index 0000000..b63c4ef --- /dev/null +++ b/docs/locales/en/LC_MESSAGES/root/testing.po @@ -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 , 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 \n" +"Language: en\n" +"Language-Team: en \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 "" +