From baebeca55b7849e0c3418f1cecbbe2d1e33e5d69 Mon Sep 17 00:00:00 2001 From: kolo Date: Thu, 4 Dec 2025 21:01:52 +0300 Subject: [PATCH] Update documentation --- docs/index.rst | 6 +- docs/locales/en/LC_MESSAGES/index.po | 82 +++-- .../en/LC_MESSAGES/root/api/app/index.po | 62 ++-- .../locales/en/LC_MESSAGES/root/api/bridge.po | 33 +- .../en/LC_MESSAGES/root/api/command/index.po | 47 ++- .../root/api/command/input_flag.po | 29 +- .../root/api/orchestrator/argspace.po | 36 +- .../root/api/orchestrator/index.po | 44 ++- .../LC_MESSAGES/root/dependency_injection.po | 111 +++--- docs/locales/en/LC_MESSAGES/root/flags.po | 345 +++++++++++------- .../LC_MESSAGES/root/overriding_formatting.po | 54 +-- .../locales/en/LC_MESSAGES/root/quickstart.po | 128 ++++--- .../en/LC_MESSAGES/root/redirect_stdout.po | 205 ++++++----- docs/locales/en/LC_MESSAGES/root/testing.po | 73 ++-- 14 files changed, 747 insertions(+), 508 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 9a1dd9d..52e0a42 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -24,10 +24,10 @@ Argenta предназначена для создания приложений, **Ключевые особенности:** * **Интерактивные сессии**: В отличие от традиционных CLI-инструментов, ``Argenta`` создаёт циклические сессии, позволяя пользователю выполнять команды последовательно, не перезапуская приложение. -* **Декларативный синтаксис**: Команды и их обработчики объявляются с помощью простых декораторов, что делает код чистым и интуитивно понятным. -* **Нативный DI**: Благодаря интеграции с `dishka `_, вы можете легко внедрять зависимости прямо в обработчики команд, что упрощает их тестирование и переиспользование. +* **Декларативный синтаксис**: Команды и их обработчики объявляются с помощью простых декораторов, что делает код интуитивно понятным и позволяет сосредоточиться на том, "что" вы хотите сделать, а не "как". +* **Нативный DI**: Благодаря интеграции с [dishka](https://dishka.readthedocs.io/en/stable/), вы можете легко внедрять зависимости прямо в обработчики команд, что упрощает их тестирование, позволяет избежать мутабельных глобалов и многое другое. * **Автоматическая валидация и парсинг**: Библиотека берёт на себя обработку флагов и аргументов командной строки, включая их парсинг, валидацию и преобразование типов. -* **Гибкая настройка**: Вы можете легко кастомизировать системные сообщения, форматирование вывода и т.д. +* **Гибкая настройка**: Вы можете легко кастомизировать системные сообщения, форматирование вывода, ссоздавать кастомные обработчики нестандартного поведения и т.д. ----- diff --git a/docs/locales/en/LC_MESSAGES/index.po b/docs/locales/en/LC_MESSAGES/index.po index 76fe14c..f4e7c0e 100644 --- a/docs/locales/en/LC_MESSAGES/index.po +++ b/docs/locales/en/LC_MESSAGES/index.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:41+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -54,7 +54,9 @@ msgstr "What is it and why?" msgid "" "**Библиотека для построения модульных CLI-приложений с простым и приятным" " API.**" -msgstr "**A library for building modular CLI applications with a simple and pleasant API.**" +msgstr "" +"**A library for building modular CLI applications with a simple and " +"pleasant API.**" #: ../../index.rst:14 msgid "" @@ -64,8 +66,9 @@ msgid "" "предоставляя для этого удобные абстракции." msgstr "" "If you have functionality that you want to provide as a CLI application, " -"Argenta will help you with that. The main goal of the library is to enable " -"developers to focus on implementing their ideas by providing convenient abstractions." +"Argenta will help you with that. The main goal of the library is to " +"enable developers to focus on implementing their ideas by providing " +"convenient abstractions." #: ../../index.rst:17 msgid "App example" @@ -74,24 +77,30 @@ msgstr "" #: ../../index.rst:20 msgid "" "Argenta предназначена для создания приложений, работающих в собственном " -"контексте (scope). Это означает, что при запуске пользователь входит в " -"интерактивную сессию, где ему доступна вся реализованная вами " -"функциональность." +"контексте (scope). Это означает, что приложение запускается один раз и " +"создаёт интерактивную сессию, похожую на Python REPL или MySQL консоль. " +"При запуске пользователь входит в эту сессию, где ему доступна вся " +"реализованная вами функциональность." msgstr "" -"Argenta is designed for creating applications that work in their own context " -"(scope). This means that when launched, the user enters an interactive session " -"where all the functionality you've implemented is available." +"Argenta is designed for creating applications that work in their own " +"context (scope). This means that the application starts once and creates " +"an interactive session, similar to Python REPL or MySQL console. When " +"launched, the user enters this session where all the functionality you've " +"implemented is available." #: ../../index.rst:22 msgid "" "Один из ключевых принципов библиотеки — цикличность. После выполнения " -"команды пользователь остаётся в интерактивной сессии, в отличие от таких " -"библиотек, как ``argparse``, ``click`` и ``typer``. Выход из сессии " -"контролируется пользователем." +"команды пользователь остаётся в интерактивной сессии и может выполнять " +"следующие команды, в отличие от таких библиотек, как ``argparse``, " +"``click`` и ``typer``, где приложение завершается после каждой команды. " +"Выход из сессии контролируется пользователем." msgstr "" -"One of the key principles of the library is cyclicity. After executing a command, " -"the user remains in the interactive session, unlike libraries such as ``argparse``, " -"``click``, and ``typer``. Exiting the session is controlled by the user." +"One of the key principles of the library is cyclicity. After executing a " +"command, the user remains in the interactive session and can execute " +"subsequent commands, unlike libraries such as ``argparse``, ``click``, " +"and ``typer``, where the application terminates after each command. " +"Exiting the session is controlled by the user." #: ../../index.rst:24 msgid "**Ключевые особенности:**" @@ -103,28 +112,32 @@ msgid "" "``Argenta`` создаёт циклические сессии, позволяя пользователю выполнять " "команды последовательно, не перезапуская приложение." msgstr "" -"**Interactive sessions**: Unlike traditional CLI tools, ``Argenta`` creates " -"cyclical sessions, allowing users to execute commands sequentially without " -"restarting the application." +"**Interactive sessions**: Unlike traditional CLI tools, ``Argenta`` " +"creates cyclical sessions, allowing users to execute commands " +"sequentially without restarting the application." #: ../../index.rst:27 msgid "" "**Декларативный синтаксис**: Команды и их обработчики объявляются с " -"помощью простых декораторов, что делает код чистым и интуитивно понятным." +"помощью простых декораторов, что делает код интуитивно понятным и " +"позволяет сосредоточиться на том, \"что\" вы хотите сделать, а не " +"\"как\"." msgstr "" -"**Declarative syntax**: Commands and their handlers are declared using simple " -"decorators, making the code clean and intuitive." +"**Declarative syntax**: Commands and their handlers are declared using " +"simple decorators, making the code intuitive and allowing you to focus " +"on \"what\" you want to do, not \"how\"." #: ../../index.rst:28 msgid "" -"**Нативный DI**: Благодаря интеграции с `dishka " -"`_, вы можете легко внедрять " -"зависимости прямо в обработчики команд, что упрощает их тестирование и " -"переиспользование." +"**Нативный DI**: Благодаря интеграции с " +"[dishka](https://dishka.readthedocs.io/en/stable/), вы можете легко " +"внедрять зависимости прямо в обработчики команд, что упрощает их " +"тестирование, позволяет избежать мутабельных глобалов и многое другое." msgstr "" "**Native DI**: Thanks to integration with `dishka " "`_, you can easily inject " -"dependencies directly into command handlers, simplifying their testing and reuse." +"dependencies directly into command handlers, simplifying their testing, " +"avoiding mutable globals, and much more." #: ../../index.rst:29 msgid "" @@ -132,16 +145,19 @@ msgid "" "обработку флагов и аргументов командной строки, включая их парсинг, " "валидацию и преобразование типов." msgstr "" -"**Automatic validation and parsing**: The library handles command-line flags " -"and arguments, including their parsing, validation, and type conversion." +"**Automatic validation and parsing**: The library handles command-line " +"flags and arguments, including their parsing, validation, and type " +"conversion." #: ../../index.rst:30 msgid "" "**Гибкая настройка**: Вы можете легко кастомизировать системные " -"сообщения, форматирование вывода и т.д." +"сообщения, форматирование вывода, создавать кастомные обработчики " +"нестандартного поведения и т.д." msgstr "" "**Flexible configuration**: You can easily customize system messages, " -"output formatting, and more." +"output formatting, create custom handlers for non-standard behavior, " +"and more." #: ../../index.rst:35 msgid "Архитектура и жизненный цикл" @@ -152,8 +168,8 @@ msgid "" "Следующая диаграмма иллюстрирует, как компоненты Argenta взаимодействуют " "друг с другом, обрабатывая ввод пользователя." msgstr "" -"The following diagram illustrates how Argenta components interact with each " -"other while processing user input." +"The following diagram illustrates how Argenta components interact with " +"each other while processing user input." #: ../../index.rst:39 msgid "Request Lifecycle Diagram" 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 0afa0dd..d6b43b0 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/app/index.po +++ b/docs/locales/en/LC_MESSAGES/root/api/app/index.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -20,7 +20,7 @@ msgstr "" #: ../../root/api/app/index.rst:4 msgid "App" -msgstr "" +msgstr "App" #: ../../root/api/app/index.rst:6 msgid "" @@ -30,8 +30,9 @@ msgid "" "роутеров, обработчиков и системных сообщений." msgstr "" "The ``App`` object is the core of your console application. It handles " -"configuration, lifecycle management, command processing, and user interaction, " -"coordinating the work of all components: routers, handlers, and system messages." +"configuration, lifecycle management, command processing, and user " +"interaction, coordinating the work of all components: routers, handlers, " +"and system messages." #: ../../root/api/app/index.rst:11 msgid "Инициализация" @@ -58,57 +59,65 @@ msgid "" "``exit_command``: Команда, которая маркируется как триггер для выхода из " "приложения." msgstr "" -"``exit_command``: Command that is marked as a trigger for exiting the application." +"``exit_command``: Command that is marked as a trigger for exiting the " +"application." #: ../../root/api/app/index.rst:44 msgid "" "``system_router_title``: Заголовок для системного роутера (содержит " "команду выхода)." msgstr "" -"``system_router_title``: Title for the system router (contains the exit command)." +"``system_router_title``: Title for the system router (contains the exit " +"command)." #: ../../root/api/app/index.rst:45 msgid "" "``ignore_command_register``: Если ``True``, регистр вводимых команд " "игнорируется при поиске обработчика." msgstr "" -"``ignore_command_register``: If ``True``, command case is ignored when searching for a handler." +"``ignore_command_register``: If ``True``, command case is ignored when " +"searching for a handler." #: ../../root/api/app/index.rst:46 msgid "" "``dividing_line``: Тип разделительной линии (``StaticDividingLine`` или " "``DynamicDividingLine``)." msgstr "" -"``dividing_line``: Type of dividing line (``StaticDividingLine`` or ``DynamicDividingLine``)." +"``dividing_line``: Type of dividing line (``StaticDividingLine`` or " +"``DynamicDividingLine``)." #: ../../root/api/app/index.rst:47 msgid "" "``repeat_command_groups_printing``: Если ``True``, список доступных " "команд выводится перед каждым вводом." msgstr "" -"``repeat_command_groups_printing``: If ``True``, the list of available commands is displayed before each input." +"``repeat_command_groups_printing``: If ``True``, the list of available " +"commands is displayed before each input." #: ../../root/api/app/index.rst:48 msgid "" "``override_system_messages``: Если ``True``, стандартное форматирование " "(цвета, ASCII-арт) отключается." msgstr "" -"``override_system_messages``: If ``True``, standard formatting (colors, ASCII art) is disabled." +"``override_system_messages``: If ``True``, standard formatting (colors, " +"ASCII art) is disabled." #: ../../root/api/app/index.rst:49 msgid "" "``autocompleter``: Экземпляр класса :ref:`AutoCompleter " "`, отвечающий за автодополнение команд." msgstr "" -"``autocompleter``: Instance of the :ref:`AutoCompleter ` " -"class responsible for command autocompletion." +"``autocompleter``: Instance of the :ref:`AutoCompleter " +"` class responsible for command " +"autocompletion." #: ../../root/api/app/index.rst:50 msgid "" "``print_func``: Функция для вывода всех системных сообщений (по умолчанию" " ``rich.Console().print``)." msgstr "" -"``print_func``: Function for outputting all system messages (defaults to ``rich.Console().print``)." +"``print_func``: Function for outputting all system messages (defaults to " +"``rich.Console().print``)." #: ../../root/api/app/index.rst:55 msgid "Основные методы" @@ -119,7 +128,8 @@ msgid "" "Регистрирует роутер в приложении. Все команды из этого роутера становятся" " доступными для вызова." msgstr "" -"Registers a router in the application. All commands from this router become available for invocation." +"Registers a router in the application. All commands from this router " +"become available for invocation." #: ../../root/api/app/index.rst msgid "Parameters" @@ -142,7 +152,8 @@ msgid "" "Добавляет текстовое сообщение, которое выводится при запуске приложения " "после ``initial_message``." msgstr "" -"Adds a text message that is displayed when the application starts after ``initial_message``." +"Adds a text message that is displayed when the application starts after " +"``initial_message``." #: ../../root/api/app/index.rst:73 msgid "Строка с сообщением." @@ -165,11 +176,12 @@ msgid "" "``App`` позволяет настраивать реакцию на различные события, такие как " "ошибки ввода или неизвестные команды." msgstr "" -"``App`` allows you to configure responses to various events, such as input errors or unknown commands." +"``App`` allows you to configure responses to various events, such as " +"input errors or unknown commands." #: ../../root/api/app/index.rst:86 msgid "" -"Подробнее о исключениях и их обработке в соответствующем :ref:`разделе " +"Подробнее об исключениях и их обработке в соответствующем :ref:`разделе " "документации `." msgstr "" "For more details on exceptions and their handling, see the corresponding " @@ -181,7 +193,9 @@ msgstr "Sets the template for formatting command descriptions." #: ../../root/api/app/index.rst:94 msgid "Обработчик принимает триггер команды (``str``) и её описание (``str``)." -msgstr "The handler accepts the command trigger (``str``) and its description (``str``)." +msgstr "" +"The handler accepts the command trigger (``str``) and its description " +"(``str``)." #: ../../root/api/app/index.rst:100 msgid "Устанавливает обработчик при некорректном введённом синтаксисе флагов." @@ -201,7 +215,9 @@ msgstr "Sets the handler for entering an unknown command." #: ../../root/api/app/index.rst:118 msgid "Обработчик принимает объект ``InputCommand`` - объект введённой команды." -msgstr "The handler accepts an ``InputCommand`` object - the entered command object." +msgstr "" +"The handler accepts an ``InputCommand`` object - the entered command " +"object." #: ../../root/api/app/index.rst:124 msgid "Устанавливает обработчик при вводе пустой строки." @@ -230,12 +246,12 @@ msgid "" "``rich`` и предназначены для вывода стандартной информации, такой как " "подсказки по использованию." msgstr "" -"``PredefinedMessages`` is a container containing a set of ready-to-use messages. " -"They are formatted using ``rich`` syntax and are intended for displaying standard " -"information, such as usage hints." +"``PredefinedMessages`` is a container containing a set of ready-to-use " +"messages. They are formatted using ``rich`` syntax and are intended for " +"displaying standard information, such as usage hints." #: ../../root/api/app/index.rst:151 -msgid "Реккомендуется использовать их при старте приложения." +msgid "Рекомендуется использовать их при старте приложения." msgstr "It is recommended to use them when starting the application." #: ../../root/api/app/index.rst:178 diff --git a/docs/locales/en/LC_MESSAGES/root/api/bridge.po b/docs/locales/en/LC_MESSAGES/root/api/bridge.po index 2d9c26f..1d55dcc 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/bridge.po +++ b/docs/locales/en/LC_MESSAGES/root/api/bridge.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -28,13 +28,13 @@ msgid "" "данных, которое существует в рамках одной сессии приложения (от запуска " "до выхода). Она предназначена для обмена данными между обработчиками." msgstr "" -"``DataBridge`` is an entity that provides temporary data storage that exists within " -"a single application session (from startup to exit). It is designed for data " -"exchange between handlers." +"``DataBridge`` is an entity that provides temporary data storage that " +"exists within a single application session (from startup to exit). It is " +"designed for data exchange between handlers." #: ../../root/api/bridge.rst:8 -msgid "Основной способ получения доступа к ``DataBridge`` — через ``di``." -msgstr "The main way to access ``DataBridge`` is through ``di``." +msgid "Основной способ получения доступа к ``DataBridge`` — через DI." +msgstr "The main way to access ``DataBridge`` is through DI." #: ../../root/api/bridge.rst:21 msgid "**Практический пример: Аутентификация**" @@ -45,8 +45,8 @@ msgid "" "Рассмотрим пример, где команда `login` сохраняет токен аутентификации, а " "команда `get-profile` использует его." msgstr "" -"Let's consider an example where the `login` command saves an authentication token, " -"and the `get-profile` command uses it." +"Let's consider an example where the `login` command saves an " +"authentication token, and the `get-profile` command uses it." #: ../../root/api/bridge.rst:29 msgid "**Как это работает:**" @@ -56,29 +56,32 @@ msgstr "**How it works:**" msgid "" "При вызове обработчика ``dishka`` автоматически внедряет экземпляр " "``DataBridge``." -msgstr "When calling a handler, ``dishka`` automatically injects a ``DataBridge`` instance." +msgstr "" +"When calling a handler, ``dishka`` automatically injects a ``DataBridge``" +" instance." #: ../../root/api/bridge.rst:32 msgid "" "Команда ``login --username <имя>`` вызывает ``login_handler``, который " "через внедрённый ``data_bridge`` сохраняет токен." msgstr "" -"The ``login --username `` command calls ``login_handler``, which saves the " -"token through the injected ``data_bridge``." +"The ``login --username `` command calls ``login_handler``, which " +"saves the token through the injected ``data_bridge``." #: ../../root/api/bridge.rst:33 msgid "" "Команда ``get-profile`` вызывает ``get_profile_handler``, который так же " "получает ``data_bridge`` и извлекает из него токен." msgstr "" -"The ``get-profile`` command calls ``get_profile_handler``, which also receives " -"``data_bridge`` and extracts the token from it." +"The ``get-profile`` command calls ``get_profile_handler``, which also " +"receives ``data_bridge`` and extracts the token from it." #: ../../root/api/bridge.rst:42 msgid "" -"Инициализирует хранилище. При использовании через ``di`` вызывается " +"Инициализирует хранилище. При использовании через DI вызывается " "автоматически." -msgstr "Initializes the storage. When used through ``di``, it is called automatically." +msgstr "" +"Initializes the storage. When used through DI, it is called automatically." #: ../../root/api/bridge.rst:46 msgid "Обновляет хранилище данными из словаря." 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 07535f7..b116603 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/command/index.po +++ b/docs/locales/en/LC_MESSAGES/root/api/command/index.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -20,7 +20,7 @@ msgstr "" #: ../../root/api/command/index.rst:4 msgid "Command" -msgstr "" +msgstr "Command" #: ../../root/api/command/index.rst:6 msgid "" @@ -28,16 +28,17 @@ msgid "" "команда связывает хэндлер с триггером, введя который он будет вызван для " "обработки." msgstr "" -"``Command`` is the basic unit of functionality in an application. Each command " -"links a handler to a trigger, which when entered will invoke it for processing." +"``Command`` is the basic unit of functionality in an application. Each " +"command links a handler to a trigger, which when entered will invoke it " +"for processing." #: ../../root/api/command/index.rst:8 msgid "" "``Command`` инкапсулирует всю информацию о команде: её триггер (ключевое " "слово для вызова), описание, набор флагов и список псевдонимов." msgstr "" -"``Command`` encapsulates all information about a command: its trigger (keyword for invocation), " -"description, set of flags, and list of aliases." +"``Command`` encapsulates all information about a command: its trigger " +"(keyword for invocation), description, set of flags, and list of aliases." #: ../../root/api/command/index.rst:13 msgid "Инициализация" @@ -68,8 +69,8 @@ msgid "" "``flags``: Набор флагов для настройки поведения. Может быть одиночным " "объектом ``Flag`` или коллекцией ``Flags``." msgstr "" -"``flags``: Set of flags for configuring behavior. Can be a single ``Flag`` " -"object or a ``Flags`` collection." +"``flags``: Set of flags for configuring behavior. Can be a single " +"``Flag`` object or a ``Flags`` collection." #: ../../root/api/command/index.rst:28 msgid "``aliases``: Список строковых псевдонимов для основного триггера." @@ -84,14 +85,16 @@ msgid "" "Основной триггер команды. Используется для её идентификации при обработке" " пользовательского ввода." msgstr "" -"The main command trigger. Used for its identification when processing user input." +"The main command trigger. Used for its identification when processing " +"user input." #: ../../root/api/command/index.rst:38 msgid "" "Текстовое описание команды. Если не передано, используется значение по " "умолчанию." msgstr "" -"Text description of the command. If not provided, the default value is used." +"Text description of the command. If not provided, the default value is " +"used." #: ../../root/api/command/index.rst:42 msgid "" @@ -99,8 +102,9 @@ msgid "" "передан ``Flag``, то автоматически конвертируется из одиночного в " "коллекцию при инициализации." msgstr "" -"A ``Flags`` object containing all registered flags. If a ``Flag`` was passed, " -"it is automatically converted from a single flag to a collection during initialization." +"A ``Flags`` object containing all registered flags. If a ``Flag`` was " +"passed, it is automatically converted from a single flag to a collection " +"during initialization." #: ../../root/api/command/index.rst:46 msgid "Список строковых псевдонимов. Пуст, если псевдонимы не заданы." @@ -113,9 +117,10 @@ msgstr "**Usage example:**" #: ../../root/api/command/index.rst:54 msgid "" "Подробнее про флаги: :ref:`Flags ` и :ref:`Флаги " -"вводимых команд `." +"команд `." msgstr "" -"More about flags: :ref:`Flags ` and :ref:`Input command flags `." +"More about flags: :ref:`Flags ` and :ref:`Command " +"flags `." #: ../../root/api/command/index.rst:59 msgid "Регистрация команд" @@ -142,8 +147,8 @@ msgid "" "Псевдонимы позволяют вызывать один и тот же обработчик разными " "триггерами, сохраняя флаги и описание команды." msgstr "" -"Aliases allow invoking the same handler with different triggers while preserving " -"the command's flags and description." +"Aliases allow invoking the same handler with different triggers while " +"preserving the command's flags and description." #: ../../root/api/command/index.rst:80 msgid "**Пример с псевдонимами:**" @@ -168,16 +173,18 @@ msgid "" "обработке пользовательского ввода. Прямая работа с ним возможна при " "создании пользовательского обработчика для неизвестных команд." msgstr "" -"``InputCommand`` represents a processed command entered by the user. This internal " -"class is created automatically when processing user input. Direct work with it is " -"possible when creating a custom handler for unknown commands." +"``InputCommand`` represents a processed command entered by the user. This" +" internal class is created automatically when processing user input. " +"Direct work with it is possible when creating a custom handler for " +"unknown commands." #: ../../root/api/command/index.rst:106 msgid "" "Подробнее о пользовательских обработчиках исключений см. :ref:`здесь " "`." msgstr "" -"For more details on custom exception handlers, see :ref:`here `." +"For more details on custom exception handlers, see :ref:`here " +"`." #: ../../root/api/command/index.rst:113 msgid "Строковый триггер, введённый пользователем." 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 index 0eb465f..0c3e40a 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/command/input_flag.po +++ b/docs/locales/en/LC_MESSAGES/root/api/command/input_flag.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -29,9 +29,10 @@ msgid "" "информацию о распознанном флаге: его имя, префикс, значение и статус " "валидации." msgstr "" -"The ``InputFlag`` object represents a flag entered by the user. It is created " -"as a result of processing user input and contains information about the recognized " -"flag: its name, prefix, value, and validation status." +"The ``InputFlag`` object represents a flag entered by the user. It is " +"created as a result of processing user input and contains information " +"about the recognized flag: its name, prefix, value, and validation " +"status." #: ../../root/api/command/input_flag.rst:10 msgid "" @@ -70,8 +71,12 @@ msgid "Префикс флага: ``-``, ``--`` или ``---``." msgstr "Flag prefix: ``-``, ``--``, or ``---``." #: ../../root/api/command/input_flag.rst:33 -msgid "Значение, переданное с флагом. Может быть `None` для флагов без значений." -msgstr "Value passed with the flag. Can be `None` for flags without values." +msgid "" +"Значение, переданное с флагом. Может быть ``''`` (пустой строкой) для " +"флагов без значений." +msgstr "" +"Value passed with the flag. Can be ``''`` (empty string) for flags " +"without values." #: ../../root/api/command/input_flag.rst:38 msgid "" @@ -87,11 +92,13 @@ msgstr "Properties" #: ../../root/api/command/input_flag.rst:46 msgid "string_entity" -msgstr "" +msgstr "string_entity" #: ../../root/api/command/input_flag.rst:54 msgid "Возвращает строковое представление флага в формате ``prefix + name``." -msgstr "Returns the string representation of the flag in the format ``prefix + name``." +msgstr "" +"Returns the string representation of the flag in the format ``prefix + " +"name``." #: ../../root/api/command/input_flag.rst msgid "return" @@ -107,7 +114,7 @@ msgstr "Magic Methods" #: ../../root/api/command/input_flag.rst:64 msgid "__str__" -msgstr "" +msgstr "__str__" #: ../../root/api/command/input_flag.rst:71 msgid "Возвращает строковое представление флага вместе с его значением." @@ -124,7 +131,7 @@ msgstr "**Usage example:**" #: ../../root/api/command/input_flag.rst:84 msgid "__repr__" -msgstr "" +msgstr "__repr__" #: ../../root/api/command/input_flag.rst:91 msgid "Возвращает отладочное представление объекта." @@ -140,7 +147,7 @@ msgstr "" #: ../../root/api/command/input_flag.rst:104 msgid "__eq__" -msgstr "" +msgstr "__eq__" #: ../../root/api/command/input_flag.rst:111 msgid "Сравнивает два введённых флага на равенство по имени." 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 22331fe..d62a651 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argspace.po +++ b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/argspace.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -28,17 +28,17 @@ msgid "" "аргументами командной строки. Его основная задача — предоставить удобный " "интерфейс для доступа к значениям, переданным при запуске приложения." msgstr "" -"``ArgSpace`` is a container for storing and managing processed command-line arguments. " -"Its main purpose is to provide a convenient interface for accessing values passed at " -"application startup." +"``ArgSpace`` is a container for storing and managing processed command-" +"line arguments. Its main purpose is to provide a convenient interface for" +" accessing values passed at application startup." #: ../../root/api/orchestrator/argspace.rst:8 msgid "" "``ArgSpace`` создаётся автоматически после обработки аргументов с помощью" " ``ArgParser`` и содержит коллекцию объектов ``InputArgument``." msgstr "" -"``ArgSpace`` is created automatically after processing arguments using ``ArgParser`` " -"and contains a collection of ``InputArgument`` objects." +"``ArgSpace`` is created automatically after processing arguments using " +"``ArgParser`` and contains a collection of ``InputArgument`` objects." #: ../../root/api/orchestrator/argspace.rst:13 msgid "Инициализация" @@ -49,8 +49,8 @@ msgid "" "Создание экземпляров класса ``ArgSpace`` происходит под `капотом`, вам не" " нужно создавать их вручную." msgstr "" -"Creation of ``ArgSpace`` class instances happens under the hood, you don't need to " -"create them manually." +"Creation of ``ArgSpace`` class instances happens under the hood, you " +"don't need to create them manually." #: ../../root/api/orchestrator/argspace.rst:17 msgid "**Атрибуты:**" @@ -66,7 +66,7 @@ msgstr "Methods" #: ../../root/api/orchestrator/argspace.rst:29 msgid "get_by_name" -msgstr "" +msgstr "get_by_name" #: ../../root/api/orchestrator/argspace.rst:36 msgid "Возвращает аргумент по имени." @@ -96,7 +96,7 @@ msgstr "**Usage example:**" #: ../../root/api/orchestrator/argspace.rst:49 msgid "get_by_type" -msgstr "" +msgstr "get_by_type" #: ../../root/api/orchestrator/argspace.rst:56 msgid "Возвращает все аргументы определённого типа." @@ -119,8 +119,8 @@ msgid "" "Метод фильтрует ``all_arguments`` по атрибуту ``founder_class`` и " "возвращает аргументы, созданные из указанного типа." msgstr "" -"The method filters ``all_arguments`` by the ``founder_class`` attribute and " -"returns arguments created from the specified type." +"The method filters ``all_arguments`` by the ``founder_class`` attribute " +"and returns arguments created from the specified type." #: ../../root/api/orchestrator/argspace.rst:71 msgid "InputArgument" @@ -144,9 +144,9 @@ msgid "" "запуска приложения. Типичный сценарий включает обработку аргументов через" " ``ArgParser`` и последующее извлечение значений из ``ArgSpace``." msgstr "" -"``ArgSpace`` is used to access argument values after the application starts. " -"A typical scenario includes processing arguments through ``ArgParser`` and subsequent " -"extraction of values from ``ArgSpace``." +"``ArgSpace`` is used to access argument values after the application " +"starts. A typical scenario includes processing arguments through " +"``ArgParser`` and subsequent extraction of values from ``ArgSpace``." #: ../../root/api/orchestrator/argspace.rst:83 msgid "**Полный пример:**" @@ -154,11 +154,11 @@ msgstr "**Complete example:**" #: ../../root/api/orchestrator/argspace.rst:88 msgid "" -"Доступ к аргументам из обработчиков осуществляется с помощью ``di``. " +"Доступ к аргументам из обработчиков осуществляется с помощью DI. " "Подробнее см. :ref:`здесь `." msgstr "" -"Access to arguments from handlers is done using ``di``. " -"For more details, see :ref:`here `." +"Access to arguments from handlers is done using DI. For more details, see" +" :ref:`here `." #: ../../root/api/orchestrator/argspace.rst:95 msgid "**Запуск приложения:**" 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 1f5b824..5c1561b 100644 --- a/docs/locales/en/LC_MESSAGES/root/api/orchestrator/index.po +++ b/docs/locales/en/LC_MESSAGES/root/api/orchestrator/index.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -25,11 +25,12 @@ msgstr "Orchestrator" #: ../../root/api/orchestrator/index.rst:6 msgid "" "``Orchestrator`` — это высокоуровневый компонент, который конфигурирует и" -" оркестрирует приложение, парсер командной строки, ``di`` и остальные " +" оркестрирует приложение, парсер командной строки, DI и остальные " "компоненты, находящиеся по иерархии на уровне с ``App``." msgstr "" -"``Orchestrator`` is a high-level component that configures and orchestrates the application, " -"command-line parser, ``di``, and other components at the same hierarchical level as ``App``." +"``Orchestrator`` is a high-level component that configures and " +"orchestrates the application, command-line parser, DI, and other " +"components at the same hierarchical level as ``App``." #: ../../root/api/orchestrator/index.rst:8 msgid "" @@ -37,8 +38,9 @@ msgid "" "команд, маршрутизация), ``Orchestrator`` подготавливает окружение для его" " работы и служит точкой входа в приложение." msgstr "" -"While ``App`` is responsible for interactive session logic (command input, routing), " -"``Orchestrator`` prepares the environment for its operation and serves as the entry point to the application." +"While ``App`` is responsible for interactive session logic (command " +"input, routing), ``Orchestrator`` prepares the environment for its " +"operation and serves as the entry point to the application." #: ../../root/api/orchestrator/index.rst:13 msgid "Инициализация" @@ -54,17 +56,19 @@ msgid "" " командной строки при запуске скрипта (не путать с командами в " "интерактивном режиме)." msgstr "" -"``arg_parser``: ``ArgParser`` instance responsible for parsing command-line arguments " -"at script startup (not to be confused with commands in interactive mode)." +"``arg_parser``: ``ArgParser`` instance responsible for parsing command-" +"line arguments at script startup (not to be confused with commands in " +"interactive mode)." #: ../../root/api/orchestrator/index.rst:31 msgid "" "``custom_providers``: Список пользовательских провайдеров " "``dishka.Provider`` для добавления ваших сервисов (например, подключений " -"к БД или API-клиентов) в DI-контейнер." +"к БД или API-клиентов) в di-контейнер." msgstr "" -"``custom_providers``: List of custom ``dishka.Provider`` providers for adding your services " -"(e.g., database connections or API clients) to the``di``container." +"``custom_providers``: List of custom ``dishka.Provider`` providers for " +"adding your services (e.g., database connections or API clients) to the " +"DI container." #: ../../root/api/orchestrator/index.rst:32 msgid "" @@ -72,8 +76,9 @@ msgid "" "автоматически внедрит зависимости в обработчики команд, инспектируя их " "сигнатуры." msgstr "" -"``auto_inject_handlers``: If **True** (default), ``dishka`` will automatically inject " -"dependencies into command handlers by inspecting their signatures." +"``auto_inject_handlers``: If **True** (default), ``dishka`` will " +"automatically inject dependencies into command handlers by inspecting " +"their signatures." #: ../../root/api/orchestrator/index.rst:37 msgid "Основные методы" @@ -84,7 +89,8 @@ msgid "" "Это главный метод, который запускает приложение. Он запускает бесконечный" " цикл ввода -> вывода." msgstr "" -"This is the main method that starts the application. It launches an infinite input -> output loop." +"This is the main method that starts the application. It launches an " +"infinite input -> output loop." #: ../../root/api/orchestrator/index.rst msgid "Parameters" @@ -100,10 +106,11 @@ msgstr "Purpose and Usage" #: ../../root/api/orchestrator/index.rst:50 msgid "" -"``Orchestrator`` абстрагирует сложность, связанную с настройкой ``di`` и " +"``Orchestrator`` абстрагирует сложность, связанную с настройкой DI и " "парсингом стартовых аргументов." msgstr "" -"``Orchestrator`` abstracts the complexity associated with setting up ``di`` and parsing startup arguments." +"``Orchestrator`` abstracts the complexity associated with setting up DI " +"and parsing startup arguments." #: ../../root/api/orchestrator/index.rst:52 msgid "" @@ -111,8 +118,9 @@ msgid "" "интерактивной сессии, а ``Orchestrator`` — за подготовку окружения и " "запуск приложения." msgstr "" -"This approach separates responsibilities: ``App`` is responsible for interactive session logic, " -"while ``Orchestrator`` handles environment preparation and application launch." +"This approach separates responsibilities: ``App`` is responsible for " +"interactive session logic, while ``Orchestrator`` handles environment " +"preparation and application launch." #: ../../root/api/orchestrator/index.rst:54 msgid "**Пример использования:**" diff --git a/docs/locales/en/LC_MESSAGES/root/dependency_injection.po b/docs/locales/en/LC_MESSAGES/root/dependency_injection.po index 624c1fa..b4d124d 100644 --- a/docs/locales/en/LC_MESSAGES/root/dependency_injection.po +++ b/docs/locales/en/LC_MESSAGES/root/dependency_injection.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -29,22 +29,24 @@ msgid "" " и расширяемый код. Вместо того чтобы обработчики сами создавали нужные " "им объекты (зависимости), они получают их извне." msgstr "" -"Dependency Injection (DI) is a design pattern that helps write loosely coupled, " -"easily testable, and extensible code. Instead of handlers creating the objects " -"(dependencies) they need themselves, they receive them from outside." +"Dependency Injection (DI) is a design pattern that helps write loosely " +"coupled, easily testable, and extensible code. Instead of handlers " +"creating the objects (dependencies) they need themselves, they receive " +"them from outside." #: ../../root/dependency_injection.rst:8 msgid "" "``Argenta`` использует библиотеку ``dishka`` для реализации DI, что " "позволяет декларативно объявлять зависимости прямо в сигнатурах ваших " -"обработчиков. Подробнее о **DI**, **IoC** и API для создания провайдеров " -"можно прочитать в `официальной документации dishka " +"обработчиков. Подробнее о DI, IoC и API для создания провайдеров можно " +"прочитать в `официальной документации dishka " "`_." msgstr "" -"``Argenta`` uses the ``dishka`` library to implement DI, which allows you to " -"declaratively declare dependencies directly in your handler signatures. You can " -"read more about **DI**, **IoC**, and the API for creating providers in the " -"`official dishka documentation `_." +"``Argenta`` uses the ``dishka`` library to implement DI, which allows you" +" to declaratively declare dependencies directly in your handler " +"signatures. You can read more about DI, IoC, and the API for " +"creating providers in the `official dishka documentation " +"`_." #: ../../root/dependency_injection.rst:14 msgid "Основная идея" @@ -56,22 +58,22 @@ msgid "" "данных. Вместо импорта и инициализации соединения внутри функции, вы " "просто объявляете его как аргумент с аннотацией типа:" msgstr "" -"Imagine your handler needs access to a database to work. Instead of importing and " -"initializing the connection inside the function, you simply declare it as an " -"argument with a type annotation:" +"Imagine your handler needs access to a database to work. Instead of " +"importing and initializing the connection inside the function, you simply" +" declare it as an argument with a type annotation:" #: ../../root/dependency_injection.rst:19 msgid "" "``argenta.di.FromDishka`` является алиасом для ``dishka.FromDishka``, и " "они полностью взаимозаменяемы." msgstr "" -"``argenta.di.FromDishka`` is an alias for ``dishka.FromDishka``, and they are " -"fully interchangeable." +"``argenta.di.FromDishka`` is an alias for ``dishka.FromDishka``, and they" +" are fully interchangeable." #: ../../root/dependency_injection.rst:21 #: ../../root/dependency_injection.rst:29 -#: ../../root/dependency_injection.rst:37 -#: ../../root/dependency_injection.rst:60 +#: ../../root/dependency_injection.rst:40 +#: ../../root/dependency_injection.rst:63 msgid "**Пример использования:**" msgstr "**Usage example:**" @@ -81,76 +83,93 @@ msgid "" "``Connection`` и внедрит её. Но прежде чем использовать зависимость, её " "необходимо объявить в провайдере:" msgstr "" -"``Argenta`` with ``dishka`` will resolve the dependency by type ``Connection`` and " -"inject it. But before using the dependency, it must be declared in a provider:" +"``Argenta`` with ``dishka`` will resolve the dependency by type " +"``Connection`` and inject it. But before using the dependency, it must be" +" declared in a provider:" #: ../../root/dependency_injection.rst:35 -msgid "После создания провайдера его необходимо зарегистрировать в оркестраторе:" -msgstr "After creating the provider, it must be registered in the orchestrator:" +msgid "После создания провайдера его необходимо зарегистрировать в оркестраторе." +msgstr "After creating the provider, it must be registered in the orchestrator." -#: ../../root/dependency_injection.rst:46 +#: ../../root/dependency_injection.rst:38 +msgid "" +"Провайдеры регистрируются в ``Orchestrator``, а не в ``App``, так как " +"оркестратор отвечает за настройку DI-контейнера на уровне всего " +"приложения. Вы можете передать список из нескольких провайдеров через " +"параметр ``custom_providers``." +msgstr "" +"Providers are registered in ``Orchestrator``, not in ``App``, because " +"the orchestrator is responsible for configuring the DI container at the " +"application level. You can pass a list of multiple providers through the " +"``custom_providers`` parameter." + +#: ../../root/dependency_injection.rst:49 msgid "Как это работает?" msgstr "How Does It Work?" -#: ../../root/dependency_injection.rst:48 -msgid "В основе``di``в Argenta лежат **провайдеры** и **контейнер**." -msgstr "DI in Argenta is based on **providers** and a **container**." +#: ../../root/dependency_injection.rst:51 +msgid "В основе DI в Argenta лежат **провайдеры** и **контейнер**." +msgstr "At the core of DI in Argenta are **providers** and a **container**." -#: ../../root/dependency_injection.rst:50 +#: ../../root/dependency_injection.rst:53 msgid "" "**Провайдер (Provider)** — это \"рецепт\", который объясняет, как " "создавать и настраивать ту или иную зависимость (например, подключение к " "БД, API-клиент или любой другой сервис)." msgstr "" "**Provider (Provider)** is a \"recipe\" that explains how to create and " -"configure a particular dependency (for example, a database connection, API client, " -"or any other service)." +"configure a particular dependency (for example, a database connection, " +"API client, or any other service)." -#: ../../root/dependency_injection.rst:51 +#: ../../root/dependency_injection.rst:54 msgid "" "**Контейнер (IoC Container)** — это \"фабрика\", которая хранит все " "рецепты (провайдеры) и по запросу создаёт и выдаёт готовые зависимости." msgstr "" -"**Container (IoC Container)** is a \"factory\" that stores all recipes (providers) " -"and creates and provides ready dependencies on request." +"**Container (IoC Container)** is a \"factory\" that stores all recipes " +"(providers) and creates and provides ready dependencies on request." -#: ../../root/dependency_injection.rst:56 +#: ../../root/dependency_injection.rst:59 msgid "Встроенные провайдеры" msgstr "Built-in Providers" -#: ../../root/dependency_injection.rst:58 +#: ../../root/dependency_injection.rst:61 msgid "" "``Argenta`` поставляется со встроенным провайдером, который даёт доступ к" " важным системным зависимостям без дополнительной настройки. Например, вы" -" можете получить объект ``ArgSpace``, который содержит аргументы " -"командной строки, переданные при запуске приложения." +" можете получить объект :ref:`ArgSpace `," +" который содержит аргументы командной строки, переданные при запуске " +"приложения." msgstr "" -"``Argenta`` comes with a built-in provider that gives access to important system " -"dependencies without additional configuration. For example, you can get the " -"``ArgSpace`` object, which contains the command-line arguments passed when the " -"application was launched." +"``Argenta`` comes with a built-in provider that gives access to important" +" system dependencies without additional configuration. For example, you " +"can get the :ref:`ArgSpace ` object, " +"which contains the command-line arguments passed when the application was " +"launched." -#: ../../root/dependency_injection.rst:69 +#: ../../root/dependency_injection.rst:72 msgid "Обмен данными между обработчиками" msgstr "Data Exchange Between Handlers" -#: ../../root/dependency_injection.rst:71 +#: ../../root/dependency_injection.rst:74 msgid "" "Помимо DI, обработчики могут обмениваться данными в рамках сессии через " "**объект контекста**. В ``Argenta`` эту роль выполняет объект " "``DataBridge``." msgstr "" -"In addition to DI, handlers can exchange data within a session through a **context " -"object**. In ``Argenta``, this role is performed by the ``DataBridge`` object." +"In addition to DI, handlers can exchange data within a session through a " +"**context object**. In ``Argenta``, this role is performed by the " +"``DataBridge`` object." -#: ../../root/dependency_injection.rst:73 +#: ../../root/dependency_injection.rst:76 msgid "" "Каждый обработчик может записывать в него данные, а также читать, " "обновлять и удалять их." msgstr "" -"Each handler can write data to it, as well as read, update, and delete data." +"Each handler can write data to it, as well as read, update, and delete " +"data." -#: ../../root/dependency_injection.rst:76 +#: ../../root/dependency_injection.rst:79 msgid "Подробнее об этом можно прочитать в разделе :ref:`root_api_bridge`." msgstr "You can read more about this in the :ref:`root_api_bridge` section." diff --git a/docs/locales/en/LC_MESSAGES/root/flags.po b/docs/locales/en/LC_MESSAGES/root/flags.po index fd51b84..cc51eb2 100644 --- a/docs/locales/en/LC_MESSAGES/root/flags.po +++ b/docs/locales/en/LC_MESSAGES/root/flags.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -27,7 +27,8 @@ msgid "" "Флаги — это специальные параметры, которые пользователь может добавлять к" " командам для управления их поведением." msgstr "" -"Flags are special parameters that users can add to commands to control their behavior." +"Flags are special parameters that users can add to commands to control " +"their behavior." #: ../../root/flags.rst:9 msgid "Зачем нужны флаги в командах" @@ -45,10 +46,10 @@ msgid "" "режимы по требованию пользователя, оставляя основную функциональность " "неизменной." msgstr "" -"The main purpose of flags is to provide a way to change the command's logic without " -"reworking it. A command can operate in several modes: standard, verbose, debug, or " -"simplified. Flags switch these modes on user demand, keeping the core functionality " -"unchanged." +"The main purpose of flags is to provide a way to change the command's " +"logic without reworking it. A command can operate in several modes: " +"standard, verbose, debug, or simplified. Flags switch these modes on user" +" demand, keeping the core functionality unchanged." #: ../../root/flags.rst:17 msgid "Опциональность и удобство" @@ -61,9 +62,10 @@ msgid "" " же позволяют задать значения только необходимые в конкретной ситуации, " "остальные используют значения по умолчанию." msgstr "" -"Flags solve the problem of mandatory parameters. If all command parameters are made " -"required, it makes the command difficult to use. Flags allow you to specify only " -"the values needed in a specific situation, while others use default values." +"Flags solve the problem of mandatory parameters. If all command " +"parameters are made required, it makes the command difficult to use. " +"Flags allow you to specify only the values needed in a specific " +"situation, while others use default values." #: ../../root/flags.rst:22 msgid "Когда могут понадобиться флаги" @@ -79,8 +81,9 @@ msgid "" "фактического развёртывания (dry-run) для проверки. Флаг ``--dry-run`` " "переключит режим работы." msgstr "" -"A command deploys an application normally, but a mode without actual deployment " -"(dry-run) is needed for verification. The ``--dry-run`` flag will switch the mode." +"A command deploys an application normally, but a mode without actual " +"deployment (dry-run) is needed for verification. The ``--dry-run`` flag " +"will switch the mode." #: ../../root/flags.rst:27 msgid "**Настройка уровня детальности**" @@ -92,8 +95,9 @@ msgid "" " команды. Флаги ``--verbose`` или ``--debug`` предоставляют подробный " "вывод." msgstr "" -"When debugging or analyzing, more information about the command execution process " -"is required. The ``--verbose`` or ``--debug`` flags provide detailed output." +"When debugging or analyzing, more information about the command execution" +" process is required. The ``--verbose`` or ``--debug`` flags provide " +"detailed output." #: ../../root/flags.rst:30 msgid "**Управление поведением при ошибках**" @@ -104,8 +108,8 @@ msgid "" "По умолчанию команда может прерваться при первой ошибке. Флаг ``--force``" " позволит продолжить работу, пропуская некритичные ошибки." msgstr "" -"By default, a command may abort on the first error. The ``--force`` flag allows " -"continuing execution, skipping non-critical errors." +"By default, a command may abort on the first error. The ``--force`` flag " +"allows continuing execution, skipping non-critical errors." #: ../../root/flags.rst:33 msgid "**Форматирование вывода**" @@ -116,8 +120,8 @@ msgid "" "Команда выводит данные текстом, но в некоторых сценариях нужен JSON или " "CSV. Флаг ``--format=json`` переключит формат вывода." msgstr "" -"A command outputs data as text, but in some scenarios JSON or CSV is needed. The " -"``--format=json`` flag will switch the output format." +"A command outputs data as text, but in some scenarios JSON or CSV is " +"needed. The ``--format=json`` flag will switch the output format." #: ../../root/flags.rst:36 msgid "**Комбинирование опций**" @@ -128,8 +132,8 @@ msgid "" "Часто нужна комбинация нескольких изменений: подробный вывод, dry-run " "режим и JSON формат. Несколько флагов решают эту задачу одновременно." msgstr "" -"Often a combination of several changes is needed: verbose output, dry-run mode, and " -"JSON format. Multiple flags solve this task simultaneously." +"Often a combination of several changes is needed: verbose output, dry-run" +" mode, and JSON format. Multiple flags solve this task simultaneously." #: ../../root/flags.rst:40 msgid "Практическое значение" @@ -142,9 +146,10 @@ msgid "" "необходимости. Это особенно важно при автоматизации задач в скриптах, где" " гибкость интерфейса критична." msgstr "" -"Flags make commands more predictable and controllable. Users can start with simple " -"usage and then add flags as needed. This is especially important when automating " -"tasks in scripts, where interface flexibility is critical." +"Flags make commands more predictable and controllable. Users can start " +"with simple usage and then add flags as needed. This is especially " +"important when automating tasks in scripts, where interface flexibility " +"is critical." #: ../../root/flags.rst:44 msgid "" @@ -152,9 +157,9 @@ msgid "" "дополнительное поведение достигается без изменения структуры команды, а " "только через передачу опциональных параметров." msgstr "" -"Flags also facilitate command integration into various systems, as additional " -"behavior is achieved without changing the command structure, only through passing " -"optional parameters." +"Flags also facilitate command integration into various systems, as " +"additional behavior is achieved without changing the command structure, " +"only through passing optional parameters." #: ../../root/flags.rst:49 msgid "Синтаксис флагов" @@ -169,24 +174,75 @@ msgid "" "Флаг состоит из префикса (``-``, ``--`` или ``---``), имени и, " "опционально, значения, которое указывается через пробел." msgstr "" -"A flag consists of a prefix (``-``, ``--``, or ``---``), a name, and optionally a " -"value, which is specified with a space." +"A flag consists of a prefix (``-``, ``--``, or ``---``), a name, and " +"optionally a value, which is specified with a space." -#: ../../root/flags.rst:62 +#: ../../root/flags.rst:59 +msgid "**Примеры:**" +msgstr "**Examples:**" + +#: ../../root/flags.rst:70 +msgid "Работа с флагами в обработчиках" +msgstr "Working with Flags in Handlers" + +#: ../../root/flags.rst:72 +msgid "" +"Чтобы получить значение флага в обработчике, используйте объект " +"``response.input_flags`` типа :ref:`InputFlags " +"`." +msgstr "" +"To get the flag value in a handler, use the ``response.input_flags`` " +"object of type :ref:`InputFlags `." + +#: ../../root/flags.rst:74 +msgid "**Пример с флагом, имеющим значение:**" +msgstr "**Example with a flag that has a value:**" + +#: ../../root/flags.rst:80 +msgid "**Пример с флагом-переключателем:**" +msgstr "**Example with a toggle flag:**" + +#: ../../root/flags.rst:87 +msgid "" +"Подробнее о работе с объектом ``InputFlags`` см. в разделе " +":ref:`InputFlags `." +msgstr "" +"For more details on working with the ``InputFlags`` object, see the " +":ref:`InputFlags ` section." + +#: ../../root/flags.rst:92 msgid "Два типа флагов" msgstr "Two Types of Flags" -#: ../../root/flags.rst:64 -msgid "" -"Флаги бывают двух основных видов: без значений (переключатели) и со " -"значениями. ``Argenta`` позволяет регистрировать и вводить флаги обоих " -"типов в любой последовательности для одной команды." -msgstr "" -"Flags come in two main types: without values (switches) and with values. " -"``Argenta`` allows registering and entering flags of both types in any sequence " -"for a single command." +#: ../../root/flags.rst:94 +msgid "Флаги бывают двух основных видов:" +msgstr "Flags come in two main types:" -#: ../../root/flags.rst:67 +#: ../../root/flags.rst:96 +msgid "" +"**Флаги со значениями** — принимают параметр после имени флага (например," +" ``--name John``, ``--port 8080``)" +msgstr "" +"**Flags with values** — accept a parameter after the flag name (for " +"example, ``--name John``, ``--port 8080``)" + +#: ../../root/flags.rst:97 +msgid "" +"**Флаги-переключатели** — не принимают значения, их наличие само по себе " +"является сигналом (например, ``--verbose``, ``--force``)" +msgstr "" +"**Toggle flags** — do not accept values, their presence itself is a " +"signal (for example, ``--verbose``, ``--force``)" + +#: ../../root/flags.rst:99 +msgid "" +"``Argenta`` позволяет регистрировать и вводить флаги обоих типов в любой " +"последовательности для одной команды." +msgstr "" +"``Argenta`` allows registering and entering flags of both types in any " +"sequence for a single command." + +#: ../../root/flags.rst:102 msgid "" "Ошибки валидации не выбрасывают исключений. Вместо этого у каждого " "объекта :ref:`InputFlag ` есть атрибут " @@ -195,47 +251,44 @@ msgid "" " `." msgstr "" "Validation errors do not throw exceptions. Instead, each :ref:`InputFlag " -"` object has a ``status`` attribute that can be used " -"to determine if validation was successful. A detailed description of the API for " -"creating flags is in the :ref:`Flag ` section." +"` object has a ``status`` attribute that can" +" be used to determine if validation was successful. A detailed " +"description of the API for creating flags is in the :ref:`Flag " +"` section." -#: ../../root/flags.rst:69 +#: ../../root/flags.rst:104 msgid "" "При регистрации флага можно задать правила валидации для его значения. По" " умолчанию любое значение считается корректным. Валидацию можно настроить" " несколькими способами:" msgstr "" -"When registering a flag, you can set validation rules for its value. By default, " -"any value is considered valid. Validation can be configured in several ways:" +"When registering a flag, you can set validation rules for its value. By " +"default, any value is considered valid. Validation can be configured in " +"several ways:" -#: ../../root/flags.rst:74 +#: ../../root/flags.rst:109 msgid "Флаги против аргументов" msgstr "Flags vs Arguments" -#: ../../root/flags.rst:76 +#: ../../root/flags.rst:111 msgid "" "В контексте Argenta флаги и аргументы относятся к разным уровням " -"взаимодействия с приложением и имеют принципиально разные сферы действия." +"взаимодействия с приложением." msgstr "" -"In the context of Argenta, flags and arguments belong to different levels of " -"interaction with the application and have fundamentally different scopes." +"In the context of Argenta, flags and arguments belong to different levels" +" of interaction with the application." -#: ../../root/flags.rst:79 -msgid "Определение и назначение" -msgstr "Definition and Purpose" - -#: ../../root/flags.rst:81 +#: ../../root/flags.rst:113 msgid "" -"**Аргументы** — это параметры, передаваемые при запуске приложения один " -"раз при инициализации. Они определяют глобальное состояние и конфигурацию" -" приложения на протяжении всей его работы, например адрес базы данных, " -"уровень логирования или режим работы." +"**Аргументы** — это параметры, передаваемые при запуске приложения. Они " +"определяют глобальную конфигурацию на протяжении всей его работы " +"(например, адрес базы данных, уровень логирования)." msgstr "" -"**Arguments** are parameters passed when launching the application once during " -"initialization. They define the global state and configuration of the application " -"throughout its operation, such as database address, logging level, or operation mode." +"**Arguments** are parameters passed when launching the application. They " +"define the global configuration throughout its operation (for example, " +"database address, logging level)." -#: ../../root/flags.rst:83 +#: ../../root/flags.rst:115 msgid "" "API и более подробное описание в разделах :ref:`ArgParser " "` и :ref:`Arguments " @@ -245,123 +298,143 @@ msgstr "" "` and :ref:`Arguments " "` sections." -#: ../../root/flags.rst:85 +#: ../../root/flags.rst:117 msgid "" "**Флаги** — это параметры командных операций, доступные в рамках " "интерактивной сессии при вводе каждой новой команды. Они позволяют " "модифицировать поведение конкретной команды без перезагрузки приложения." msgstr "" -"**Flags** are command operation parameters available within an interactive session " -"when entering each new command. They allow modifying the behavior of a specific " -"command without restarting the application." +"**Flags** are command operation parameters available within an " +"interactive session when entering each new command. They allow modifying " +"the behavior of a specific command without restarting the application." -#: ../../root/flags.rst:87 +#: ../../root/flags.rst:119 msgid "" "API и более подробное описание в разделе :ref:`Flag " "`." -msgstr "API and more detailed description in the :ref:`Flag ` section." +msgstr "" +"API and more detailed description in the :ref:`Flag " +"` section." -#: ../../root/flags.rst:92 +#: ../../root/flags.rst:124 msgid "Ключевые различия" msgstr "Key Differences" -#: ../../root/flags.rst:94 -msgid "**Время жизни и область действия**" -msgstr "**Lifetime and Scope**" +#: ../../root/flags.rst:126 +msgid "**Время жизни**" +msgstr "**Lifetime**" -#: ../../root/flags.rst:95 +#: ../../root/flags.rst:127 msgid "" -"Аргументы передаются один раз при запуске приложения и сохраняют действие" -" на весь период работы (скоуп **APP**). Флаги наоборот локальны и живут в" -" рамках скоупа **REQUEST**." +"Аргументы передаются один раз при запуске и действуют на весь период " +"работы приложения. Флаги локальны и существуют только в рамках выполнения" +" команды." msgstr "" -"Arguments are passed once when launching the application and remain in effect for " -"the entire operation period (scope **APP**). Flags, on the contrary, are local and " -"live within the **REQUEST** scope." +"Arguments are passed once at startup and remain in effect for the entire " +"application runtime. Flags are local and exist only within the execution " +"of a command." -#: ../../root/flags.rst:97 -msgid "**Частота изменения**" -msgstr "**Change Frequency**" +#: ../../root/flags.rst:129 +msgid "**Изменяемость**" +msgstr "**Mutability**" -#: ../../root/flags.rst:98 +#: ../../root/flags.rst:130 msgid "" "Для изменения аргументов необходимо перезапустить приложение. Флаги можно" -" менять между каждым вводом команды без остановки приложения." +" менять при каждом вводе команды." msgstr "" -"To change arguments, the application must be restarted. Flags can be changed " -"between each command input without stopping the application." +"To change arguments, the application must be restarted. Flags can be " +"changed with each command input." -#: ../../root/flags.rst:100 -msgid "**Уровень конфигурации**" -msgstr "**Configuration Level**" +#: ../../root/flags.rst:132 +msgid "**Назначение**" +msgstr "**Purpose**" -#: ../../root/flags.rst:101 +#: ../../root/flags.rst:133 msgid "" -"Аргументы управляют глобальной конфигурацией приложения и его окружением." -" Флаги управляют поведением отдельных команд и операций пользователя." +"Аргументы управляют глобальной конфигурацией приложения. Флаги управляют " +"поведением отдельных команд." msgstr "" -"Arguments control the global configuration of the application and its environment. " -"Flags control the behavior of individual commands and user operations." +"Arguments control the global configuration of the application. Flags " +"control the behavior of individual commands." -#: ../../root/flags.rst:103 -msgid "**Использование**" -msgstr "**Usage**" +#: ../../root/flags.rst:138 +msgid "Практические примеры" +msgstr "Practical Examples" -#: ../../root/flags.rst:104 -msgid "" -"Аргументы задают начальное состояние системы: что подключить, как " -"работать. Флаги управляют тактикой выполнения команд: как её выполнить, с" -" какими изменениями." -msgstr "" -"Arguments set the initial state of the system: what to connect, how to operate. " -"Flags control the tactics of command execution: how to execute it, with what changes." +#: ../../root/flags.rst:140 +msgid "Аргументы при запуске приложения:" +msgstr "Arguments at application startup:" -#: ../../root/flags.rst:109 -msgid "Практические примеры в Argenta" -msgstr "Practical Examples in Argenta" - -#: ../../root/flags.rst:111 -msgid "При запуске приложения Argenta передаются аргументы:" -msgstr "When launching an Argenta application, arguments are passed:" - -#: ../../root/flags.rst:113 +#: ../../root/flags.rst:142 msgid "Адрес подключения к базе данных" msgstr "Database connection address" -#: ../../root/flags.rst:114 +#: ../../root/flags.rst:143 msgid "Режим работы (production, development, testing)" msgstr "Operation mode (production, development, testing)" -#: ../../root/flags.rst:115 +#: ../../root/flags.rst:144 msgid "Уровень логирования" msgstr "Logging level" -#: ../../root/flags.rst:116 -msgid "Путь к конфигурационным файлам" -msgstr "Path to configuration files" +#: ../../root/flags.rst:146 +msgid "Флаги в интерактивной сессии:" +msgstr "Flags in an interactive session:" -#: ../../root/flags.rst:118 -msgid "В интерактивной сессии для каждой команды указываются флаги:" -msgstr "In an interactive session, flags are specified for each command:" +#: ../../root/flags.rst:148 +msgid "``deploy --verbose --dry-run`` — для команды развёртывания" +msgstr "``deploy --verbose --dry-run`` — for the deployment command" -#: ../../root/flags.rst:120 -msgid "``deploy --verbose --dry-run`` — для текущей команды развёртывания" -msgstr "``deploy --verbose --dry-run`` — for the current deployment command" - -#: ../../root/flags.rst:121 +#: ../../root/flags.rst:149 msgid "``backup --compress --encrypted`` — для команды резервного копирования" msgstr "``backup --compress --encrypted`` — for the backup command" -#: ../../root/flags.rst:122 +#: ../../root/flags.rst:150 msgid "``test --parallel --coverage`` — для команды тестирования" msgstr "``test --parallel --coverage`` — for the testing command" -#: ../../root/flags.rst:124 -msgid "" -"Один пользователь может выполнить разные команды с разными флагами в " -"одной сессии приложения, без необходимости перезапуска с новыми " -"аргументами." -msgstr "" -"A single user can execute different commands with different flags in one application " -"session, without needing to restart with new arguments." +#~ msgid "Определение и назначение" +#~ msgstr "Definition and Purpose" + +#~ msgid "**Частота изменения**" +#~ msgstr "**Change Frequency**" + +#~ msgid "**Уровень конфигурации**" +#~ msgstr "**Configuration Level**" + +#~ msgid "**Использование**" +#~ msgstr "**Usage**" + +#~ msgid "" +#~ "Аргументы задают начальное состояние системы:" +#~ " что подключить, как работать. Флаги " +#~ "управляют тактикой выполнения команд: как " +#~ "её выполнить, с какими изменениями." +#~ msgstr "" +#~ "Arguments set the initial state of " +#~ "the system: what to connect, how " +#~ "to operate. Flags control the tactics" +#~ " of command execution: how to execute" +#~ " it, with what changes." + +#~ msgid "При запуске приложения Argenta передаются аргументы:" +#~ msgstr "When launching an Argenta application, arguments are passed:" + +#~ msgid "Путь к конфигурационным файлам" +#~ msgstr "Path to configuration files" + +#~ msgid "В интерактивной сессии для каждой команды указываются флаги:" +#~ msgstr "In an interactive session, flags are specified for each command:" + +#~ msgid "" +#~ "Один пользователь может выполнить разные " +#~ "команды с разными флагами в одной " +#~ "сессии приложения, без необходимости " +#~ "перезапуска с новыми аргументами." +#~ msgstr "" +#~ "A single user can execute different " +#~ "commands with different flags in one " +#~ "application session, without needing to " +#~ "restart with new arguments." diff --git a/docs/locales/en/LC_MESSAGES/root/overriding_formatting.po b/docs/locales/en/LC_MESSAGES/root/overriding_formatting.po index 69ef1c9..9c72754 100644 --- a/docs/locales/en/LC_MESSAGES/root/overriding_formatting.po +++ b/docs/locales/en/LC_MESSAGES/root/overriding_formatting.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -29,9 +29,10 @@ msgid "" "создавать таблицы, подсвечивать синтаксис и многое другое, что улучшает " "визуальное восприятие информации." msgstr "" -"By default, ``Argenta`` uses the ``rich`` library for text output with enhanced " -"formatting. It allows applying colors and styles, creating tables, highlighting " -"syntax, and much more, which improves the visual perception of information." +"By default, ``Argenta`` uses the ``rich`` library for text output with " +"enhanced formatting. It allows applying colors and styles, creating " +"tables, highlighting syntax, and much more, which improves the visual " +"perception of information." #: ../../root/overriding_formatting.rst:11 msgid "Управление стандартным форматированием" @@ -43,16 +44,17 @@ msgid "" "``override_system_messages: bool`` (по умолчанию ``False``), который " "позволяет отключать стандартное форматирование." msgstr "" -"When creating an ``App`` instance, you can use the ``override_system_messages: " -"bool`` parameter (default ``False``), which allows disabling standard formatting." +"When creating an ``App`` instance, you can use the " +"``override_system_messages: bool`` parameter (default ``False``), which " +"allows disabling standard formatting." #: ../../root/overriding_formatting.rst:15 msgid "" -"Если установить его в ``True``, стилизация текста и ASCII-арт будут " +"Если установить его в ``True``, стилизация текста и ASCII-графика будут " "отключены, а системные сообщения — выводиться в «сыром» виде." msgstr "" -"If set to ``True``, text styling and ASCII art will be disabled, and system " -"messages will be output in \"raw\" form." +"If set to ``True``, text styling and ASCII graphics will be disabled, and" +" system messages will be output in \"raw\" form." #: ../../root/overriding_formatting.rst:20 msgid "Приветственное и прощальное сообщения" @@ -63,8 +65,8 @@ msgid "" "Приветственное (``initial_message``) и прощальное (``farewell_message``) " "сообщения по умолчанию выводятся в виде ASCII-графики." msgstr "" -"Welcome (``initial_message``) and farewell (``farewell_message``) messages are " -"displayed as ASCII art by default." +"Welcome (``initial_message``) and farewell (``farewell_message``) " +"messages are displayed as ASCII art by default." #: ../../root/overriding_formatting.rst:25 msgid "" @@ -75,11 +77,11 @@ msgid "" "``override_system_messages=True`` или использовать только латинские " "символы." msgstr "" -"The ``art`` library is designed to work with ASCII characters and **does not " -"support Cyrillic**. This leads to distortion of Russian and other Cyrillic " -"alphabet characters. If your message contains Cyrillic, it is recommended to " -"disable formatting using ``override_system_messages=True`` or use only Latin " -"characters." +"The ``art`` library is designed to work with ASCII characters and **does " +"not support Cyrillic**. This leads to distortion of Russian and other " +"Cyrillic alphabet characters. If your message contains Cyrillic, it is " +"recommended to disable formatting using ``override_system_messages=True``" +" or use only Latin characters." #: ../../root/overriding_formatting.rst:30 msgid "Кастомизация вывода" @@ -90,8 +92,8 @@ msgid "" "Для полной замены логики вывода текста в конструкторе ``App`` " "предусмотрен параметр ``print_func``." msgstr "" -"For complete replacement of text output logic, the ``App`` constructor provides " -"the ``print_func`` parameter." +"For complete replacement of text output logic, the ``App`` constructor " +"provides the ``print_func`` parameter." #: ../../root/overriding_formatting.rst:34 msgid "" @@ -101,10 +103,11 @@ msgid "" "``rich.console.Console().print``. Вы можете передать сюда свою функцию, " "чтобы, например, логировать вывод в файл или отправлять его по сети." msgstr "" -"**print_func**: ``Callable[[str], None]`` This parameter allows passing any " -"callable entity (for example, a function) that will be used to output all system " -"messages. By default, this is ``rich.console.Console().print``. You can pass your " -"own function here to, for example, log output to a file or send it over the network." +"**print_func**: ``Callable[[str], None]`` This parameter allows passing " +"any callable entity (for example, a function) that will be used to output" +" all system messages. By default, this is " +"``rich.console.Console().print``. You can pass your own function here to," +" for example, log output to a file or send it over the network." #: ../../root/overriding_formatting.rst:38 msgid "" @@ -113,7 +116,8 @@ msgid "" "выводиться в сыром виде, в этом случае рекомендуется переопределить " "стандартное форматирование с помощью ``override_system_messages=True``." msgstr "" -"When overriding the output function, you should ensure it supports ``rich`` markup, " -"otherwise system messages will be output in raw form. In this case, it is " -"recommended to override standard formatting using ``override_system_messages=True``." +"When overriding the output function, you should ensure it supports " +"``rich`` markup, otherwise system messages will be output in raw form. In" +" this case, it is recommended to override standard formatting using " +"``override_system_messages=True``." diff --git a/docs/locales/en/LC_MESSAGES/root/quickstart.po b/docs/locales/en/LC_MESSAGES/root/quickstart.po index 0c4f2cd..19ca959 100644 --- a/docs/locales/en/LC_MESSAGES/root/quickstart.po +++ b/docs/locales/en/LC_MESSAGES/root/quickstart.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -27,28 +27,30 @@ msgid "" "В этом руководстве мы рассмотрим два примера создания CLI-приложения с " "помощью Argenta:" msgstr "" -"In this guide, we will look at two examples of creating a CLI application with Argenta:" +"In this guide, we will look at two examples of creating a CLI application" +" with Argenta:" #: ../../root/quickstart.rst:8 msgid "" -"**Простой пример**: Минимальное приложение, быстрое знакомство с " +"**Простой пример**: минимальное приложение для быстрого знакомства с " "основными компонентами." msgstr "" -"**Simple example**: A minimal application, quick introduction to the main components." +"**Simple example**: a minimal application for quick introduction to the " +"main components." #: ../../root/quickstart.rst:9 msgid "" -"**Более сложный пример**: Полнофункциональное приложение «Менеджер задач»" +"**Более сложный пример**: полнофункциональное приложение «Менеджер задач»" " с внедрением зависимостей и бизнес-логикой." msgstr "" -"**More complex example**: A full-featured \"Task Manager\" application with " -"dependency injection and business logic." +"**More complex example**: a full-featured \"Task Manager\" application " +"with dependency injection and business logic." #: ../../root/quickstart.rst:12 msgid "Простой пример" msgstr "Simple Example" -#: ../../root/quickstart.rst:14 ../../root/quickstart.rst:38 +#: ../../root/quickstart.rst:14 ../../root/quickstart.rst:74 msgid "**Установка**" msgstr "**Installation**" @@ -58,81 +60,123 @@ msgid "" "запуска приложения. Вы можете скопировать этот код, запустить его и сразу" " увидеть результат." msgstr "" -"This example demonstrates the absolute minimum required to create and run an " -"application. You can copy this code, run it, and immediately see the result." +"This example demonstrates the absolute minimum required to create and run" +" an application. You can copy this code, run it, and immediately see the " +"result." -#: ../../root/quickstart.rst:26 ../../root/quickstart.rst:76 +#: ../../root/quickstart.rst:26 +msgid "**Запуск**" +msgstr "**Running**" + +#: ../../root/quickstart.rst:28 +msgid "Сохраните код в файл (например, ``main.py``) и запустите:" +msgstr "Save the code to a file (for example, ``main.py``) and run:" + +#: ../../root/quickstart.rst:34 ../../root/quickstart.rst:112 msgid "**Результат**" msgstr "**Result**" -#: ../../root/quickstart.rst:28 -msgid "Simple App Example" -msgstr "" - -#: ../../root/quickstart.rst:34 -msgid "Более сложный пример: Менеджер задач" -msgstr "More Complex Example: Task Manager" - #: ../../root/quickstart.rst:36 -msgid "" -"В этом руководстве мы создадим простое, но полнофункциональное " -"CLI-приложение «Менеджер задач», которое продемонстрирует ключевые " -"возможности Argenta." -msgstr "" -"In this guide, we will create a simple but full-featured CLI application \"Task " -"Manager\" that will demonstrate the key features of Argenta." +msgid "Simple App Example" +msgstr "Simple App Example" + +#: ../../root/quickstart.rst:42 +msgid "Промежуточный пример: Калькулятор с флагами" +msgstr "Intermediate Example: Calculator with Flags" #: ../../root/quickstart.rst:44 +msgid "" +"Прежде чем перейти к сложному примеру с DI, рассмотрим промежуточный " +"вариант — калькулятор, который использует флаги для управления " +"поведением." +msgstr "" +"Before moving to a complex example with DI, let's consider an " +"intermediate option — a calculator that uses flags to control behavior." + +#: ../../root/quickstart.rst:50 +msgid "**Запуск:**" +msgstr "**Running:**" + +#: ../../root/quickstart.rst:52 +msgid "Сохраните код в файл ``calculator.py`` и запустите:" +msgstr "Save the code to a file ``calculator.py`` and run:" + +#: ../../root/quickstart.rst:58 +msgid "**Использование:**" +msgstr "**Usage:**" + +#: ../../root/quickstart.rst:65 +msgid "" +"Этот пример показывает, как работать с флагами без использования DI. " +"Теперь перейдём к более сложному примеру." +msgstr "" +"This example shows how to work with flags without using DI. Now let's " +"move on to a more complex example." + +#: ../../root/quickstart.rst:70 +msgid "Сложный пример: Менеджер задач с DI" +msgstr "Complex Example: Task Manager with DI" + +#: ../../root/quickstart.rst:72 +msgid "" +"В этом руководстве мы создадим полнофункциональное CLI-приложение " +"«Менеджер задач», которое продемонстрирует работу с внедрением " +"зависимостей." +msgstr "" +"In this guide, we will create a full-featured CLI application \"Task " +"Manager\" that will demonstrate working with dependency injection." + +#: ../../root/quickstart.rst:80 msgid "**Определение моделей данных и репозитория**" msgstr "**Defining Data Models and Repository**" -#: ../../root/quickstart.rst:46 +#: ../../root/quickstart.rst:82 msgid "Сначала определим модели данных для задачи и репозиторий для их хранения." msgstr "First, let's define data models for tasks and a repository to store them." -#: ../../root/quickstart.rst:52 +#: ../../root/quickstart.rst:88 msgid "**Создание провайдера для DI**" msgstr "**Creating a Provider for DI**" -#: ../../root/quickstart.rst:54 +#: ../../root/quickstart.rst:90 msgid "" "Чтобы Argenta могла внедрять ``TaskRepository`` в наши обработчики, мы " "создадим провайдер для ``dishka``." msgstr "" -"To allow Argenta to inject ``TaskRepository`` into our handlers, we will create a " -"provider for ``dishka``." +"To allow Argenta to inject ``TaskRepository`` into our handlers, we will " +"create a provider for ``dishka``." -#: ../../root/quickstart.rst:60 +#: ../../root/quickstart.rst:96 msgid "**Создание обработчиков команд**" msgstr "**Creating Command Handlers**" -#: ../../root/quickstart.rst:62 +#: ../../root/quickstart.rst:98 msgid "" "Теперь создадим обработчики для команд ``add-task`` и ``list-tasks``. " "Обратите внимание, как мы используем флаги и внедряем ``TaskRepository``." msgstr "" -"Now let's create handlers for the ``add-task`` and ``list-tasks`` commands. Notice " -"how we use flags and inject ``TaskRepository``." +"Now let's create handlers for the ``add-task`` and ``list-tasks`` " +"commands. Notice how we use flags and inject ``TaskRepository``." -#: ../../root/quickstart.rst:68 +#: ../../root/quickstart.rst:104 msgid "**Сборка и запуск приложения**" msgstr "**Building and Running the Application**" -#: ../../root/quickstart.rst:70 +#: ../../root/quickstart.rst:106 msgid "" "Наконец, соберем все вместе: создадим экземпляр ``App``, подключим роутер" " и провайдер, а затем запустим приложение." msgstr "" -"Finally, let's put it all together: create an ``App`` instance, connect the router " -"and provider, and then run the application." +"Finally, let's put it all together: create an ``App`` instance, connect " +"the router and provider, and then run the application." -#: ../../root/quickstart.rst:78 +#: ../../root/quickstart.rst:114 msgid "" "Теперь вы можете запустить ``main.py`` и взаимодействовать с вашим новым " "CLI-приложением." msgstr "Now you can run ``main.py`` and interact with your new CLI application." -#: ../../root/quickstart.rst:80 +#: ../../root/quickstart.rst:116 msgid "Task Manager Example" -msgstr "" +msgstr "Task Manager Example" diff --git a/docs/locales/en/LC_MESSAGES/root/redirect_stdout.po b/docs/locales/en/LC_MESSAGES/root/redirect_stdout.po index b89857e..f558928 100644 --- a/docs/locales/en/LC_MESSAGES/root/redirect_stdout.po +++ b/docs/locales/en/LC_MESSAGES/root/redirect_stdout.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -29,15 +29,46 @@ msgid "" "перехвата стандартного потока вывода (``stdout``), что накладывает " "некоторые особенности." msgstr "" -"``Argenta`` provides flexible mechanisms for output formatting, including dynamic " -"dividing lines. This is achieved by intercepting the standard output stream " -"(``stdout``), which imposes certain specifics." +"``Argenta`` provides flexible mechanisms for output formatting, including" +" dynamic dividing lines. This is achieved by intercepting the standard " +"output stream (``stdout``), which imposes certain specifics." #: ../../root/redirect_stdout.rst:11 +msgid "Когда нужно отключать перехват stdout" +msgstr "When to Disable stdout Interception" + +#: ../../root/redirect_stdout.rst:13 +msgid "" +"Отключайте перехват ``stdout`` (``disable_redirect_stdout=True`` в " +"``Router``), если ваши команды:" +msgstr "" +"Disable ``stdout`` interception (``disable_redirect_stdout=True`` in " +"``Router``) if your commands:" + +#: ../../root/redirect_stdout.rst:15 +msgid "" +"✓ Используют ``input()`` для интерактивного ввода данных от пользователя " +"✓ Используют прогресс-бары (``tqdm``, ``rich.progress``) ✓ Выводят данные" +" в реальном времени (streaming, логи) ✓ Используют библиотеки, которые " +"напрямую работают с ``stdout``" +msgstr "" +"✓ Use ``input()`` for interactive user input ✓ Use progress bars " +"(``tqdm``, ``rich.progress``) ✓ Output data in real-time (streaming, " +"logs) ✓ Use libraries that work directly with ``stdout``" + +#: ../../root/redirect_stdout.rst:20 +msgid "" +"Для обычных команд с ``print()`` перехват можно оставить включённым — это" +" не влияет на их работу." +msgstr "" +"For regular commands with ``print()``, interception can be left enabled —" +" it does not affect their operation." + +#: ../../root/redirect_stdout.rst:25 msgid "Механизм перехвата ``stdout``" msgstr "``stdout`` Interception Mechanism" -#: ../../root/redirect_stdout.rst:13 +#: ../../root/redirect_stdout.rst:27 msgid "" "По умолчанию ``Argenta`` перехватывает весь текст, выводимый в ``stdout``" " внутри обработчика команды. Это необходимо для реализации **динамических" @@ -46,158 +77,164 @@ msgid "" "создаёт аккуратный интерфейс, где вывод команды «обёрнут» в рамку, " "подогнанную под его содержимое." msgstr "" -"By default, ``Argenta`` intercepts all text output to ``stdout`` inside a command " -"handler. This is necessary to implement **dynamic dividers**: the system analyzes " -"the output, finds the longest line, and uses it to draw the top and bottom borders. " -"This approach creates a neat interface where the command output is \"wrapped\" in a " -"frame fitted to its content." +"By default, ``Argenta`` intercepts all text output to ``stdout`` inside a" +" command handler. This is necessary to implement **dynamic dividers**: " +"the system analyzes the output, finds the longest line, and uses it to " +"draw the top and bottom borders. This approach creates a neat interface " +"where the command output is \"wrapped\" in a frame fitted to its content." -#: ../../root/redirect_stdout.rst:15 +#: ../../root/redirect_stdout.rst:29 msgid "Пример приложения с динамической разделительной линией:" msgstr "Example of an application with a dynamic dividing line:" -#: ../../root/redirect_stdout.rst:17 +#: ../../root/redirect_stdout.rst:31 msgid "Example of an application with a dynamic dividing line" -msgstr "" +msgstr "Example of an application with a dynamic dividing line" -#: ../../root/redirect_stdout.rst:20 +#: ../../root/redirect_stdout.rst:34 msgid "" -"Как вы можете заметить разделительная линия ровно той же длины, что и " +"Как вы можете заметить, разделительная линия ровно той же длины, что и " "самая длинная строка в выводе." msgstr "" -"As you can notice, the dividing line is exactly the same length as the longest line " -"in the output." +"As you can see, the dividing line is exactly the same length as the " +"longest line in the output." -#: ../../root/redirect_stdout.rst:22 +#: ../../root/redirect_stdout.rst:36 msgid "То же приложение с статической линией:" msgstr "The same application with a static line:" -#: ../../root/redirect_stdout.rst:24 +#: ../../root/redirect_stdout.rst:38 msgid "Example of an application with a static dividing line" -msgstr "" +msgstr "Example of an application with a static dividing line" -#: ../../root/redirect_stdout.rst:27 +#: ../../root/redirect_stdout.rst:41 msgid "" "В этом примере разделительная линия имеет фиксированную длину (по " "умолчанию 25 символов)." -msgstr "In this example, the dividing line has a fixed length (25 characters by default)." +msgstr "" +"In this example, the dividing line has a fixed length (25 characters by " +"default)." -#: ../../root/redirect_stdout.rst:32 +#: ../../root/redirect_stdout.rst:46 msgid "Побочные эффекты перехвата ``stdout``" msgstr "Side Effects of ``stdout`` Interception" -#: ../../root/redirect_stdout.rst:34 +#: ../../root/redirect_stdout.rst:48 msgid "" "Побочный эффект этого механизма проявляется при использовании функций, " "которые последовательно выводят текст в консоль и ожидают ввод от " "пользователя. Классический пример — стандартная функция ``input()``." msgstr "" -"A side effect of this mechanism manifests when using functions that sequentially " -"output text to the console and expect user input. A classic example is the standard " -"``input()`` function." +"A side effect of this mechanism manifests when using functions that " +"sequentially output text to the console and expect user input. A classic " +"example is the standard ``input()`` function." -#: ../../root/redirect_stdout.rst:44 +#: ../../root/redirect_stdout.rst:57 msgid "" "При включённом перехвате ``stdout`` текст (например, ``\"Введите ваше " "имя: \"``) **не будет выведен в консоль немедленно**. Он попадёт в буфер " "и отобразится лишь после завершения работы обработчика вместе с остальным" " выводом. Это может сбить пользователя с толку." msgstr "" -"With ``stdout`` interception enabled, text (for example, ``\"Enter your name: \"``) " -"**will not be output to the console immediately**. It will go into a buffer and " -"appear only after the handler finishes, along with the rest of the output. This can " -"confuse the user." +"With ``stdout`` interception enabled, text (for example, ``\"Enter your " +"name: \"``) **will not be output to the console immediately**. It will go" +" into a buffer and appear only after the handler finishes, along with the" +" rest of the output. This can confuse the user." -#: ../../root/redirect_stdout.rst:49 +#: ../../root/redirect_stdout.rst:62 msgid "Отключение перехвата ``stdout`` с помощью ``disable_redirect_stdout``" msgstr "Disabling ``stdout`` Interception with ``disable_redirect_stdout``" -#: ../../root/redirect_stdout.rst:51 +#: ../../root/redirect_stdout.rst:64 msgid "" "Чтобы решить эту проблему, в конструкторе ``Router`` предусмотрен " "специальный аргумент:" -msgstr "To solve this problem, the ``Router`` constructor provides a special argument:" +msgstr "" +"To solve this problem, the ``Router`` constructor provides a special " +"argument:" -#: ../../root/redirect_stdout.rst:53 +#: ../../root/redirect_stdout.rst:66 msgid "**disable_redirect_stdout** (``bool``, по умолчанию ``False``)" msgstr "**disable_redirect_stdout** (``bool``, default ``False``)" -#: ../../root/redirect_stdout.rst:55 +#: ../../root/redirect_stdout.rst:68 msgid "" "Если при создании роутера установить ``disable_redirect_stdout=True``, " "механизм перехвата ``stdout`` будет отключён для всех его обработчиков." msgstr "" -"If you set ``disable_redirect_stdout=True`` when creating a router, the ``stdout`` " -"interception mechanism will be disabled for all its handlers." +"If you set ``disable_redirect_stdout=True`` when creating a router, the " +"``stdout`` interception mechanism will be disabled for all its handlers." -#: ../../root/redirect_stdout.rst:57 ../../root/redirect_stdout.rst:87 +#: ../../root/redirect_stdout.rst:70 ../../root/redirect_stdout.rst:100 msgid "**Пример использования:**" msgstr "**Usage example:**" -#: ../../root/redirect_stdout.rst:63 +#: ../../root/redirect_stdout.rst:76 msgid "" "В этом случае ``input()`` будет работать как обычно, и пользователь сразу" " увидит приглашение к вводу." msgstr "" -"In this case, ``input()`` will work as usual, and the user will immediately see the " -"input prompt." +"In this case, ``input()`` will work as usual, and the user will " +"immediately see the input prompt." -#: ../../root/redirect_stdout.rst:68 +#: ../../root/redirect_stdout.rst:81 msgid "Типы разделительных линий" msgstr "Types of Dividing Lines" -#: ../../root/redirect_stdout.rst:70 +#: ../../root/redirect_stdout.rst:83 msgid "" "``Argenta`` поддерживает два типа разделителей, которые настраиваются при" " инициализации ``App``:" msgstr "" -"``Argenta`` supports two types of dividers, which are configured during ``App`` " -"initialization:" +"``Argenta`` supports two types of dividers, which are configured during " +"``App`` initialization:" -#: ../../root/redirect_stdout.rst:72 +#: ../../root/redirect_stdout.rst:85 msgid "**``DynamicDividingLine()``**" -msgstr "" +msgstr "**``DynamicDividingLine()``**" -#: ../../root/redirect_stdout.rst:73 +#: ../../root/redirect_stdout.rst:86 msgid "" "Поведение по умолчанию. Длина линии динамически подстраивается под самый " "длинный текст в выводе." msgstr "" -"Default behavior. The line length dynamically adjusts to the longest text in the output." +"Default behavior. The line length dynamically adjusts to the longest text" +" in the output." -#: ../../root/redirect_stdout.rst:74 +#: ../../root/redirect_stdout.rst:87 msgid "" "Требует включённого перехвата ``stdout`` " "(``disable_redirect_stdout=False`` в роутере)." msgstr "" -"Requires enabled ``stdout`` interception (``disable_redirect_stdout=False`` in the router)." +"Requires enabled ``stdout`` interception " +"(``disable_redirect_stdout=False`` in the router)." -#: ../../root/redirect_stdout.rst:76 +#: ../../root/redirect_stdout.rst:89 msgid "**``StaticDividingLine(length: int = 25)``**" -msgstr "" +msgstr "**``StaticDividingLine(length: int = 25)``**" -#: ../../root/redirect_stdout.rst:77 +#: ../../root/redirect_stdout.rst:90 msgid "" "Линия имеет фиксированную длину (по умолчанию 25 символов), которую можно" " задать через аргумент ``length``." msgstr "" -"The line has a fixed length (25 characters by default), which can be set via the " -"``length`` argument." +"The line has a fixed length (25 characters by default), which can be set " +"via the ``length`` argument." -#: ../../root/redirect_stdout.rst:78 +#: ../../root/redirect_stdout.rst:91 msgid "" "Используется принудительно для роутеров с " "``disable_redirect_stdout=True``, так как без перехвата вывода невозможно" " определить динамическую длину." msgstr "" -"Used forcibly for routers with ``disable_redirect_stdout=True``, as it is " -"impossible to determine dynamic length without output interception." +"Used forcibly for routers with ``disable_redirect_stdout=True``, as it is" +" impossible to determine dynamic length without output interception." -#: ../../root/redirect_stdout.rst:83 +#: ../../root/redirect_stdout.rst:96 msgid "Настройка разделительной линии в ``App``" msgstr "Configuring the Dividing Line in ``App``" -#: ../../root/redirect_stdout.rst:85 +#: ../../root/redirect_stdout.rst:98 msgid "" "Вы можете глобально задать тип разделителя для всего приложения через " "аргумент ``dividing_line`` в конструкторе ``App``." @@ -205,69 +242,69 @@ msgstr "" "You can globally set the divider type for the entire application via the " "``dividing_line`` argument in the ``App`` constructor." -#: ../../root/redirect_stdout.rst:96 +#: ../../root/redirect_stdout.rst:109 msgid "Итоговое поведение" msgstr "Resulting Behavior" -#: ../../root/redirect_stdout.rst:102 +#: ../../root/redirect_stdout.rst:115 msgid "``disable_redirect_stdout`` на ``Router``" msgstr "``disable_redirect_stdout`` on ``Router``" -#: ../../root/redirect_stdout.rst:103 +#: ../../root/redirect_stdout.rst:116 msgid "Тип линии в ``App``" msgstr "Line type in ``App``" -#: ../../root/redirect_stdout.rst:104 +#: ../../root/redirect_stdout.rst:117 msgid "Фактическое поведение" msgstr "Actual behavior" -#: ../../root/redirect_stdout.rst:105 +#: ../../root/redirect_stdout.rst:118 msgid "``input()`` работает корректно?" msgstr "Does ``input()`` work correctly?" -#: ../../root/redirect_stdout.rst:106 ../../root/redirect_stdout.rst:110 +#: ../../root/redirect_stdout.rst:119 ../../root/redirect_stdout.rst:123 msgid "``False`` (по умолчанию)" msgstr "``False`` (default)" -#: ../../root/redirect_stdout.rst:107 ../../root/redirect_stdout.rst:115 +#: ../../root/redirect_stdout.rst:120 ../../root/redirect_stdout.rst:128 msgid "``DynamicDividingLine``" -msgstr "" +msgstr "``DynamicDividingLine``" -#: ../../root/redirect_stdout.rst:108 +#: ../../root/redirect_stdout.rst:121 msgid "Динамическая линия, длина по содержимому" msgstr "Dynamic line, length by content" -#: ../../root/redirect_stdout.rst:109 ../../root/redirect_stdout.rst:113 +#: ../../root/redirect_stdout.rst:122 ../../root/redirect_stdout.rst:126 msgid "Нет" msgstr "No" -#: ../../root/redirect_stdout.rst:111 ../../root/redirect_stdout.rst:119 +#: ../../root/redirect_stdout.rst:124 ../../root/redirect_stdout.rst:132 msgid "``StaticDividingLine``" -msgstr "" +msgstr "``StaticDividingLine``" -#: ../../root/redirect_stdout.rst:112 ../../root/redirect_stdout.rst:120 +#: ../../root/redirect_stdout.rst:125 ../../root/redirect_stdout.rst:133 msgid "Статическая линия указанной длины" msgstr "Static line of specified length" -#: ../../root/redirect_stdout.rst:114 ../../root/redirect_stdout.rst:118 +#: ../../root/redirect_stdout.rst:127 ../../root/redirect_stdout.rst:131 msgid "``True``" -msgstr "" +msgstr "``True``" -#: ../../root/redirect_stdout.rst:116 +#: ../../root/redirect_stdout.rst:129 msgid "**Принудительно статическая линия** (длина по умолч.)" msgstr "**Forcibly static line** (default length)" -#: ../../root/redirect_stdout.rst:117 ../../root/redirect_stdout.rst:121 +#: ../../root/redirect_stdout.rst:130 ../../root/redirect_stdout.rst:134 msgid "Да" msgstr "Yes" -#: ../../root/redirect_stdout.rst:123 +#: ../../root/redirect_stdout.rst:136 msgid "" "Таким образом, для интерактивных команд, требующих ввода от пользователя," " отключайте перехват ``stdout`` на уровне роутера. Для всех остальных " "команд можно оставить поведение по умолчанию." msgstr "" -"Thus, for interactive commands that require user input, disable ``stdout`` " -"interception at the router level. For all other commands, you can leave the default " -"behavior." +"Thus, for interactive commands that require user input, disable " +"``stdout`` interception at the router level. For all other commands, you " +"can leave the default behavior." diff --git a/docs/locales/en/LC_MESSAGES/root/testing.po b/docs/locales/en/LC_MESSAGES/root/testing.po index d3806d2..cf97512 100644 --- a/docs/locales/en/LC_MESSAGES/root/testing.po +++ b/docs/locales/en/LC_MESSAGES/root/testing.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Argenta \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-12-02 22:27+0300\n" +"POT-Creation-Date: 2025-12-04 20:39+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -27,8 +27,8 @@ msgid "" "В этом разделе описаны практики тестирования приложений на основе " "``Argenta``. Примеры основаны на фактическом публичном API." msgstr "" -"This section describes testing practices for applications based on ``Argenta``. " -"Examples are based on the actual public API." +"This section describes testing practices for applications based on " +"``Argenta``. Examples are based on the actual public API." #: ../../root/testing.rst:7 msgid "Модульное тестирование обработчиков" @@ -40,12 +40,12 @@ msgid "" "чистые функции, не поднимая весь цикл приложения. Рекомендуются " "``unittest`` или ``pytest``." msgstr "" -"Handlers in ``Argenta`` are regular functions. They are convenient to test as pure " -"functions without starting the entire application cycle. ``unittest`` or ``pytest`` " -"are recommended." +"Handlers in ``Argenta`` are regular functions. They are convenient to " +"test as pure functions without starting the entire application cycle. " +"``unittest`` or ``pytest`` are recommended." #: ../../root/testing.rst:11 ../../root/testing.rst:24 -#: ../../root/testing.rst:37 ../../root/testing.rst:53 +#: ../../root/testing.rst:37 ../../root/testing.rst:55 msgid "**Пример использования:**" msgstr "**Usage example:**" @@ -58,7 +58,8 @@ msgid "" "Если обработчику нужны зависимости, используйте ``dishka`` и интеграцию " "``Argenta``:" msgstr "" -"If a handler needs dependencies, use ``dishka`` and ``Argenta`` integration:" +"If a handler needs dependencies, use ``dishka`` and ``Argenta`` " +"integration:" #: ../../root/testing.rst:33 msgid "Интеграционное тестирование приложения" @@ -71,9 +72,10 @@ msgid "" "ввода. Это даёт близкое к реальности поведение без необходимости " "симулировать ``stdin``." msgstr "" -"For higher-level tests, assemble ``App`` and ``Router`` and call handlers through " -"command parsing, bypassing the infinite input loop. This provides behavior close to " -"reality without the need to simulate ``stdin``." +"For higher-level tests, assemble ``App`` and ``Router`` and call handlers" +" through command parsing, bypassing the infinite input loop. This " +"provides behavior close to reality without the need to simulate " +"``stdin``." #: ../../root/testing.rst:46 msgid "E2E-тестирование цикла" @@ -85,54 +87,57 @@ msgid "" "передачей строк в ``stdin``. Это тяжелее и обычно не требуется. Если всё " "же необходимо — пример ниже." msgstr "" -"Full execution of the ``start_polling`` loop can be covered through a subprocess " -"with passing strings to ``stdin``. This is heavier and usually not required. If " -"still necessary, an example is below." +"Full execution of the ``start_polling`` loop can be covered through a " +"subprocess with passing strings to ``stdin``. This is heavier and usually" +" not required. If still necessary, an example is below." #: ../../root/testing.rst:51 msgid "" -"Обязательно передавайте строковый триггер команды выхода последним " -"элементом в списке, который передаёте в контекстном менеджере при патче " -"``input`` как аргумент ``side_effects``, иначе тестируемое приложение " -"будет ожидать ввода следующей команды и не сможет корректно завершиться." +"**Важно:** Обязательно передавайте строковый триггер команды выхода " +"последним элементом в списке ``side_effects`` при патче ``input``." msgstr "" -"Be sure to pass the exit command string trigger as the last element in the list " -"that you pass in the context manager when patching ``input`` as the ``side_effects`` " -"argument, otherwise the application under test will wait for the next command input " -"and will not be able to terminate correctly." +"**Important:** Always pass the exit command string trigger as the last " +"element in the ``side_effects`` list when patching ``input``." -#: ../../root/testing.rst:62 +#: ../../root/testing.rst:53 +msgid "" +"Иначе тестируемое приложение будет ожидать ввода следующей команды и не " +"сможет корректно завершиться." +msgstr "" +"Otherwise, the application under test will wait for the next command " +"input and will not be able to terminate correctly." + +#: ../../root/testing.rst:64 msgid "Советы по тестированию" msgstr "Testing Tips" -#: ../../root/testing.rst:64 +#: ../../root/testing.rst:66 msgid "**Изолируйте тесты**: Каждый тест должен быть независимым от других." msgstr "**Isolate tests**: Each test should be independent of others." -#: ../../root/testing.rst:65 +#: ../../root/testing.rst:67 msgid "" "**Моки для внешних интеграций**: БД, HTTP-клиенты и т.п. подменяйте " "заглушками и провайдерами ``dishka``." msgstr "" -"**Mocks for external integrations**: Replace databases, HTTP clients, etc. with " -"stubs and ``dishka`` providers." +"**Mocks for external integrations**: Replace databases, HTTP clients, " +"etc. with stubs and ``dishka`` providers." -#: ../../root/testing.rst:66 +#: ../../root/testing.rst:68 msgid "" "**Покрывайте ошибочные сценарии**: Некорректные флаги, неизвестные " "команды, пустой ввод." -msgstr "" -"**Cover error scenarios**: Incorrect flags, unknown commands, empty input." +msgstr "**Cover error scenarios**: Incorrect flags, unknown commands, empty input." -#: ../../root/testing.rst:67 +#: ../../root/testing.rst:69 msgid "" "**Минимизируйте зависимость от форматирования**: Сравнивайте ключевые " "фрагменты вывода, а не весь блок целиком." msgstr "" -"**Minimize formatting dependency**: Compare key output fragments, not the entire " -"block." +"**Minimize formatting dependency**: Compare key output fragments, not the" +" entire block." -#: ../../root/testing.rst:68 +#: ../../root/testing.rst:70 msgid "**Измеряйте покрытие**: Используйте ``pytest-cov``." msgstr "**Measure coverage**: Use ``pytest-cov``."