Small documentation improvements and texts update

This commit is contained in:
Alex Root Junior 2023-08-26 23:18:20 +03:00
parent 806f8f67d5
commit ca4c1b4b95
No known key found for this signature in database
GPG key ID: 074C1D455EBEA4AC
41 changed files with 2160 additions and 1167 deletions

View file

@ -56,7 +56,7 @@ Features
- Telegram Bot API integration code was `autogenerated <https://github.com/aiogram/tg-codegen>`_ and can be easily re-generated when API gets updated
- Updates router (Blueprints)
- Has Finite State Machine
- Uses powerful `magic filters <https://docs.aiogram.dev/en/dev-3.x/dispatcher/filters/magic_filters.html#magic-filters>`
- Uses powerful `magic filters <https://docs.aiogram.dev/en/latest/dispatcher/filters/magic_filters.html#magic-filters>`_
- Middlewares (incoming updates and API calls)
- Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-can-i-make-requests-in-response-to-updates>`_
- Integrated I18n/L10n support with GNU Gettext (or Fluent)

View file

@ -6,8 +6,8 @@ Dispatcher is root :obj:`Router` and in code Dispatcher can be used directly for
Here is only listed base information about Dispatcher. All about writing handlers, filters and etc. you can found in next pages:
- `Router <router.html>`__
- `Observer <observer.html>`__
- :ref:`Router <Router>`
- :ref:`Filtering events`
.. autoclass:: aiogram.dispatcher.dispatcher.Dispatcher

View file

@ -1,4 +1,4 @@
.. _callback-data-factory
.. _Callback data factory:
==============================
Callback Data Factory & Filter

View file

@ -2,6 +2,27 @@
ChatMemberUpdated
=================
Usage
=====
Handle user leave or join events
.. code-block:: python
from aiogram.filters import IS_MEMBER, IS_NOT_MEMBER
@router.chat_member(ChatMemberUpdatedFilter(IS_MEMBER >> IS_NOT_MEMBER))
async def on_user_leave(event: ChatMemberUpdated): ...
@router.chat_member(ChatMemberUpdatedFilter(IS_NOT_MEMBER >> IS_MEMBER))
async def on_user_join(event: ChatMemberUpdated): ...
Or construct your own terms via using pre-defined set of statuses and transitions.
Explanation
===========
.. autoclass:: aiogram.filters.chat_member_updated.ChatMemberUpdatedFilter
:members:
:member-order: bysource
@ -77,22 +98,6 @@ will produce swap of old and new statuses.
Note that if you define the status unions (via :code:`|`) you will need to add brackets for the statement
before use shift operator in due to operator priorities.
Usage
=====
Handle user leave or join events
.. code-block:: python
from aiogram.filters import IS_MEMBER, IS_NOT_MEMBER
@router.chat_member(ChatMemberUpdatedFilter(IS_MEMBER >> IS_NOT_MEMBER))
async def on_user_leave(event: ChatMemberUpdated): ...
@router.chat_member(ChatMemberUpdatedFilter(IS_NOT_MEMBER >> IS_MEMBER))
async def on_user_join(event: ChatMemberUpdated): ...
Or construct your own terms via using pre-defined set of statuses and transitions.
Allowed handlers
================

View file

@ -2,19 +2,6 @@
Command
=======
.. autoclass:: aiogram.filters.command.Command
:members: __init__
:member-order: bysource
:undoc-members: False
When filter is passed the :class:`aiogram.filters.command.CommandObject` will be passed to the handler argument :code:`command`
.. autoclass:: aiogram.filters.command.CommandObject
:members:
:member-order: bysource
:undoc-members: False
Usage
=====
@ -28,6 +15,19 @@ Usage
Command cannot include spaces or any whitespace
.. autoclass:: aiogram.filters.command.Command
:members: __init__
:member-order: bysource
:undoc-members: False
When filter is passed the :class:`aiogram.filters.command.CommandObject` will be passed to the handler argument :code:`command`
.. autoclass:: aiogram.filters.command.CommandObject
:members:
:member-order: bysource
:undoc-members: False
Allowed handlers
================

View file

@ -1,3 +1,5 @@
.. _Filtering events:
================
Filtering events
================

View file

@ -2,6 +2,14 @@
MagicData
=========
Usage
=====
#. :code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that :code:`config` should be passed from middleware)
Explanation
===========
.. autoclass:: aiogram.filters.magic_data.MagicData
:members:
:member-order: bysource
@ -11,11 +19,6 @@ Can be imported:
- :code:`from aiogram.filters import MagicData`
Usage
=====
#. :code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that :code:`config` should be passed from middleware)
Allowed handlers
================

View file

@ -1,3 +1,5 @@
.. _Finite State Machine:
====================
Finite State Machine
====================

View file

@ -26,12 +26,12 @@ So, you can use both of them with *aiogram*.
router
dispatcher
class_based_handlers/index
dependency_injection
filters/index
middlewares
finite_state_machine/index
flags
errors
long_polling
webhook
dependency_injection
finite_state_machine/index
middlewares
errors
flags
class_based_handlers/index

View file

@ -1,7 +1,23 @@
.. _Router:
######
Router
######
Usage:
.. code-block:: python
from aiogram import Router
from aiogram.types import Message
my_router = Router(name=__name__)
@my_router.message()
async def message_handler(message: Message) -> Any:
await message.answer('Hello from my router!')
.. autoclass:: aiogram.dispatcher.router.Router
:members: __init__, include_router, include_routers, resolve_used_update_types
:show-inheritance:

View file

@ -24,7 +24,7 @@ From PyPI
.. code-block:: bash
pip install -U --pre aiogram
pip install -U aiogram
From GitHub
-----------

View file

@ -0,0 +1,94 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2023, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:3
msgid "unpinAllGeneralForumTopicMessages"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages:1
#: of
msgid ""
"Use this method to clear the list of pinned messages in a General forum "
"topic. The bot must be an administrator in the chat for this to work and "
"must have the *can_pin_messages* administrator right in the supergroup. "
"Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages:3
#: of
msgid ""
"Source: "
"https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages"
msgstr ""
#: ../../docstring
#: aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages.chat_id:1
#: of
msgid ""
"Unique identifier for the target chat or username of the target "
"supergroup (in the format :code:`@supergroupusername`)"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:15
msgid "Usage"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:18
msgid "As bot method"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:26
msgid "Method as object"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:28
msgid "Imports:"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:30
msgid ""
":code:`from aiogram.methods.unpin_all_general_forum_topic_messages import"
" UnpinAllGeneralForumTopicMessages`"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:31
msgid ""
"alias: :code:`from aiogram.methods import "
"UnpinAllGeneralForumTopicMessages`"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:34
msgid "With specific bot"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:41
msgid "As reply into Webhook in handler"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:49
msgid "As shortcut from received object"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:51
msgid ":meth:`aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages`"
msgstr ""

View file

@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-03-11 01:52+0200\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.11.0\n"
"Generated-By: Babel 2.12.1\n"
#: ../../api/types/chat.rst:3
msgid "Chat"
@ -88,6 +88,13 @@ msgid ""
":class:`aiogram.methods.get_chat.GetChat`."
msgstr ""
#: ../../docstring aiogram.types.chat.Chat.emoji_status_expiration_date:1 of
msgid ""
"*Optional*. Expiration date of the emoji status of the other party in a "
"private chat, if any. Returned only in "
":class:`aiogram.methods.get_chat.GetChat`."
msgstr ""
#: ../../docstring aiogram.types.chat.Chat.bio:1 of
msgid ""
"*Optional*. Bio of the other party in a private chat. Returned only in "
@ -264,6 +271,7 @@ msgstr ""
#: aiogram.types.chat.Chat.set_sticker_set:4
#: aiogram.types.chat.Chat.set_title:4 aiogram.types.chat.Chat.unban:4
#: aiogram.types.chat.Chat.unban_sender_chat:4
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:4
#: aiogram.types.chat.Chat.unpin_all_messages:4
#: aiogram.types.chat.Chat.unpin_message:4 of
msgid ":code:`chat_id`"
@ -320,6 +328,7 @@ msgstr ""
#: aiogram.types.chat.Chat.set_permissions aiogram.types.chat.Chat.set_photo
#: aiogram.types.chat.Chat.set_sticker_set aiogram.types.chat.Chat.set_title
#: aiogram.types.chat.Chat.unban aiogram.types.chat.Chat.unban_sender_chat
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages
#: aiogram.types.chat.Chat.unpin_all_messages
#: aiogram.types.chat.Chat.unpin_message of
msgid "Returns"
@ -1269,6 +1278,33 @@ msgstr ""
msgid "instance of method :class:`aiogram.methods.set_chat_photo.SetChatPhoto`"
msgstr ""
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:1 of
msgid ""
"Shortcut for method "
":class:`aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages`"
" will automatically fill method attributes:"
msgstr ""
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:6 of
msgid ""
"Use this method to clear the list of pinned messages in a General forum "
"topic. The bot must be an administrator in the chat for this to work and "
"must have the *can_pin_messages* administrator right in the supergroup. "
"Returns :code:`True` on success."
msgstr ""
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:8 of
msgid ""
"Source: "
"https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages"
msgstr ""
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:10 of
msgid ""
"instance of method "
":class:`aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages`"
msgstr ""
#~ msgid ""
#~ "Use this method to get information "
#~ "about a member of a chat. The "

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-06 16:52+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -173,6 +173,10 @@ msgstr ""
msgid "*Optional*. Message is a sticker, information about the sticker"
msgstr ""
#: ../../docstring aiogram.types.message.Message.story:1 of
msgid "*Optional*. Message is a forwarded story"
msgstr ""
#: ../../docstring aiogram.types.message.Message.video:1 of
msgid "*Optional*. Message is a video, information about the video"
msgstr ""

View file

@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
"Generated-By: Babel 2.12.1\n"
#: ../../api/types/poll_answer.rst:3
msgid "PollAnswer"
@ -33,12 +33,29 @@ msgstr ""
msgid "Unique poll identifier"
msgstr ""
#: ../../docstring aiogram.types.poll_answer.PollAnswer.user:1 of
msgid "The user, who changed the answer to the poll"
msgstr ""
#: ../../docstring aiogram.types.poll_answer.PollAnswer.option_ids:1 of
msgid ""
"0-based identifiers of answer options, chosen by the user. May be empty "
"if the user retracted their vote."
"0-based identifiers of chosen answer options. May be empty if the vote "
"was retracted."
msgstr ""
#: ../../docstring aiogram.types.poll_answer.PollAnswer.voter_chat:1 of
msgid ""
"*Optional*. The chat that changed the answer to the poll, if the voter is"
" anonymous"
msgstr ""
#: ../../docstring aiogram.types.poll_answer.PollAnswer.user:1 of
msgid ""
"*Optional*. The user that changed the answer to the poll, if the voter "
"isn't anonymous"
msgstr ""
#~ msgid "The user, who changed the answer to the poll"
#~ msgstr ""
#~ msgid ""
#~ "0-based identifiers of answer options, "
#~ "chosen by the user. May be empty"
#~ " if the user retracted their vote."
#~ msgstr ""

View file

@ -0,0 +1,32 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2023, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: ../../api/types/story.rst:3
msgid "Story"
msgstr ""
#: aiogram.types.story.Story:1 of
msgid ""
"This object represents a message about a forwarded story in the chat. "
"Currently holds no information."
msgstr ""
#: aiogram.types.story.Story:3 of
msgid "Source: https://core.telegram.org/bots/api#story"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -78,112 +78,112 @@ msgstr ""
msgid "Activate the environment"
msgstr ""
#: ../../contributing.rst:38
msgid "Linux/ macOS:"
#: ../../contributing.rst:38 ../../contributing.rst:77
msgid "Linux / macOS:"
msgstr ""
#: ../../contributing.rst:44
msgid "Windows PoweShell"
msgid "Windows cmd"
msgstr ""
#: ../../contributing.rst:50
msgid ""
"To check it worked, use described command, it should show the :code:`pip`"
" location inside the isolated environment"
msgstr ""
#: ../../contributing.rst:53
msgid "Linux, macOS:"
msgstr ""
#: ../../contributing.rst:59
msgid "Windows PowerShell"
msgstr ""
#: ../../contributing.rst:65
#: ../../contributing.rst:56
msgid ""
"Also make you shure you have the latest pip version in your virtual "
"To check it worked, use described command, it should show the :code:`pip`"
" version and location inside the isolated environment"
msgstr ""
#: ../../contributing.rst:64
msgid ""
"Also make sure you have the latest pip version in your virtual "
"environment to avoid errors on next steps:"
msgstr ""
#: ../../contributing.rst:74
#: ../../contributing.rst:73
msgid "Setup project"
msgstr ""
#: ../../contributing.rst:76
#: ../../contributing.rst:75
msgid ""
"After activating the environment install `aiogram` from sources and their"
" dependencies:"
" dependencies."
msgstr ""
#: ../../contributing.rst:82
#: ../../contributing.rst:83
msgid "Windows:"
msgstr ""
#: ../../contributing.rst:89
msgid ""
"It will install :code:`aiogram` in editable mode into your virtual "
"environment and all dependencies."
msgstr ""
#: ../../contributing.rst:85
#: ../../contributing.rst:92
msgid "Making changes in code"
msgstr ""
#: ../../contributing.rst:87
#: ../../contributing.rst:94
msgid ""
"At this point you can make any changes in the code that you want, it can "
"be any fixes, implementing new features or experimenting."
msgstr ""
#: ../../contributing.rst:92
#: ../../contributing.rst:99
msgid "Format the code (code-style)"
msgstr ""
#: ../../contributing.rst:94
#: ../../contributing.rst:101
msgid ""
"Note that this project is Black-formatted, so you should follow that "
"code-style, too be sure You're correctly doing this let's reformat the "
"code automatically:"
msgstr ""
#: ../../contributing.rst:104
#: ../../contributing.rst:111
msgid "Run tests"
msgstr ""
#: ../../contributing.rst:106
#: ../../contributing.rst:113
msgid "All changes should be tested:"
msgstr ""
#: ../../contributing.rst:112
#: ../../contributing.rst:119
msgid ""
"Also if you are doing something with Redis-storage, you will need to test"
" everything works with Redis:"
msgstr ""
#: ../../contributing.rst:119
#: ../../contributing.rst:126
msgid "Docs"
msgstr ""
#: ../../contributing.rst:121
#: ../../contributing.rst:128
msgid ""
"We are using `Sphinx` to render docs in different languages, all sources "
"located in `docs` directory, you can change the sources and to test it "
"you can start live-preview server and look what you are doing:"
msgstr ""
#: ../../contributing.rst:130
#: ../../contributing.rst:137
msgid "Docs translations"
msgstr ""
#: ../../contributing.rst:132
#: ../../contributing.rst:139
msgid ""
"Translation of the documentation is very necessary and cannot be done "
"without the help of the community from all over the world, so you are "
"welcome to translate the documentation into different languages."
msgstr ""
#: ../../contributing.rst:136
#: ../../contributing.rst:143
msgid "Before start, let's up to date all texts:"
msgstr ""
#: ../../contributing.rst:144
#: ../../contributing.rst:151
msgid ""
"Change the :code:`<language_code>` in example below to the target "
"language code, after that you can modify texts inside "
@ -192,120 +192,120 @@ msgid ""
"example via `poedit <https://poedit.net/>`_."
msgstr ""
#: ../../contributing.rst:149
#: ../../contributing.rst:156
msgid "To view results:"
msgstr ""
#: ../../contributing.rst:157
#: ../../contributing.rst:164
msgid "Describe changes"
msgstr ""
#: ../../contributing.rst:159
#: ../../contributing.rst:166
msgid ""
"Describe your changes in one or more sentences so that bot developers "
"know what's changed in their favorite framework - create "
"`<code>.<category>.rst` file and write the description."
msgstr ""
#: ../../contributing.rst:162
#: ../../contributing.rst:169
msgid ""
":code:`<code>` is Issue or Pull-request number, after release link to "
"this issue will be published to the *Changelog* page."
msgstr ""
#: ../../contributing.rst:165
#: ../../contributing.rst:172
msgid ":code:`<category>` is a changes category marker, it can be one of:"
msgstr ""
#: ../../contributing.rst:167
#: ../../contributing.rst:174
msgid ":code:`feature` - when you are implementing new feature"
msgstr ""
#: ../../contributing.rst:168
#: ../../contributing.rst:175
msgid ":code:`bugfix` - when you fix a bug"
msgstr ""
#: ../../contributing.rst:169
#: ../../contributing.rst:176
msgid ":code:`doc` - when you improve the docs"
msgstr ""
#: ../../contributing.rst:170
#: ../../contributing.rst:177
msgid ":code:`removal` - when you remove something from the framework"
msgstr ""
#: ../../contributing.rst:171
#: ../../contributing.rst:178
msgid ""
":code:`misc` - when changed something inside the Core or project "
"configuration"
msgstr ""
#: ../../contributing.rst:173
#: ../../contributing.rst:180
msgid ""
"If you have troubles with changing category feel free to ask Core-"
"contributors to help with choosing it."
msgstr ""
#: ../../contributing.rst:176
#: ../../contributing.rst:183
msgid "Complete"
msgstr ""
#: ../../contributing.rst:178
#: ../../contributing.rst:185
msgid ""
"After you have made all your changes, publish them to the repository and "
"create a pull request as mentioned at the beginning of the article and "
"wait for a review of these changes."
msgstr ""
#: ../../contributing.rst:183
#: ../../contributing.rst:190
msgid "Star on GitHub"
msgstr ""
#: ../../contributing.rst:185
#: ../../contributing.rst:192
msgid ""
"You can \"star\" repository on GitHub - "
"https://github.com/aiogram/aiogram (click the star button at the top "
"right)"
msgstr ""
#: ../../contributing.rst:187
#: ../../contributing.rst:194
msgid ""
"Adding stars makes it easier for other people to find this project and "
"understand how useful it is."
msgstr ""
#: ../../contributing.rst:190
#: ../../contributing.rst:197
msgid "Guides"
msgstr ""
#: ../../contributing.rst:192
#: ../../contributing.rst:199
msgid ""
"You can write guides how to develop Bots on top of aiogram and publish it"
" into YouTube, Medium, GitHub Books, any Courses platform or any other "
"platform that you know."
msgstr ""
#: ../../contributing.rst:195
#: ../../contributing.rst:202
msgid ""
"This will help more people learn about the framework and learn how to use"
" it"
msgstr ""
#: ../../contributing.rst:199
#: ../../contributing.rst:206
msgid "Take answers"
msgstr ""
#: ../../contributing.rst:201
#: ../../contributing.rst:208
msgid ""
"The developers is always asks for any question in our chats or any other "
"platforms like GitHub Discussions, StackOverflow and others, feel free to"
" answer to this questions."
msgstr ""
#: ../../contributing.rst:205
#: ../../contributing.rst:212
msgid "Funding"
msgstr ""
#: ../../contributing.rst:207
#: ../../contributing.rst:214
msgid ""
"The development of the project is free and not financed by commercial "
"organizations, it is my personal initiative (`@JRootJunior "
@ -313,7 +313,7 @@ msgid ""
"project in my free time."
msgstr ""
#: ../../contributing.rst:211
#: ../../contributing.rst:218
msgid ""
"So, if you want to financially support the project, or, for example, give"
" me a pizza or a beer, you can do it on `OpenCollective "
@ -328,3 +328,31 @@ msgstr ""
#~ "<https://opencollective.com/aiogram>`_ or `Patreon "
#~ "<https://www.patreon.com/aiogram>`_."
#~ msgstr ""
#~ msgid "Linux/ macOS:"
#~ msgstr ""
#~ msgid "Windows PoweShell"
#~ msgstr ""
#~ msgid ""
#~ "To check it worked, use described "
#~ "command, it should show the :code:`pip`"
#~ " location inside the isolated environment"
#~ msgstr ""
#~ msgid "Linux, macOS:"
#~ msgstr ""
#~ msgid ""
#~ "Also make you shure you have the"
#~ " latest pip version in your virtual"
#~ " environment to avoid errors on next"
#~ " steps:"
#~ msgstr ""
#~ msgid ""
#~ "After activating the environment install "
#~ "`aiogram` from sources and their "
#~ "dependencies:"
#~ msgstr ""

View file

@ -0,0 +1,96 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2023, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: ../../dispatcher/dependency_injection.rst:3
msgid "Dependency injection"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:5
msgid ""
"Dependency injection is a programming technique that makes a class "
"independent of its dependencies. It achieves that by decoupling the usage"
" of an object from its creation. This helps you to follow `SOLID's "
"<https://en.wikipedia.org/wiki/SOLID>`_ dependency inversion and single "
"responsibility principles."
msgstr ""
#: ../../dispatcher/dependency_injection.rst:12
msgid "How it works in aiogram"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:14
msgid ""
"For each update :class:`aiogram.dispatcher.dispatcher.Dispatcher` passes "
"handling context data. Filters and middleware can also make changes to "
"the context."
msgstr ""
#: ../../dispatcher/dependency_injection.rst:17
msgid ""
"To access contextual data you should specify corresponding keyword "
"parameter in handler or filter. For example, to get "
":class:`aiogram.fsm.context.FSMContext` we do it like that:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:30
msgid "Injecting own dependencies"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:32
msgid "Aiogram provides several ways to complement / modify contextual data."
msgstr ""
#: ../../dispatcher/dependency_injection.rst:34
msgid ""
"The first and easiest way is to simply specify the named arguments in "
":class:`aiogram.dispatcher.dispatcher.Dispatcher` initialization, polling"
" start methods or "
":class:`aiogram.webhook.aiohttp_server.SimpleRequestHandler` "
"initialization if you use webhooks."
msgstr ""
#: ../../dispatcher/dependency_injection.rst:46
msgid "Analogy for webhook:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:55
msgid ""
":class:`aiogram.dispatcher.dispatcher.Dispatcher`'s workflow data also "
"can be supplemented by setting values as in a dictionary:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:63
msgid ""
"The middlewares updates the context quite often. You can read more about "
"them on this page:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:66
msgid ":ref:`Middlewares <middlewares>`"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:68
msgid "The last way is to return a dictionary from the filter:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:72
msgid ""
"...or using :ref:`MagicFilter <magic-filters>` with :code:`.as_(...)` "
"method."
msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -34,11 +34,11 @@ msgid ""
msgstr ""
#: ../../dispatcher/dispatcher.rst:9
msgid "`Router <router.html>`__"
msgid ":ref:`Router <Router>`"
msgstr ""
#: ../../dispatcher/dispatcher.rst:10
msgid "`Observer <observer.html>`__"
msgid ":ref:`Filtering events`"
msgstr ""
#: aiogram.dispatcher.dispatcher.Dispatcher:1
@ -176,3 +176,9 @@ msgstr ""
#~ msgid "Poling timeout"
#~ msgstr ""
#~ msgid "`Router <router.html>`__"
#~ msgstr ""
#~ msgid "`Observer <observer.html>`__"
#~ msgstr ""

View file

@ -8,90 +8,108 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
"Generated-By: Babel 2.12.1\n"
#: ../../dispatcher/filters/chat_member_updated.rst:3
msgid "ChatMemberUpdated"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:10
#: ../../dispatcher/filters/chat_member_updated.rst:6
msgid "Usage"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:8
msgid "Handle user leave or join events"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:20
msgid ""
"Or construct your own terms via using pre-defined set of statuses and "
"transitions."
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:24
msgid "Explanation"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:31
msgid ""
"You can import from :code:`aiogram.filters` all available variants of "
"`statuses`_, `status groups`_ or `transitions`_:"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:14
#: ../../dispatcher/filters/chat_member_updated.rst:35
msgid "Statuses"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:17
#: ../../dispatcher/filters/chat_member_updated.rst:42
#: ../../dispatcher/filters/chat_member_updated.rst:62
#: ../../dispatcher/filters/chat_member_updated.rst:38
#: ../../dispatcher/filters/chat_member_updated.rst:63
#: ../../dispatcher/filters/chat_member_updated.rst:83
msgid "name"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:17
#: ../../dispatcher/filters/chat_member_updated.rst:42
#: ../../dispatcher/filters/chat_member_updated.rst:62
#: ../../dispatcher/filters/chat_member_updated.rst:38
#: ../../dispatcher/filters/chat_member_updated.rst:63
#: ../../dispatcher/filters/chat_member_updated.rst:83
msgid "Description"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:19
#: ../../dispatcher/filters/chat_member_updated.rst:40
msgid ":code:`CREATOR`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:19
#: ../../dispatcher/filters/chat_member_updated.rst:40
msgid "Chat owner"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:21
#: ../../dispatcher/filters/chat_member_updated.rst:42
msgid ":code:`ADMINISTRATOR`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:21
#: ../../dispatcher/filters/chat_member_updated.rst:42
msgid "Chat administrator"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:23
#: ../../dispatcher/filters/chat_member_updated.rst:44
msgid ":code:`MEMBER`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:23
#: ../../dispatcher/filters/chat_member_updated.rst:44
msgid "Member of the chat"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:25
#: ../../dispatcher/filters/chat_member_updated.rst:46
msgid ":code:`RESTRICTED`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:25
#: ../../dispatcher/filters/chat_member_updated.rst:46
msgid "Restricted user (can be not member)"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:27
#: ../../dispatcher/filters/chat_member_updated.rst:48
msgid ":code:`LEFT`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:27
#: ../../dispatcher/filters/chat_member_updated.rst:48
msgid "Isn't member of the chat"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:29
#: ../../dispatcher/filters/chat_member_updated.rst:50
msgid ":code:`KICKED`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:29
#: ../../dispatcher/filters/chat_member_updated.rst:50
msgid "Kicked member by administrators"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:32
#: ../../dispatcher/filters/chat_member_updated.rst:53
msgid ""
"Statuses can be extended with `is_member` flag by prefixing with "
":code:`+` (for :code:`is_member == True)` or :code:`-` (for "
@ -99,47 +117,47 @@ msgid ""
":code:`-RESTRICTED`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:37
#: ../../dispatcher/filters/chat_member_updated.rst:58
msgid "Status groups"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:39
#: ../../dispatcher/filters/chat_member_updated.rst:60
msgid ""
"The particular statuses can be combined via bitwise :code:`or` operator, "
"like :code:`CREATOR | ADMINISTRATOR`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:44
#: ../../dispatcher/filters/chat_member_updated.rst:65
msgid ":code:`IS_MEMBER`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:44
#: ../../dispatcher/filters/chat_member_updated.rst:65
msgid ""
"Combination of :code:`(CREATOR | ADMINISTRATOR | MEMBER | +RESTRICTED)` "
"statuses."
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:46
#: ../../dispatcher/filters/chat_member_updated.rst:67
msgid ":code:`IS_ADMIN`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:46
#: ../../dispatcher/filters/chat_member_updated.rst:67
msgid "Combination of :code:`(CREATOR | ADMINISTRATOR)` statuses."
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:48
#: ../../dispatcher/filters/chat_member_updated.rst:69
msgid ":code:`IS_NOT_MEMBER`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:48
#: ../../dispatcher/filters/chat_member_updated.rst:69
msgid "Combination of :code:`(LEFT | KICKED | -RESTRICTED)` statuses."
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:52
#: ../../dispatcher/filters/chat_member_updated.rst:73
msgid "Transitions"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:54
#: ../../dispatcher/filters/chat_member_updated.rst:75
msgid ""
"Transitions can be defined via bitwise shift operators :code:`>>` and "
":code:`<<`. Old chat member status should be defined in the left side for"
@ -148,77 +166,63 @@ msgid ""
":code:`<<`)"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:58
#: ../../dispatcher/filters/chat_member_updated.rst:79
msgid ""
"The direction of transition can be changed via bitwise inversion "
"operator: :code:`~JOIN_TRANSITION` will produce swap of old and new "
"statuses."
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:64
#: ../../dispatcher/filters/chat_member_updated.rst:85
msgid ":code:`JOIN_TRANSITION`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:64
#: ../../dispatcher/filters/chat_member_updated.rst:85
msgid ""
"Means status changed from :code:`IS_NOT_MEMBER` to :code:`IS_MEMBER` "
"(:code:`IS_NOT_MEMBER >> IS_MEMBER`)"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:67
#: ../../dispatcher/filters/chat_member_updated.rst:88
msgid ":code:`LEAVE_TRANSITION`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:67
#: ../../dispatcher/filters/chat_member_updated.rst:88
msgid ""
"Means status changed from :code:`IS_MEMBER` to :code:`IS_NOT_MEMBER` "
"(:code:`~JOIN_TRANSITION`)"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:70
#: ../../dispatcher/filters/chat_member_updated.rst:91
msgid ":code:`PROMOTED_TRANSITION`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:70
#: ../../dispatcher/filters/chat_member_updated.rst:91
msgid ""
"Means status changed from :code:`(MEMBER | RESTRICTED | LEFT | KICKED) >>"
" ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) >> "
"ADMINISTRATOR`)"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:77
#: ../../dispatcher/filters/chat_member_updated.rst:98
msgid ""
"Note that if you define the status unions (via :code:`|`) you will need "
"to add brackets for the statement before use shift operator in due to "
"operator priorities."
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:81
msgid "Usage"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:83
msgid "Handle user leave or join events"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:95
msgid ""
"Or construct your own terms via using pre-defined set of statuses and "
"transitions."
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:98
#: ../../dispatcher/filters/chat_member_updated.rst:103
msgid "Allowed handlers"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:100
#: ../../dispatcher/filters/chat_member_updated.rst:105
msgid "Allowed update types for this filter:"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:102
#: ../../dispatcher/filters/chat_member_updated.rst:107
msgid "`my_chat_member`"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:103
#: ../../dispatcher/filters/chat_member_updated.rst:108
msgid "`chat_member`"
msgstr ""

View file

@ -8,106 +8,110 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-25 22:10+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
"Generated-By: Babel 2.12.1\n"
#: ../../dispatcher/filters/magic_data.rst:3
msgid "MagicData"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:6
msgid "Usage"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:8
msgid ""
":code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that "
":code:`config` should be passed from middleware)"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:11
msgid "Explanation"
msgstr ""
#: aiogram.filters.magic_data.MagicData:1 of
msgid "This filter helps to filter event with contextual data"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:10
#: ../../dispatcher/filters/magic_data.rst:18
msgid "Can be imported:"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:12
#: ../../dispatcher/filters/magic_data.rst:20
msgid ":code:`from aiogram.filters import MagicData`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:15
msgid "Usage"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:17
msgid ""
":code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that "
":code:`config` should be passed from middleware)"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:21
#: ../../dispatcher/filters/magic_data.rst:24
msgid "Allowed handlers"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:23
#: ../../dispatcher/filters/magic_data.rst:26
msgid "Allowed update types for this filter:"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:25
#: ../../dispatcher/filters/magic_data.rst:28
msgid ":code:`message`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:26
#: ../../dispatcher/filters/magic_data.rst:29
msgid ":code:`edited_message`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:27
#: ../../dispatcher/filters/magic_data.rst:30
msgid ":code:`channel_post`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:28
#: ../../dispatcher/filters/magic_data.rst:31
msgid ":code:`edited_channel_post`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:29
#: ../../dispatcher/filters/magic_data.rst:32
msgid ":code:`inline_query`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:30
#: ../../dispatcher/filters/magic_data.rst:33
msgid ":code:`chosen_inline_result`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:31
#: ../../dispatcher/filters/magic_data.rst:34
msgid ":code:`callback_query`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:32
#: ../../dispatcher/filters/magic_data.rst:35
msgid ":code:`shipping_query`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:33
#: ../../dispatcher/filters/magic_data.rst:36
msgid ":code:`pre_checkout_query`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:34
#: ../../dispatcher/filters/magic_data.rst:37
msgid ":code:`poll`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:35
#: ../../dispatcher/filters/magic_data.rst:38
msgid ":code:`poll_answer`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:36
#: ../../dispatcher/filters/magic_data.rst:39
msgid ":code:`my_chat_member`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:37
#: ../../dispatcher/filters/magic_data.rst:40
msgid ":code:`chat_member`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:38
#: ../../dispatcher/filters/magic_data.rst:41
msgid ":code:`chat_join_request`"
msgstr ""
#: ../../dispatcher/filters/magic_data.rst:39
#: ../../dispatcher/filters/magic_data.rst:42
msgid ":code:`error`"
msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -17,10 +17,14 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: ../../dispatcher/router.rst:3
#: ../../dispatcher/router.rst:5
msgid "Router"
msgstr ""
#: ../../dispatcher/router.rst:7
msgid "Usage:"
msgstr ""
#: aiogram.dispatcher.router.Router:1 of
msgid "Bases: :py:class:`object`"
msgstr ""
@ -86,11 +90,11 @@ msgstr ""
msgid "set of registered names"
msgstr ""
#: ../../dispatcher/router.rst:13
#: ../../dispatcher/router.rst:29
msgid "Event observers"
msgstr ""
#: ../../dispatcher/router.rst:17
#: ../../dispatcher/router.rst:33
msgid ""
"All handlers always should be asynchronous. The name of the handler "
"function is not important. The event argument name is also not important "
@ -98,145 +102,145 @@ msgid ""
" to function can not accept two arguments with the same name."
msgstr ""
#: ../../dispatcher/router.rst:20
#: ../../dispatcher/router.rst:36
msgid ""
"Here is the list of available observers and examples of how to register "
"handlers"
msgstr ""
#: ../../dispatcher/router.rst:22
#: ../../dispatcher/router.rst:38
msgid ""
"In these examples only decorator-style registering handlers are used, but"
" if you don't like @decorators just use :obj:`<event type>.register(...)`"
" method instead."
msgstr ""
#: ../../dispatcher/router.rst:25
#: ../../dispatcher/router.rst:41
msgid "Message"
msgstr ""
#: ../../dispatcher/router.rst:30
#: ../../dispatcher/router.rst:46
msgid "Be attentive with filtering this event"
msgstr ""
#: ../../dispatcher/router.rst:32
#: ../../dispatcher/router.rst:48
msgid ""
"You should expect that this event can be with different sets of "
"attributes in different cases"
msgstr ""
#: ../../dispatcher/router.rst:34
#: ../../dispatcher/router.rst:50
msgid ""
"(For example text, sticker and document are always of different content "
"types of message)"
msgstr ""
#: ../../dispatcher/router.rst:36
#: ../../dispatcher/router.rst:52
msgid ""
"Recommended way to check field availability before usage, for example via"
" :ref:`magic filter <magic-filters>`: :code:`F.text` to handle text, "
":code:`F.sticker` to handle stickers only and etc."
msgstr ""
#: ../../dispatcher/router.rst:47
#: ../../dispatcher/router.rst:63
msgid "Edited message"
msgstr ""
#: ../../dispatcher/router.rst:55
#: ../../dispatcher/router.rst:71
msgid "Channel post"
msgstr ""
#: ../../dispatcher/router.rst:63
#: ../../dispatcher/router.rst:79
msgid "Edited channel post"
msgstr ""
#: ../../dispatcher/router.rst:72
#: ../../dispatcher/router.rst:88
msgid "Inline query"
msgstr ""
#: ../../dispatcher/router.rst:80
#: ../../dispatcher/router.rst:96
msgid "Chosen inline query"
msgstr ""
#: ../../dispatcher/router.rst:88
#: ../../dispatcher/router.rst:104
msgid "Callback query"
msgstr ""
#: ../../dispatcher/router.rst:96
#: ../../dispatcher/router.rst:112
msgid "Shipping query"
msgstr ""
#: ../../dispatcher/router.rst:104
#: ../../dispatcher/router.rst:120
msgid "Pre checkout query"
msgstr ""
#: ../../dispatcher/router.rst:112
#: ../../dispatcher/router.rst:128
msgid "Poll"
msgstr ""
#: ../../dispatcher/router.rst:120
#: ../../dispatcher/router.rst:136
msgid "Poll answer"
msgstr ""
#: ../../dispatcher/router.rst:128
#: ../../dispatcher/router.rst:144
msgid "Errors"
msgstr ""
#: ../../dispatcher/router.rst:135
#: ../../dispatcher/router.rst:151
msgid ""
"Is useful for handling errors from other handlers, error event described "
":ref:`here <error-event>`"
msgstr ""
#: ../../dispatcher/router.rst:142
#: ../../dispatcher/router.rst:158
msgid "Nested routers"
msgstr ""
#: ../../dispatcher/router.rst:147
#: ../../dispatcher/router.rst:163
msgid ""
"Routers by the way can be nested to an another routers with some "
"limitations:"
msgstr ""
#: ../../dispatcher/router.rst:147
#: ../../dispatcher/router.rst:163
msgid ""
"1. Router **CAN NOT** include itself 1. Routers **CAN NOT** be used for "
"circular including (router 1 include router 2, router 2 include router 3,"
" router 3 include router 1)"
msgstr ""
#: ../../dispatcher/router.rst:151
#: ../../dispatcher/router.rst:167
msgid "Example:"
msgstr ""
#: ../../dispatcher/router.rst:153
#: ../../dispatcher/router.rst:169
msgid "module_1.py"
msgstr ""
#: ../../dispatcher/router.rst:163
#: ../../dispatcher/router.rst:179
msgid "module_2.py"
msgstr ""
#: ../../dispatcher/router.rst:175
#: ../../dispatcher/router.rst:191
msgid "Update"
msgstr ""
#: ../../dispatcher/router.rst:184
#: ../../dispatcher/router.rst:200
msgid "The only root Router (Dispatcher) can handle this type of event."
msgstr ""
#: ../../dispatcher/router.rst:188
#: ../../dispatcher/router.rst:204
msgid ""
"Dispatcher already has default handler for this event type, so you can "
"use it for handling all updates that are not handled by any other "
"handlers."
msgstr ""
#: ../../dispatcher/router.rst:191
#: ../../dispatcher/router.rst:207
msgid "How it works?"
msgstr ""
#: ../../dispatcher/router.rst:193
#: ../../dispatcher/router.rst:209
msgid ""
"For example, dispatcher has 2 routers, the last router also has one "
"nested router:"
@ -246,7 +250,7 @@ msgstr ""
msgid "Nested routers example"
msgstr ""
#: ../../dispatcher/router.rst:198
#: ../../dispatcher/router.rst:214
msgid "In this case update propagation flow will have form:"
msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,15 +18,7 @@ msgstr ""
"Generated-By: Babel 2.12.1\n"
#: ../../../README.rst:3
msgid "aiogram |beta badge|"
msgstr ""
#: ../../../README.rst:94
msgid "Beta badge"
msgstr ""
#: ../../../README.rst:6
msgid "This version is still in development!"
msgid "aiogram"
msgstr ""
#: ../../../README.rst:-1
@ -61,7 +53,7 @@ msgstr ""
msgid "Codecov"
msgstr ""
#: ../../../README.rst:40
#: ../../../README.rst:37
msgid ""
"**aiogram** is a modern and fully asynchronous framework for `Telegram "
"Bot API <https://core.telegram.org/bots/api>`_ written in Python 3.8 "
@ -69,136 +61,124 @@ msgid ""
"`aiohttp <https://github.com/aio-libs/aiohttp>`_."
msgstr ""
#: ../../../README.rst:45
#: ../../../README.rst:42
msgid "Make your bots faster and more powerful!"
msgstr ""
#: ../../../README.rst:50
#: ../../../README.rst:47
msgid "Documentation:"
msgstr ""
#: ../../../README.rst:48
#: ../../../README.rst:45
msgid "🇺🇸 `English <https://docs.aiogram.dev/en/dev-3.x/>`_"
msgstr ""
#: ../../../README.rst:49
#: ../../../README.rst:46
msgid "🇺🇦 `Ukrainian <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_"
msgstr ""
#: ../../../README.rst:54
msgid "**Breaking News:**"
msgstr ""
#: ../../../README.rst:56
msgid "*aiogram* 3.0 has breaking changes."
msgstr ""
#: ../../../README.rst:58
msgid "It breaks backward compatibility by introducing new breaking changes!"
msgstr ""
#: ../../../README.rst:61
#: ../../../README.rst:50
msgid "Features"
msgstr ""
#: ../../../README.rst:63
#: ../../../README.rst:52
msgid ""
"Asynchronous (`asyncio docs "
"<https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)"
msgstr ""
#: ../../../README.rst:64
#: ../../../README.rst:53
msgid ""
"Has type hints (:pep:`484`) and can be used with `mypy <http://mypy-"
"lang.org/>`_"
msgstr ""
#: ../../../README.rst:65
#: ../../../README.rst:54
msgid "Supports `PyPy <https://www.pypy.org/>`_"
msgstr ""
#: ../../../README.rst:66
#: ../../../README.rst:55
msgid ""
"Supports `Telegram Bot API 6.7 <https://core.telegram.org/bots/api>`_ and"
"Supports `Telegram Bot API 6.8 <https://core.telegram.org/bots/api>`_ and"
" gets fast updates to the latest versions of the Bot API"
msgstr ""
#: ../../../README.rst:67
#: ../../../README.rst:56
msgid ""
"Telegram Bot API integration code was `autogenerated "
"<https://github.com/aiogram/tg-codegen>`_ and can be easily re-generated "
"when API gets updated"
msgstr ""
#: ../../../README.rst:68
#: ../../../README.rst:57
msgid "Updates router (Blueprints)"
msgstr ""
#: ../../../README.rst:69
#: ../../../README.rst:58
msgid "Has Finite State Machine"
msgstr ""
#: ../../../README.rst:70
#: ../../../README.rst:59
msgid ""
"Uses powerful `magic filters "
"<https://docs.aiogram.dev/en/dev-3.x/dispatcher/filters/magic_filters.html"
"#magic-filters>`"
"<https://docs.aiogram.dev/en/latest/dispatcher/filters/magic_filters.html"
"#magic-filters>`_"
msgstr ""
#: ../../../README.rst:71
#: ../../../README.rst:60
msgid "Middlewares (incoming updates and API calls)"
msgstr ""
#: ../../../README.rst:72
#: ../../../README.rst:61
msgid ""
"Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-"
"can-i-make-requests-in-response-to-updates>`_"
msgstr ""
#: ../../../README.rst:73
#: ../../../README.rst:62
msgid "Integrated I18n/L10n support with GNU Gettext (or Fluent)"
msgstr ""
#: ../../../README.rst:78
#: ../../../README.rst:67
msgid ""
"It is strongly advised that you have prior experience working with "
"`asyncio <https://docs.python.org/3/library/asyncio.html>`_ before "
"beginning to use **aiogram**."
msgstr ""
#: ../../../README.rst:82
#: ../../../README.rst:71
msgid "If you have any questions, you can visit our community chats on Telegram:"
msgstr ""
#: ../../../README.rst:84
#: ../../../README.rst:73
msgid "🇺🇸 `@aiogram <https://t.me/aiogram>`_"
msgstr ""
#: ../../../README.rst:85
#: ../../../README.rst:74
msgid "🇺🇦 `@aiogramua <https://t.me/aiogramua>`_"
msgstr ""
#: ../../../README.rst:86
#: ../../../README.rst:75
msgid "🇺🇿 `@aiogram_uz <https://t.me/aiogram_uz>`_"
msgstr ""
#: ../../../README.rst:87
#: ../../../README.rst:76
msgid "🇰🇿 `@aiogram_kz <https://t.me/aiogram_kz>`_"
msgstr ""
#: ../../../README.rst:88
#: ../../../README.rst:77
msgid "🇷🇺 `@aiogram_ru <https://t.me/aiogram_ru>`_"
msgstr ""
#: ../../../README.rst:89
#: ../../../README.rst:78
msgid "🇮🇷 `@aiogram_fa <https://t.me/aiogram_fa>`_"
msgstr ""
#: ../../../README.rst:90
#: ../../../README.rst:79
msgid "🇮🇹 `@aiogram_it <https://t.me/aiogram_it>`_"
msgstr ""
#: ../../../README.rst:91
#: ../../../README.rst:80
msgid "🇧🇷 `@aiogram_br <https://t.me/aiogram_br>`_"
msgstr ""
@ -236,3 +216,34 @@ msgstr ""
#~ " updates to the latest versions of"
#~ " the Bot API"
#~ msgstr ""
#~ msgid "aiogram |beta badge|"
#~ msgstr ""
#~ msgid "Beta badge"
#~ msgstr ""
#~ msgid "This version is still in development!"
#~ msgstr ""
#~ msgid "**Breaking News:**"
#~ msgstr ""
#~ msgid "*aiogram* 3.0 has breaking changes."
#~ msgstr ""
#~ msgid "It breaks backward compatibility by introducing new breaking changes!"
#~ msgstr ""
#~ msgid ""
#~ "Supports `Telegram Bot API 6.7 "
#~ "<https://core.telegram.org/bots/api>`_ and gets fast"
#~ " updates to the latest versions of"
#~ " the Bot API"
#~ msgstr ""
#~ msgid ""
#~ "Uses powerful `magic filters "
#~ "<https://docs.aiogram.dev/en/dev-3.x/dispatcher/filters/magic_filters.html"
#~ "#magic-filters>`"
#~ msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -99,17 +99,24 @@ msgid ""
"accessed via :code:`data[\"bot\"]`."
msgstr ""
#: ../../migration_2_to_3.rst:46
#: ../../migration_2_to_3.rst:43
msgid ""
"Now to skip pending updates, you should call the "
":class:`aiogram.methods.delete_webhook.DeleteWebhook` method directly "
"instead of passing :code:`skip_updates=True` to start polling method."
msgstr ""
#: ../../migration_2_to_3.rst:47
msgid "Filtering events"
msgstr ""
#: ../../migration_2_to_3.rst:48
#: ../../migration_2_to_3.rst:49
msgid ""
"Keyword filters can no more be used, use filters explicitly. (`Read more "
"» <https://github.com/aiogram/aiogram/issues/942>`_)"
msgstr ""
#: ../../migration_2_to_3.rst:49
#: ../../migration_2_to_3.rst:50
msgid ""
"In due to keyword filters was removed all enabled by default filters "
"(state and content_type now is not enabled), so you should specify them "
@ -118,19 +125,19 @@ msgid ""
"use :code:`@router.message(F.photo)`"
msgstr ""
#: ../../migration_2_to_3.rst:53
#: ../../migration_2_to_3.rst:54
msgid ""
"Most of common filters is replaced by \"magic filter\". (:ref:`Read more "
"» <magic-filters>`)"
msgstr ""
#: ../../migration_2_to_3.rst:54
#: ../../migration_2_to_3.rst:55
msgid ""
"Now by default message handler receives any content type, if you want "
"specific one just add the filters (Magic or any other)"
msgstr ""
#: ../../migration_2_to_3.rst:56
#: ../../migration_2_to_3.rst:57
msgid ""
"State filter now is not enabled by default, that's mean if you using "
":code:`state=\"*\"` in v2 then you should not pass any state filter in "
@ -138,38 +145,38 @@ msgid ""
"specify the state."
msgstr ""
#: ../../migration_2_to_3.rst:59
#: ../../migration_2_to_3.rst:60
msgid ""
"Added possibility to register per-router global filters, that helps to "
"reduces the number of repetitions in the code and makes easily way to "
"control for what each router will be used."
msgstr ""
#: ../../migration_2_to_3.rst:65
#: ../../migration_2_to_3.rst:66
msgid "Bot API"
msgstr ""
#: ../../migration_2_to_3.rst:67
#: ../../migration_2_to_3.rst:68
msgid ""
"Now all API methods is classes with validation (via `pydantic "
"<https://docs.pydantic.dev/>`_) (all API calls is also available as "
"methods in the Bot class)."
msgstr ""
#: ../../migration_2_to_3.rst:69
#: ../../migration_2_to_3.rst:70
msgid ""
"Added more pre-defined Enums and moved into `aiogram.enums` sub-package. "
"For example chat type enum now is :class:`aiogram.enums.ChatType` instead"
" of :class:`aiogram.types.chat.ChatType`. (:ref:`Read more » <enums>`)"
msgstr ""
#: ../../migration_2_to_3.rst:72
#: ../../migration_2_to_3.rst:73
msgid ""
"Separated HTTP client session into container that can be reused between "
"different Bot instances in the application."
msgstr ""
#: ../../migration_2_to_3.rst:74
#: ../../migration_2_to_3.rst:75
msgid ""
"API Exceptions is no more classified by specific message in due to "
"Telegram has no documented error codes. But all errors is classified by "
@ -179,17 +186,17 @@ msgid ""
"types>`)"
msgstr ""
#: ../../migration_2_to_3.rst:81
#: ../../migration_2_to_3.rst:82
msgid "Middlewares"
msgstr ""
#: ../../migration_2_to_3.rst:83
#: ../../migration_2_to_3.rst:84
msgid ""
"Middlewares can now control a execution context, e.g. using context "
"managers (:ref:`Read more » <middlewares>`)"
msgstr ""
#: ../../migration_2_to_3.rst:84
#: ../../migration_2_to_3.rst:85
msgid ""
"All contextual data now is shared between middlewares, filters and "
"handlers to end-to-end use. For example now you can easily pass some data"
@ -197,75 +204,102 @@ msgid ""
"same way as in the handlers via keyword arguments."
msgstr ""
#: ../../migration_2_to_3.rst:87
#: ../../migration_2_to_3.rst:88
msgid ""
"Added mechanism named **flags**, that helps to customize handler behavior"
" in conjunction with middlewares. (:ref:`Read more » <flags>`)"
msgstr ""
#: ../../migration_2_to_3.rst:92
#: ../../migration_2_to_3.rst:93
msgid "Keyboard Markup"
msgstr ""
#: ../../migration_2_to_3.rst:94
#: ../../migration_2_to_3.rst:95
msgid ""
"Now :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup` "
"and :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` has "
"no methods to extend it, instead you have to use markup builders "
":class:`aiogram.utils.keyboard.ReplyKeyboardBuilder` and "
":class:`aiogram.utils.keyboard.KeyboardBuilder` respectively (:ref:`Read "
"more » <keyboard-builder>`)"
"more » <Keyboard builder>`)"
msgstr ""
#: ../../migration_2_to_3.rst:102
#: ../../migration_2_to_3.rst:103
msgid "Callbacks data"
msgstr ""
#: ../../migration_2_to_3.rst:104
#: ../../migration_2_to_3.rst:105
msgid ""
"Callback data factory now is strictly typed via `pydantic "
"<https://docs.pydantic.dev/>`_ models (:ref:`Read more » <callback-data-"
"<https://docs.pydantic.dev/>`_ models (:ref:`Read more » <Callback data "
"factory>`)"
msgstr ""
#: ../../migration_2_to_3.rst:109
#: ../../migration_2_to_3.rst:110
msgid "Finite State machine"
msgstr ""
#: ../../migration_2_to_3.rst:111
#: ../../migration_2_to_3.rst:112
msgid ""
"State filter will no more added to all handlers, you will need to specify"
" state if you want"
msgstr ""
#: ../../migration_2_to_3.rst:112
#: ../../migration_2_to_3.rst:113
msgid ""
"Added possibility to change FSM strategy, for example if you want to "
"control state for each user in chat topics instead of user in chat you "
"can specify it in the Dispatcher."
msgstr ""
#: ../../migration_2_to_3.rst:117
#: ../../migration_2_to_3.rst:115
msgid ""
"Now :class:`aiogram.fsm.state.State` and "
":class:`aiogram.fsm.state.StateGroup` don't have helper methods like "
":code:`.set()`, :code:`.next()`, etc."
msgstr ""
#: ../../migration_2_to_3.rst:118
msgid ""
"Instead of this you should set states by passing them directly to "
":class:`aiogram.fsm.context.FSMContext` (:ref:`Read more » <Finite State "
"Machine>`)"
msgstr ""
#: ../../migration_2_to_3.rst:120
msgid ""
"State proxy is deprecated, you should update the state data by calling "
":code:`state.set_data(...)` and :code:`state.get_data()` respectively."
msgstr ""
#: ../../migration_2_to_3.rst:125
msgid "Sending Files"
msgstr ""
#: ../../migration_2_to_3.rst:119
#: ../../migration_2_to_3.rst:127
msgid ""
"From now you should wrap sending files into InputFile object before send "
"instead of passing IO object directly to the API method. (:ref:`Read more"
" » <sending-files>`)"
msgstr ""
#: ../../migration_2_to_3.rst:124
#: ../../migration_2_to_3.rst:132
msgid "Webhook"
msgstr ""
#: ../../migration_2_to_3.rst:126
#: ../../migration_2_to_3.rst:134
msgid "Simplified aiohttp web app configuration"
msgstr ""
#: ../../migration_2_to_3.rst:127
#: ../../migration_2_to_3.rst:135
msgid ""
"By default added possibility to upload files when you use reply into "
"webhook"
msgstr ""
#~ msgid ""
#~ "Callback data factory now is strictly"
#~ " typed via `pydantic "
#~ "<https://docs.pydantic.dev/>`_ models (:ref:`Read "
#~ "more » <callback-data-factory>`)"
#~ msgstr ""

View file

@ -0,0 +1,94 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2023, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:3
msgid "unpinAllGeneralForumTopicMessages"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:5
msgid "Returns: :obj:`bool`"
msgstr ""
#: aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages:1
#: of
msgid ""
"Use this method to clear the list of pinned messages in a General forum "
"topic. The bot must be an administrator in the chat for this to work and "
"must have the *can_pin_messages* administrator right in the supergroup. "
"Returns :code:`True` on success."
msgstr ""
#: aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages:3
#: of
msgid ""
"Source: "
"https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages"
msgstr ""
#: ../../docstring
#: aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages.chat_id:1
#: of
msgid ""
"Unique identifier for the target chat or username of the target "
"supergroup (in the format :code:`@supergroupusername`)"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:15
msgid "Usage"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:18
msgid "As bot method"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:26
msgid "Method as object"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:28
msgid "Imports:"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:30
msgid ""
":code:`from aiogram.methods.unpin_all_general_forum_topic_messages import"
" UnpinAllGeneralForumTopicMessages`"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:31
msgid ""
"alias: :code:`from aiogram.methods import "
"UnpinAllGeneralForumTopicMessages`"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:34
msgid "With specific bot"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:41
msgid "As reply into Webhook in handler"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:49
msgid "As shortcut from received object"
msgstr ""
#: ../../api/methods/unpin_all_general_forum_topic_messages.rst:51
msgid ":meth:`aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages`"
msgstr ""

View file

@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-02-12 00:22+0200\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.9.1\n"
"Generated-By: Babel 2.12.1\n"
#: ../../api/types/chat.rst:3
msgid "Chat"
@ -88,6 +88,13 @@ msgid ""
":class:`aiogram.methods.get_chat.GetChat`."
msgstr ""
#: ../../docstring aiogram.types.chat.Chat.emoji_status_expiration_date:1 of
msgid ""
"*Optional*. Expiration date of the emoji status of the other party in a "
"private chat, if any. Returned only in "
":class:`aiogram.methods.get_chat.GetChat`."
msgstr ""
#: ../../docstring aiogram.types.chat.Chat.bio:1 of
msgid ""
"*Optional*. Bio of the other party in a private chat. Returned only in "
@ -264,6 +271,7 @@ msgstr ""
#: aiogram.types.chat.Chat.set_sticker_set:4
#: aiogram.types.chat.Chat.set_title:4 aiogram.types.chat.Chat.unban:4
#: aiogram.types.chat.Chat.unban_sender_chat:4
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:4
#: aiogram.types.chat.Chat.unpin_all_messages:4
#: aiogram.types.chat.Chat.unpin_message:4 of
msgid ":code:`chat_id`"
@ -320,6 +328,7 @@ msgstr ""
#: aiogram.types.chat.Chat.set_permissions aiogram.types.chat.Chat.set_photo
#: aiogram.types.chat.Chat.set_sticker_set aiogram.types.chat.Chat.set_title
#: aiogram.types.chat.Chat.unban aiogram.types.chat.Chat.unban_sender_chat
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages
#: aiogram.types.chat.Chat.unpin_all_messages
#: aiogram.types.chat.Chat.unpin_message of
msgid "Returns"
@ -1269,6 +1278,33 @@ msgstr ""
msgid "instance of method :class:`aiogram.methods.set_chat_photo.SetChatPhoto`"
msgstr ""
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:1 of
msgid ""
"Shortcut for method "
":class:`aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages`"
" will automatically fill method attributes:"
msgstr ""
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:6 of
msgid ""
"Use this method to clear the list of pinned messages in a General forum "
"topic. The bot must be an administrator in the chat for this to work and "
"must have the *can_pin_messages* administrator right in the supergroup. "
"Returns :code:`True` on success."
msgstr ""
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:8 of
msgid ""
"Source: "
"https://core.telegram.org/bots/api#unpinallgeneralforumtopicmessages"
msgstr ""
#: aiogram.types.chat.Chat.unpin_all_general_forum_topic_messages:10 of
msgid ""
"instance of method "
":class:`aiogram.methods.unpin_all_general_forum_topic_messages.UnpinAllGeneralForumTopicMessages`"
msgstr ""
#~ msgid ""
#~ "Use this method to get information "
#~ "about a member of a chat. The "
@ -1288,4 +1324,3 @@ msgstr ""
#~ "by administrators that were appointed by"
#~ " him)"
#~ msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-06 16:52+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -173,6 +173,10 @@ msgstr ""
msgid "*Optional*. Message is a sticker, information about the sticker"
msgstr ""
#: ../../docstring aiogram.types.message.Message.story:1 of
msgid "*Optional*. Message is a forwarded story"
msgstr ""
#: ../../docstring aiogram.types.message.Message.video:1 of
msgid "*Optional*. Message is a video, information about the video"
msgstr ""

View file

@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
"Generated-By: Babel 2.12.1\n"
#: ../../api/types/poll_answer.rst:3
msgid "PollAnswer"
@ -33,12 +33,29 @@ msgstr ""
msgid "Unique poll identifier"
msgstr ""
#: ../../docstring aiogram.types.poll_answer.PollAnswer.user:1 of
msgid "The user, who changed the answer to the poll"
msgstr ""
#: ../../docstring aiogram.types.poll_answer.PollAnswer.option_ids:1 of
msgid ""
"0-based identifiers of answer options, chosen by the user. May be empty "
"if the user retracted their vote."
"0-based identifiers of chosen answer options. May be empty if the vote "
"was retracted."
msgstr ""
#: ../../docstring aiogram.types.poll_answer.PollAnswer.voter_chat:1 of
msgid ""
"*Optional*. The chat that changed the answer to the poll, if the voter is"
" anonymous"
msgstr ""
#: ../../docstring aiogram.types.poll_answer.PollAnswer.user:1 of
msgid ""
"*Optional*. The user that changed the answer to the poll, if the voter "
"isn't anonymous"
msgstr ""
#~ msgid "The user, who changed the answer to the poll"
#~ msgstr ""
#~ msgid ""
#~ "0-based identifiers of answer options, "
#~ "chosen by the user. May be empty"
#~ " if the user retracted their vote."
#~ msgstr ""

View file

@ -0,0 +1,32 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2023, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: ../../api/types/story.rst:3
msgid "Story"
msgstr ""
#: aiogram.types.story.Story:1 of
msgid ""
"This object represents a message about a forwarded story in the chat. "
"Currently holds no information."
msgstr ""
#: aiogram.types.story.Story:3 of
msgid "Source: https://core.telegram.org/bots/api#story"
msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -78,112 +78,112 @@ msgstr ""
msgid "Activate the environment"
msgstr ""
#: ../../contributing.rst:38
msgid "Linux/ macOS:"
#: ../../contributing.rst:38 ../../contributing.rst:77
msgid "Linux / macOS:"
msgstr ""
#: ../../contributing.rst:44
msgid "Windows PoweShell"
msgid "Windows cmd"
msgstr ""
#: ../../contributing.rst:50
msgid ""
"To check it worked, use described command, it should show the :code:`pip`"
" location inside the isolated environment"
msgstr ""
#: ../../contributing.rst:53
msgid "Linux, macOS:"
msgstr ""
#: ../../contributing.rst:59
msgid "Windows PowerShell"
msgstr ""
#: ../../contributing.rst:65
#: ../../contributing.rst:56
msgid ""
"Also make you shure you have the latest pip version in your virtual "
"To check it worked, use described command, it should show the :code:`pip`"
" version and location inside the isolated environment"
msgstr ""
#: ../../contributing.rst:64
msgid ""
"Also make sure you have the latest pip version in your virtual "
"environment to avoid errors on next steps:"
msgstr ""
#: ../../contributing.rst:74
#: ../../contributing.rst:73
msgid "Setup project"
msgstr ""
#: ../../contributing.rst:76
#: ../../contributing.rst:75
msgid ""
"After activating the environment install `aiogram` from sources and their"
" dependencies:"
" dependencies."
msgstr ""
#: ../../contributing.rst:82
#: ../../contributing.rst:83
msgid "Windows:"
msgstr ""
#: ../../contributing.rst:89
msgid ""
"It will install :code:`aiogram` in editable mode into your virtual "
"environment and all dependencies."
msgstr ""
#: ../../contributing.rst:85
#: ../../contributing.rst:92
msgid "Making changes in code"
msgstr ""
#: ../../contributing.rst:87
#: ../../contributing.rst:94
msgid ""
"At this point you can make any changes in the code that you want, it can "
"be any fixes, implementing new features or experimenting."
msgstr ""
#: ../../contributing.rst:92
#: ../../contributing.rst:99
msgid "Format the code (code-style)"
msgstr ""
#: ../../contributing.rst:94
#: ../../contributing.rst:101
msgid ""
"Note that this project is Black-formatted, so you should follow that "
"code-style, too be sure You're correctly doing this let's reformat the "
"code automatically:"
msgstr ""
#: ../../contributing.rst:104
#: ../../contributing.rst:111
msgid "Run tests"
msgstr ""
#: ../../contributing.rst:106
#: ../../contributing.rst:113
msgid "All changes should be tested:"
msgstr ""
#: ../../contributing.rst:112
#: ../../contributing.rst:119
msgid ""
"Also if you are doing something with Redis-storage, you will need to test"
" everything works with Redis:"
msgstr ""
#: ../../contributing.rst:119
#: ../../contributing.rst:126
msgid "Docs"
msgstr ""
#: ../../contributing.rst:121
#: ../../contributing.rst:128
msgid ""
"We are using `Sphinx` to render docs in different languages, all sources "
"located in `docs` directory, you can change the sources and to test it "
"you can start live-preview server and look what you are doing:"
msgstr ""
#: ../../contributing.rst:130
#: ../../contributing.rst:137
msgid "Docs translations"
msgstr ""
#: ../../contributing.rst:132
#: ../../contributing.rst:139
msgid ""
"Translation of the documentation is very necessary and cannot be done "
"without the help of the community from all over the world, so you are "
"welcome to translate the documentation into different languages."
msgstr ""
#: ../../contributing.rst:136
#: ../../contributing.rst:143
msgid "Before start, let's up to date all texts:"
msgstr ""
#: ../../contributing.rst:144
#: ../../contributing.rst:151
msgid ""
"Change the :code:`<language_code>` in example below to the target "
"language code, after that you can modify texts inside "
@ -192,120 +192,120 @@ msgid ""
"example via `poedit <https://poedit.net/>`_."
msgstr ""
#: ../../contributing.rst:149
#: ../../contributing.rst:156
msgid "To view results:"
msgstr ""
#: ../../contributing.rst:157
#: ../../contributing.rst:164
msgid "Describe changes"
msgstr ""
#: ../../contributing.rst:159
#: ../../contributing.rst:166
msgid ""
"Describe your changes in one or more sentences so that bot developers "
"know what's changed in their favorite framework - create "
"`<code>.<category>.rst` file and write the description."
msgstr ""
#: ../../contributing.rst:162
#: ../../contributing.rst:169
msgid ""
":code:`<code>` is Issue or Pull-request number, after release link to "
"this issue will be published to the *Changelog* page."
msgstr ""
#: ../../contributing.rst:165
#: ../../contributing.rst:172
msgid ":code:`<category>` is a changes category marker, it can be one of:"
msgstr ""
#: ../../contributing.rst:167
#: ../../contributing.rst:174
msgid ":code:`feature` - when you are implementing new feature"
msgstr ""
#: ../../contributing.rst:168
#: ../../contributing.rst:175
msgid ":code:`bugfix` - when you fix a bug"
msgstr ""
#: ../../contributing.rst:169
#: ../../contributing.rst:176
msgid ":code:`doc` - when you improve the docs"
msgstr ""
#: ../../contributing.rst:170
#: ../../contributing.rst:177
msgid ":code:`removal` - when you remove something from the framework"
msgstr ""
#: ../../contributing.rst:171
#: ../../contributing.rst:178
msgid ""
":code:`misc` - when changed something inside the Core or project "
"configuration"
msgstr ""
#: ../../contributing.rst:173
#: ../../contributing.rst:180
msgid ""
"If you have troubles with changing category feel free to ask Core-"
"contributors to help with choosing it."
msgstr ""
#: ../../contributing.rst:176
#: ../../contributing.rst:183
msgid "Complete"
msgstr ""
#: ../../contributing.rst:178
#: ../../contributing.rst:185
msgid ""
"After you have made all your changes, publish them to the repository and "
"create a pull request as mentioned at the beginning of the article and "
"wait for a review of these changes."
msgstr ""
#: ../../contributing.rst:183
#: ../../contributing.rst:190
msgid "Star on GitHub"
msgstr ""
#: ../../contributing.rst:185
#: ../../contributing.rst:192
msgid ""
"You can \"star\" repository on GitHub - "
"https://github.com/aiogram/aiogram (click the star button at the top "
"right)"
msgstr ""
#: ../../contributing.rst:187
#: ../../contributing.rst:194
msgid ""
"Adding stars makes it easier for other people to find this project and "
"understand how useful it is."
msgstr ""
#: ../../contributing.rst:190
#: ../../contributing.rst:197
msgid "Guides"
msgstr ""
#: ../../contributing.rst:192
#: ../../contributing.rst:199
msgid ""
"You can write guides how to develop Bots on top of aiogram and publish it"
" into YouTube, Medium, GitHub Books, any Courses platform or any other "
"platform that you know."
msgstr ""
#: ../../contributing.rst:195
#: ../../contributing.rst:202
msgid ""
"This will help more people learn about the framework and learn how to use"
" it"
msgstr ""
#: ../../contributing.rst:199
#: ../../contributing.rst:206
msgid "Take answers"
msgstr ""
#: ../../contributing.rst:201
#: ../../contributing.rst:208
msgid ""
"The developers is always asks for any question in our chats or any other "
"platforms like GitHub Discussions, StackOverflow and others, feel free to"
" answer to this questions."
msgstr ""
#: ../../contributing.rst:205
#: ../../contributing.rst:212
msgid "Funding"
msgstr ""
#: ../../contributing.rst:207
#: ../../contributing.rst:214
msgid ""
"The development of the project is free and not financed by commercial "
"organizations, it is my personal initiative (`@JRootJunior "
@ -313,7 +313,7 @@ msgid ""
"project in my free time."
msgstr ""
#: ../../contributing.rst:211
#: ../../contributing.rst:218
msgid ""
"So, if you want to financially support the project, or, for example, give"
" me a pizza or a beer, you can do it on `OpenCollective "
@ -328,3 +328,31 @@ msgstr ""
#~ "<https://opencollective.com/aiogram>`_ or `Patreon "
#~ "<https://www.patreon.com/aiogram>`_."
#~ msgstr ""
#~ msgid "Linux/ macOS:"
#~ msgstr ""
#~ msgid "Windows PoweShell"
#~ msgstr ""
#~ msgid ""
#~ "To check it worked, use described "
#~ "command, it should show the :code:`pip`"
#~ " location inside the isolated environment"
#~ msgstr ""
#~ msgid "Linux, macOS:"
#~ msgstr ""
#~ msgid ""
#~ "Also make you shure you have the"
#~ " latest pip version in your virtual"
#~ " environment to avoid errors on next"
#~ " steps:"
#~ msgstr ""
#~ msgid ""
#~ "After activating the environment install "
#~ "`aiogram` from sources and their "
#~ "dependencies:"
#~ msgstr ""

View file

@ -0,0 +1,96 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2023, aiogram Team
# This file is distributed under the same license as the aiogram package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2023.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: ../../dispatcher/dependency_injection.rst:3
msgid "Dependency injection"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:5
msgid ""
"Dependency injection is a programming technique that makes a class "
"independent of its dependencies. It achieves that by decoupling the usage"
" of an object from its creation. This helps you to follow `SOLID's "
"<https://en.wikipedia.org/wiki/SOLID>`_ dependency inversion and single "
"responsibility principles."
msgstr ""
#: ../../dispatcher/dependency_injection.rst:12
msgid "How it works in aiogram"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:14
msgid ""
"For each update :class:`aiogram.dispatcher.dispatcher.Dispatcher` passes "
"handling context data. Filters and middleware can also make changes to "
"the context."
msgstr ""
#: ../../dispatcher/dependency_injection.rst:17
msgid ""
"To access contextual data you should specify corresponding keyword "
"parameter in handler or filter. For example, to get "
":class:`aiogram.fsm.context.FSMContext` we do it like that:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:30
msgid "Injecting own dependencies"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:32
msgid "Aiogram provides several ways to complement / modify contextual data."
msgstr ""
#: ../../dispatcher/dependency_injection.rst:34
msgid ""
"The first and easiest way is to simply specify the named arguments in "
":class:`aiogram.dispatcher.dispatcher.Dispatcher` initialization, polling"
" start methods or "
":class:`aiogram.webhook.aiohttp_server.SimpleRequestHandler` "
"initialization if you use webhooks."
msgstr ""
#: ../../dispatcher/dependency_injection.rst:46
msgid "Analogy for webhook:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:55
msgid ""
":class:`aiogram.dispatcher.dispatcher.Dispatcher`'s workflow data also "
"can be supplemented by setting values as in a dictionary:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:63
msgid ""
"The middlewares updates the context quite often. You can read more about "
"them on this page:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:66
msgid ":ref:`Middlewares <middlewares>`"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:68
msgid "The last way is to return a dictionary from the filter:"
msgstr ""
#: ../../dispatcher/dependency_injection.rst:72
msgid ""
"...or using :ref:`MagicFilter <magic-filters>` with :code:`.as_(...)` "
"method."
msgstr ""

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: 2022-12-10 19:44+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -38,12 +38,13 @@ msgstr ""
"обробників, фільтрів і т.п. ви можете знайти на наступних сторінках:"
#: ../../dispatcher/dispatcher.rst:9
msgid "`Router <router.html>`__"
#, fuzzy
msgid ":ref:`Router <Router>`"
msgstr "`Router <router.html>`__"
#: ../../dispatcher/dispatcher.rst:10
msgid "`Observer <observer.html>`__"
msgstr "`Observer <observer.html>`__"
msgid ":ref:`Filtering events`"
msgstr ""
#: aiogram.dispatcher.dispatcher.Dispatcher:1
#: aiogram.dispatcher.dispatcher.Dispatcher.__init__:1 of
@ -186,3 +187,6 @@ msgstr ""
#~ msgid "Poling timeout"
#~ msgstr "Час очікування на відповідь"
#~ msgid "`Observer <observer.html>`__"
#~ msgstr "`Observer <observer.html>`__"

View file

@ -7,21 +7,40 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-01 22:51+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: 2022-10-25 18:00+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
"X-Generator: Poedit 3.1.1\n"
"Generated-By: Babel 2.12.1\n"
#: ../../dispatcher/filters/chat_member_updated.rst:3
msgid "ChatMemberUpdated"
msgstr "Зміна статусу користувача в чаті"
#: ../../dispatcher/filters/chat_member_updated.rst:10
#: ../../dispatcher/filters/chat_member_updated.rst:6
msgid "Usage"
msgstr "Використання"
#: ../../dispatcher/filters/chat_member_updated.rst:8
msgid "Handle user leave or join events"
msgstr "Керуйте подіями, які залишають користувачів або приєднуються"
#: ../../dispatcher/filters/chat_member_updated.rst:20
msgid ""
"Or construct your own terms via using pre-defined set of statuses and "
"transitions."
msgstr ""
"Або створіть власні умови, використовуючи попередньо визначений набір "
"статусів і переходів."
#: ../../dispatcher/filters/chat_member_updated.rst:24
msgid "Explanation"
msgstr ""
#: ../../dispatcher/filters/chat_member_updated.rst:31
msgid ""
"You can import from :code:`aiogram.filters` all available variants of "
"`statuses`_, `status groups`_ or `transitions`_:"
@ -29,98 +48,98 @@ msgstr ""
"Ви можете імпортувати з :code:`aiogram.filters` усі доступні варіанти "
"`statuses`_, `status group`_ або `transitions`_:"
#: ../../dispatcher/filters/chat_member_updated.rst:14
#: ../../dispatcher/filters/chat_member_updated.rst:35
msgid "Statuses"
msgstr "Статуси"
#: ../../dispatcher/filters/chat_member_updated.rst:17
#: ../../dispatcher/filters/chat_member_updated.rst:42
#: ../../dispatcher/filters/chat_member_updated.rst:62
#: ../../dispatcher/filters/chat_member_updated.rst:38
#: ../../dispatcher/filters/chat_member_updated.rst:63
#: ../../dispatcher/filters/chat_member_updated.rst:83
msgid "name"
msgstr "ім'я"
#: ../../dispatcher/filters/chat_member_updated.rst:17
#: ../../dispatcher/filters/chat_member_updated.rst:42
#: ../../dispatcher/filters/chat_member_updated.rst:62
#: ../../dispatcher/filters/chat_member_updated.rst:38
#: ../../dispatcher/filters/chat_member_updated.rst:63
#: ../../dispatcher/filters/chat_member_updated.rst:83
msgid "Description"
msgstr "Опис"
#: ../../dispatcher/filters/chat_member_updated.rst:19
#: ../../dispatcher/filters/chat_member_updated.rst:40
msgid ":code:`CREATOR`"
msgstr ":code:`CREATOR`"
#: ../../dispatcher/filters/chat_member_updated.rst:19
#: ../../dispatcher/filters/chat_member_updated.rst:40
msgid "Chat owner"
msgstr "Власник чату"
#: ../../dispatcher/filters/chat_member_updated.rst:21
#: ../../dispatcher/filters/chat_member_updated.rst:42
msgid ":code:`ADMINISTRATOR`"
msgstr ":code:`ADMINISTRATOR`"
#: ../../dispatcher/filters/chat_member_updated.rst:21
#: ../../dispatcher/filters/chat_member_updated.rst:42
msgid "Chat administrator"
msgstr "Адміністратор чату"
#: ../../dispatcher/filters/chat_member_updated.rst:23
#: ../../dispatcher/filters/chat_member_updated.rst:44
msgid ":code:`MEMBER`"
msgstr ":code:`MEMBER`"
#: ../../dispatcher/filters/chat_member_updated.rst:23
#: ../../dispatcher/filters/chat_member_updated.rst:44
msgid "Member of the chat"
msgstr "Учасник чату"
#: ../../dispatcher/filters/chat_member_updated.rst:25
#: ../../dispatcher/filters/chat_member_updated.rst:46
msgid ":code:`RESTRICTED`"
msgstr ":code:`RESTRICTED`"
#: ../../dispatcher/filters/chat_member_updated.rst:25
#: ../../dispatcher/filters/chat_member_updated.rst:46
msgid "Restricted user (can be not member)"
msgstr "Обмежений користувач (може бути не учасником)"
#: ../../dispatcher/filters/chat_member_updated.rst:27
#: ../../dispatcher/filters/chat_member_updated.rst:48
msgid ":code:`LEFT`"
msgstr ":code:`LEFT`"
#: ../../dispatcher/filters/chat_member_updated.rst:27
#: ../../dispatcher/filters/chat_member_updated.rst:48
msgid "Isn't member of the chat"
msgstr "Не є учасником чату"
#: ../../dispatcher/filters/chat_member_updated.rst:29
#: ../../dispatcher/filters/chat_member_updated.rst:50
msgid ":code:`KICKED`"
msgstr ":code:`KICKED`"
#: ../../dispatcher/filters/chat_member_updated.rst:29
#: ../../dispatcher/filters/chat_member_updated.rst:50
msgid "Kicked member by administrators"
msgstr "Вигнанийадміністраторами учасник"
#: ../../dispatcher/filters/chat_member_updated.rst:32
#: ../../dispatcher/filters/chat_member_updated.rst:53
msgid ""
"Statuses can be extended with `is_member` flag by prefixing with :code:`"
"+` (for :code:`is_member == True)` or :code:`-` (for :code:`is_member == "
"False`) symbol, like :code:`+RESTRICTED` or :code:`-RESTRICTED`"
"Statuses can be extended with `is_member` flag by prefixing with "
":code:`+` (for :code:`is_member == True)` or :code:`-` (for "
":code:`is_member == False`) symbol, like :code:`+RESTRICTED` or "
":code:`-RESTRICTED`"
msgstr ""
"Статуси можна розширити маркером `is_member`, додавши префікс :"
"code:`+` (для :code:`is_member == True)` або :code:`-` (для :code:"
"`is_member == False`) , наприклад :code:`+RESTRICTED` або :code:`-"
"RESTRICTED`"
"Статуси можна розширити маркером `is_member`, додавши префікс :code:`+` "
"(для :code:`is_member == True)` або :code:`-` (для :code:`is_member == "
"False`) , наприклад :code:`+RESTRICTED` або :code:`-RESTRICTED`"
#: ../../dispatcher/filters/chat_member_updated.rst:37
#: ../../dispatcher/filters/chat_member_updated.rst:58
msgid "Status groups"
msgstr "Групи статусів"
#: ../../dispatcher/filters/chat_member_updated.rst:39
#: ../../dispatcher/filters/chat_member_updated.rst:60
msgid ""
"The particular statuses can be combined via bitwise :code:`or` operator, "
"like :code:`CREATOR | ADMINISTRATOR`"
msgstr ""
"Окремі статуси можна комбінувати за допомогою побітового оператора :code:"
"`or`, наприклад :code:`CREATOR | ADMINISTRATOR`"
"Окремі статуси можна комбінувати за допомогою побітового оператора "
":code:`or`, наприклад :code:`CREATOR | ADMINISTRATOR`"
#: ../../dispatcher/filters/chat_member_updated.rst:44
#: ../../dispatcher/filters/chat_member_updated.rst:65
msgid ":code:`IS_MEMBER`"
msgstr ":code:`IS_MEMBER`"
#: ../../dispatcher/filters/chat_member_updated.rst:44
#: ../../dispatcher/filters/chat_member_updated.rst:65
msgid ""
"Combination of :code:`(CREATOR | ADMINISTRATOR | MEMBER | +RESTRICTED)` "
"statuses."
@ -128,41 +147,41 @@ msgstr ""
"Комбінація статусів :code:`(CREATOR | ADMINISTRATOR | MEMBER | "
"+RESTRICTED)`."
#: ../../dispatcher/filters/chat_member_updated.rst:46
#: ../../dispatcher/filters/chat_member_updated.rst:67
msgid ":code:`IS_ADMIN`"
msgstr ":code:`IS_ADMIN`"
#: ../../dispatcher/filters/chat_member_updated.rst:46
#: ../../dispatcher/filters/chat_member_updated.rst:67
msgid "Combination of :code:`(CREATOR | ADMINISTRATOR)` statuses."
msgstr "Комбінація статусів :code:`(CREATOR | ADMINISTRATOR)`."
#: ../../dispatcher/filters/chat_member_updated.rst:48
#: ../../dispatcher/filters/chat_member_updated.rst:69
msgid ":code:`IS_NOT_MEMBER`"
msgstr ":code:`IS_NOT_MEMBER`"
#: ../../dispatcher/filters/chat_member_updated.rst:48
#: ../../dispatcher/filters/chat_member_updated.rst:69
msgid "Combination of :code:`(LEFT | KICKED | -RESTRICTED)` statuses."
msgstr "Комбінація статусів :code:`(LEFT | KICKED | -RESTRICTED)` ."
#: ../../dispatcher/filters/chat_member_updated.rst:52
#: ../../dispatcher/filters/chat_member_updated.rst:73
msgid "Transitions"
msgstr "Переходи"
#: ../../dispatcher/filters/chat_member_updated.rst:54
#: ../../dispatcher/filters/chat_member_updated.rst:75
msgid ""
"Transitions can be defined via bitwise shift operators :code:`>>` and :"
"code:`<<`. Old chat member status should be defined in the left side "
"for :code:`>>` operator (right side for :code:`<<`) and new status "
"should be specified on the right side for :code:`>>` operator (left side "
"for :code:`<<`)"
"Transitions can be defined via bitwise shift operators :code:`>>` and "
":code:`<<`. Old chat member status should be defined in the left side for"
" :code:`>>` operator (right side for :code:`<<`) and new status should be"
" specified on the right side for :code:`>>` operator (left side for "
":code:`<<`)"
msgstr ""
"Переходи можна визначити за допомогою операторів порозрядного зсуву :"
"code:`>>` і :code:`<<`. Старий статус учасника чату має бути визначений "
"Переходи можна визначити за допомогою операторів порозрядного зсуву "
":code:`>>` і :code:`<<`. Старий статус учасника чату має бути визначений "
"ліворуч для оператора :code:`>>` (праворуч для :code:`<<`), а новий "
"статус має бути вказаний праворуч для :code:`>>` оператор (ліворуч для :"
"code:`<<`)"
"статус має бути вказаний праворуч для :code:`>>` оператор (ліворуч для "
":code:`<<`)"
#: ../../dispatcher/filters/chat_member_updated.rst:58
#: ../../dispatcher/filters/chat_member_updated.rst:79
msgid ""
"The direction of transition can be changed via bitwise inversion "
"operator: :code:`~JOIN_TRANSITION` will produce swap of old and new "
@ -172,45 +191,45 @@ msgstr ""
"інверсії: :code:`~JOIN_TRANSITION` призведе до обміну старих і нових "
"статусів."
#: ../../dispatcher/filters/chat_member_updated.rst:64
#: ../../dispatcher/filters/chat_member_updated.rst:85
msgid ":code:`JOIN_TRANSITION`"
msgstr ":code:`JOIN_TRANSITION`"
#: ../../dispatcher/filters/chat_member_updated.rst:64
#: ../../dispatcher/filters/chat_member_updated.rst:85
msgid ""
"Means status changed from :code:`IS_NOT_MEMBER` to :code:`IS_MEMBER` (:"
"code:`IS_NOT_MEMBER >> IS_MEMBER`)"
"Means status changed from :code:`IS_NOT_MEMBER` to :code:`IS_MEMBER` "
"(:code:`IS_NOT_MEMBER >> IS_MEMBER`)"
msgstr ""
"Означає, що статус змінено з :code:`IS_NOT_MEMBER` на :code:`IS_MEMBER` "
"(:code:`IS_NOT_MEMBER >> IS_MEMBER`)"
#: ../../dispatcher/filters/chat_member_updated.rst:67
#: ../../dispatcher/filters/chat_member_updated.rst:88
msgid ":code:`LEAVE_TRANSITION`"
msgstr ":code:`LEAVE_TRANSITION`"
#: ../../dispatcher/filters/chat_member_updated.rst:67
#: ../../dispatcher/filters/chat_member_updated.rst:88
msgid ""
"Means status changed from :code:`IS_MEMBER` to :code:`IS_NOT_MEMBER` (:"
"code:`~JOIN_TRANSITION`)"
"Means status changed from :code:`IS_MEMBER` to :code:`IS_NOT_MEMBER` "
"(:code:`~JOIN_TRANSITION`)"
msgstr ""
"Означає, що статус змінено з :code:`IS_MEMBER` на :code:`IS_NOT_MEMBER` "
"(:code:`~JOIN_TRANSITION`)"
#: ../../dispatcher/filters/chat_member_updated.rst:70
#: ../../dispatcher/filters/chat_member_updated.rst:91
msgid ":code:`PROMOTED_TRANSITION`"
msgstr ":code:`PROMOTED_TRANSITION`"
#: ../../dispatcher/filters/chat_member_updated.rst:70
#: ../../dispatcher/filters/chat_member_updated.rst:91
msgid ""
"Means status changed from :code:`(MEMBER | RESTRICTED | LEFT | KICKED) "
">> ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) >> "
"Means status changed from :code:`(MEMBER | RESTRICTED | LEFT | KICKED) >>"
" ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) >> "
"ADMINISTRATOR`)"
msgstr ""
"Означає, що статус змінено з :code:`(MEMBER | RESTRICTED | LEFT | "
"KICKED) >> ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) "
">> ADMINISTRATOR`)"
"Означає, що статус змінено з :code:`(MEMBER | RESTRICTED | LEFT | KICKED)"
" >> ADMINISTRATOR` (:code:`(MEMBER | RESTRICTED | LEFT | KICKED) >> "
"ADMINISTRATOR`)"
#: ../../dispatcher/filters/chat_member_updated.rst:77
#: ../../dispatcher/filters/chat_member_updated.rst:98
msgid ""
"Note that if you define the status unions (via :code:`|`) you will need "
"to add brackets for the statement before use shift operator in due to "
@ -220,34 +239,18 @@ msgstr ""
"вам потрібно буде додати дужки для оператора перед використанням "
"оператора зсуву через пріоритети оператора."
#: ../../dispatcher/filters/chat_member_updated.rst:81
msgid "Usage"
msgstr "Використання"
#: ../../dispatcher/filters/chat_member_updated.rst:83
msgid "Handle user leave or join events"
msgstr "Керуйте подіями, які залишають користувачів або приєднуються"
#: ../../dispatcher/filters/chat_member_updated.rst:95
msgid ""
"Or construct your own terms via using pre-defined set of statuses and "
"transitions."
msgstr ""
"Або створіть власні умови, використовуючи попередньо визначений набір "
"статусів і переходів."
#: ../../dispatcher/filters/chat_member_updated.rst:98
#: ../../dispatcher/filters/chat_member_updated.rst:103
msgid "Allowed handlers"
msgstr "Дозволені обробники"
#: ../../dispatcher/filters/chat_member_updated.rst:100
#: ../../dispatcher/filters/chat_member_updated.rst:105
msgid "Allowed update types for this filter:"
msgstr "Дозволені типи оновлень для цього фільтра:"
#: ../../dispatcher/filters/chat_member_updated.rst:102
#: ../../dispatcher/filters/chat_member_updated.rst:107
msgid "`my_chat_member`"
msgstr "`my_chat_member`"
#: ../../dispatcher/filters/chat_member_updated.rst:103
#: ../../dispatcher/filters/chat_member_updated.rst:108
msgid "`chat_member`"
msgstr "`chat_member`"

View file

@ -7,36 +7,24 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-10-25 22:10+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: 2022-10-25 16:00+0300\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.10.3\n"
"Generated-By: Babel 2.12.1\n"
#: ../../dispatcher/filters/magic_data.rst:3
msgid "MagicData"
msgstr "MagicData"
#: aiogram.filters.magic_data.MagicData:1 of
msgid "This filter helps to filter event with contextual data"
msgstr "Цей фільтр допомагає фільтрувати події з контекстними даними"
#: ../../dispatcher/filters/magic_data.rst:10
msgid "Can be imported:"
msgstr "Можна імпортувати:"
#: ../../dispatcher/filters/magic_data.rst:12
msgid ":code:`from aiogram.filters import MagicData`"
msgstr ":code:`from aiogram.filters import MagicData`"
#: ../../dispatcher/filters/magic_data.rst:15
#: ../../dispatcher/filters/magic_data.rst:6
msgid "Usage"
msgstr "Використання"
#: ../../dispatcher/filters/magic_data.rst:17
#: ../../dispatcher/filters/magic_data.rst:8
msgid ""
":code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Note that "
":code:`config` should be passed from middleware)"
@ -44,70 +32,86 @@ msgstr ""
":code:`MagicData(F.event.from_user.id == F.config.admin_id)` (Зауважте, "
"що :code:`config` слід передати з проміжної програми)"
#: ../../dispatcher/filters/magic_data.rst:21
#: ../../dispatcher/filters/magic_data.rst:11
msgid "Explanation"
msgstr ""
#: aiogram.filters.magic_data.MagicData:1 of
msgid "This filter helps to filter event with contextual data"
msgstr "Цей фільтр допомагає фільтрувати події з контекстними даними"
#: ../../dispatcher/filters/magic_data.rst:18
msgid "Can be imported:"
msgstr "Можна імпортувати:"
#: ../../dispatcher/filters/magic_data.rst:20
msgid ":code:`from aiogram.filters import MagicData`"
msgstr ":code:`from aiogram.filters import MagicData`"
#: ../../dispatcher/filters/magic_data.rst:24
msgid "Allowed handlers"
msgstr "Дозволені типи обробників (handler)"
#: ../../dispatcher/filters/magic_data.rst:23
#: ../../dispatcher/filters/magic_data.rst:26
msgid "Allowed update types for this filter:"
msgstr "Дозволені типи оновлень для цього фільтра:"
#: ../../dispatcher/filters/magic_data.rst:25
#: ../../dispatcher/filters/magic_data.rst:28
msgid ":code:`message`"
msgstr ":code:`message`"
#: ../../dispatcher/filters/magic_data.rst:26
#: ../../dispatcher/filters/magic_data.rst:29
msgid ":code:`edited_message`"
msgstr ":code:`edited_message`"
#: ../../dispatcher/filters/magic_data.rst:27
#: ../../dispatcher/filters/magic_data.rst:30
msgid ":code:`channel_post`"
msgstr ":code:`channel_post`"
#: ../../dispatcher/filters/magic_data.rst:28
#: ../../dispatcher/filters/magic_data.rst:31
msgid ":code:`edited_channel_post`"
msgstr ":code:`edited_channel_post`"
#: ../../dispatcher/filters/magic_data.rst:29
#: ../../dispatcher/filters/magic_data.rst:32
msgid ":code:`inline_query`"
msgstr ":code:`inline_query`"
#: ../../dispatcher/filters/magic_data.rst:30
#: ../../dispatcher/filters/magic_data.rst:33
msgid ":code:`chosen_inline_result`"
msgstr ":code:`chosen_inline_result`"
#: ../../dispatcher/filters/magic_data.rst:31
#: ../../dispatcher/filters/magic_data.rst:34
msgid ":code:`callback_query`"
msgstr ":code:`callback_query`"
#: ../../dispatcher/filters/magic_data.rst:32
#: ../../dispatcher/filters/magic_data.rst:35
msgid ":code:`shipping_query`"
msgstr ":code:`shipping_query`"
#: ../../dispatcher/filters/magic_data.rst:33
#: ../../dispatcher/filters/magic_data.rst:36
msgid ":code:`pre_checkout_query`"
msgstr ":code:`pre_checkout_query`"
#: ../../dispatcher/filters/magic_data.rst:34
#: ../../dispatcher/filters/magic_data.rst:37
msgid ":code:`poll`"
msgstr ":code:`poll`"
#: ../../dispatcher/filters/magic_data.rst:35
#: ../../dispatcher/filters/magic_data.rst:38
msgid ":code:`poll_answer`"
msgstr ":code:`poll_answer`"
#: ../../dispatcher/filters/magic_data.rst:36
#: ../../dispatcher/filters/magic_data.rst:39
msgid ":code:`my_chat_member`"
msgstr ":code:`my_chat_member`"
#: ../../dispatcher/filters/magic_data.rst:37
#: ../../dispatcher/filters/magic_data.rst:40
msgid ":code:`chat_member`"
msgstr ":code:`chat_member`"
#: ../../dispatcher/filters/magic_data.rst:38
#: ../../dispatcher/filters/magic_data.rst:41
msgid ":code:`chat_join_request`"
msgstr ":code:`chat_join_request`"
#: ../../dispatcher/filters/magic_data.rst:39
#: ../../dispatcher/filters/magic_data.rst:42
msgid ":code:`error`"
msgstr ":code:`error`"

View file

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: 2022-12-10 20:41+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -16,10 +16,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.12.1\n"
#: ../../dispatcher/router.rst:3
#: ../../dispatcher/router.rst:5
msgid "Router"
msgstr "Маршрутизатор"
#: ../../dispatcher/router.rst:7
#, fuzzy
msgid "Usage:"
msgstr "Повідомлення"
#: aiogram.dispatcher.router.Router:1 of
msgid "Bases: :py:class:`object`"
msgstr "Базується на :py:class:`object`"
@ -91,11 +96,11 @@ msgstr ""
msgid "set of registered names"
msgstr ""
#: ../../dispatcher/router.rst:13
#: ../../dispatcher/router.rst:29
msgid "Event observers"
msgstr "Обсервери подій"
#: ../../dispatcher/router.rst:17
#: ../../dispatcher/router.rst:33
msgid ""
"All handlers always should be asynchronous. The name of the handler "
"function is not important. The event argument name is also not important "
@ -107,7 +112,7 @@ msgstr ""
"накладати назву на контекстні дані, оскільки функція не може прийняти два"
" аргументи з однаковою назвою."
#: ../../dispatcher/router.rst:20
#: ../../dispatcher/router.rst:36
msgid ""
"Here is the list of available observers and examples of how to register "
"handlers"
@ -115,7 +120,7 @@ msgstr ""
"Ось список доступних обсерверів і приклади того, як зареєструвати "
"обробники"
#: ../../dispatcher/router.rst:22
#: ../../dispatcher/router.rst:38
msgid ""
"In these examples only decorator-style registering handlers are used, but"
" if you don't like @decorators just use :obj:`<event type>.register(...)`"
@ -125,15 +130,15 @@ msgstr ""
"декоратора, але якщо вам не подобаються @decorators, просто "
"використовуйте :obj:`<event type>.register(...)` method instead."
#: ../../dispatcher/router.rst:25
#: ../../dispatcher/router.rst:41
msgid "Message"
msgstr "Повідомлення"
#: ../../dispatcher/router.rst:30
#: ../../dispatcher/router.rst:46
msgid "Be attentive with filtering this event"
msgstr "Будьте уважні при фільтруванні цієї події"
#: ../../dispatcher/router.rst:32
#: ../../dispatcher/router.rst:48
msgid ""
"You should expect that this event can be with different sets of "
"attributes in different cases"
@ -141,13 +146,13 @@ msgstr ""
"Вам слід очікувати, що ця подія може мати різні набори атрибутів у різних"
" випадках"
#: ../../dispatcher/router.rst:34
#: ../../dispatcher/router.rst:50
msgid ""
"(For example text, sticker and document are always of different content "
"types of message)"
msgstr "(Наприклад, текст, стікер та документ завжди мають різні типи вмісту)"
#: ../../dispatcher/router.rst:36
#: ../../dispatcher/router.rst:52
msgid ""
"Recommended way to check field availability before usage, for example via"
" :ref:`magic filter <magic-filters>`: :code:`F.text` to handle text, "
@ -158,62 +163,62 @@ msgstr ""
":code:`F.text` для обробки тексту, :code:`F.sticker` для обробки лише "
"стікерів і тощо."
#: ../../dispatcher/router.rst:47
#: ../../dispatcher/router.rst:63
msgid "Edited message"
msgstr "Відредаговане повідомлення"
#: ../../dispatcher/router.rst:55
#: ../../dispatcher/router.rst:71
msgid "Channel post"
msgstr "Пост на каналі"
#: ../../dispatcher/router.rst:63
#: ../../dispatcher/router.rst:79
msgid "Edited channel post"
msgstr "Відредагований пост на каналі"
#: ../../dispatcher/router.rst:72
#: ../../dispatcher/router.rst:88
msgid "Inline query"
msgstr "Inline запит"
#: ../../dispatcher/router.rst:80
#: ../../dispatcher/router.rst:96
msgid "Chosen inline query"
msgstr "Вибраний результат inline запиту"
#: ../../dispatcher/router.rst:88
#: ../../dispatcher/router.rst:104
msgid "Callback query"
msgstr "Запит зворотної відповіді"
#: ../../dispatcher/router.rst:96
#: ../../dispatcher/router.rst:112
msgid "Shipping query"
msgstr "Запит підтвердження доставки"
#: ../../dispatcher/router.rst:104
#: ../../dispatcher/router.rst:120
msgid "Pre checkout query"
msgstr "Запит перед оформленням замовлення"
#: ../../dispatcher/router.rst:112
#: ../../dispatcher/router.rst:128
msgid "Poll"
msgstr "Опитування"
#: ../../dispatcher/router.rst:120
#: ../../dispatcher/router.rst:136
msgid "Poll answer"
msgstr "Відповідь на опитування"
#: ../../dispatcher/router.rst:128
#: ../../dispatcher/router.rst:144
msgid "Errors"
msgstr "Помилки"
#: ../../dispatcher/router.rst:135
#: ../../dispatcher/router.rst:151
#, fuzzy
msgid ""
"Is useful for handling errors from other handlers, error event described "
":ref:`here <error-event>`"
msgstr "Корисно для обробки помилок інших обробників"
#: ../../dispatcher/router.rst:142
#: ../../dispatcher/router.rst:158
msgid "Nested routers"
msgstr "Вкладені маршрутизатори"
#: ../../dispatcher/router.rst:147
#: ../../dispatcher/router.rst:163
msgid ""
"Routers by the way can be nested to an another routers with some "
"limitations:"
@ -221,7 +226,7 @@ msgstr ""
"До речі, маршрутизатори можуть бути вкладеними в інші маршрутизатори з "
"деякими обмеженнями:"
#: ../../dispatcher/router.rst:147
#: ../../dispatcher/router.rst:163
msgid ""
"1. Router **CAN NOT** include itself 1. Routers **CAN NOT** be used for "
"circular including (router 1 include router 2, router 2 include router 3,"
@ -232,39 +237,39 @@ msgstr ""
"(маршрутизатор 1 включає маршрутизатор 2, маршрутизатор 2 включає "
"маршрутизатор 3, маршрутизатор 3 включає маршрутизатор 1)"
#: ../../dispatcher/router.rst:151
#: ../../dispatcher/router.rst:167
msgid "Example:"
msgstr "Приклад:"
#: ../../dispatcher/router.rst:153
#: ../../dispatcher/router.rst:169
#, fuzzy
msgid "module_1.py"
msgstr "module_2.py"
#: ../../dispatcher/router.rst:163
#: ../../dispatcher/router.rst:179
msgid "module_2.py"
msgstr "module_2.py"
#: ../../dispatcher/router.rst:175
#: ../../dispatcher/router.rst:191
msgid "Update"
msgstr "Оновлення"
#: ../../dispatcher/router.rst:184
#: ../../dispatcher/router.rst:200
msgid "The only root Router (Dispatcher) can handle this type of event."
msgstr ""
#: ../../dispatcher/router.rst:188
#: ../../dispatcher/router.rst:204
msgid ""
"Dispatcher already has default handler for this event type, so you can "
"use it for handling all updates that are not handled by any other "
"handlers."
msgstr ""
#: ../../dispatcher/router.rst:191
#: ../../dispatcher/router.rst:207
msgid "How it works?"
msgstr "Як це працює?"
#: ../../dispatcher/router.rst:193
#: ../../dispatcher/router.rst:209
msgid ""
"For example, dispatcher has 2 routers, the last router also has one "
"nested router:"
@ -276,7 +281,7 @@ msgstr ""
msgid "Nested routers example"
msgstr "Приклад вкладених маршрутизаторів"
#: ../../dispatcher/router.rst:198
#: ../../dispatcher/router.rst:214
msgid "In this case update propagation flow will have form:"
msgstr "У цьому випадку потік розповсюдження оновлення матиме вигляд:"

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,17 +18,9 @@ msgstr ""
"Generated-By: Babel 2.12.1\n"
#: ../../../README.rst:3
msgid "aiogram |beta badge|"
msgid "aiogram"
msgstr ""
#: ../../../README.rst:94
msgid "Beta badge"
msgstr ""
#: ../../../README.rst:6
msgid "This version is still in development!"
msgstr "Ще в розробці!"
#: ../../../README.rst:-1
msgid "MIT License"
msgstr ""
@ -61,7 +53,7 @@ msgstr "Тести"
msgid "Codecov"
msgstr ""
#: ../../../README.rst:40
#: ../../../README.rst:37
msgid ""
"**aiogram** is a modern and fully asynchronous framework for `Telegram "
"Bot API <https://core.telegram.org/bots/api>`_ written in Python 3.8 "
@ -74,39 +66,27 @@ msgstr ""
"<https://docs.python.org/3/library/asyncio.html>`_ та `aiohttp "
"<https://github.com/aio-libs/aiohttp>`_."
#: ../../../README.rst:45
#: ../../../README.rst:42
msgid "Make your bots faster and more powerful!"
msgstr "Зробіть своїх ботів швидшими та потужнішими!"
#: ../../../README.rst:50
#: ../../../README.rst:47
msgid "Documentation:"
msgstr "Документація"
#: ../../../README.rst:48
#: ../../../README.rst:45
msgid "🇺🇸 `English <https://docs.aiogram.dev/en/dev-3.x/>`_"
msgstr "🇺🇸 `English <https://docs.aiogram.dev/en/dev-3.x/>`_"
#: ../../../README.rst:49
#: ../../../README.rst:46
msgid "🇺🇦 `Ukrainian <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_"
msgstr "🇺🇦 `Українською <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_"
#: ../../../README.rst:54
msgid "**Breaking News:**"
msgstr "**Важливі новини**"
#: ../../../README.rst:56
msgid "*aiogram* 3.0 has breaking changes."
msgstr "*aiogram* 3.0 має зміни, що ламають зворотну сумісність."
#: ../../../README.rst:58
msgid "It breaks backward compatibility by introducing new breaking changes!"
msgstr "Порушує зворотну сумісність, вводячи нові критичні зміни!"
#: ../../../README.rst:61
#: ../../../README.rst:50
msgid "Features"
msgstr "Особливості"
#: ../../../README.rst:63
#: ../../../README.rst:52
msgid ""
"Asynchronous (`asyncio docs "
"<https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)"
@ -114,7 +94,7 @@ msgstr ""
"Асинхронність (`asyncio docs "
"<https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)"
#: ../../../README.rst:64
#: ../../../README.rst:53
msgid ""
"Has type hints (:pep:`484`) and can be used with `mypy <http://mypy-"
"lang.org/>`_"
@ -122,20 +102,20 @@ msgstr ""
"Має анотації типів (:pep:`484`) та може використовуватись з `mypy <http"
"://mypy-lang.org/>`_"
#: ../../../README.rst:65
#: ../../../README.rst:54
msgid "Supports `PyPy <https://www.pypy.org/>`_"
msgstr "Працює з `PyPy <https://www.pypy.org/>`_"
#: ../../../README.rst:66
#: ../../../README.rst:55
#, fuzzy
msgid ""
"Supports `Telegram Bot API 6.7 <https://core.telegram.org/bots/api>`_ and"
"Supports `Telegram Bot API 6.8 <https://core.telegram.org/bots/api>`_ and"
" gets fast updates to the latest versions of the Bot API"
msgstr ""
"Підтримує `Telegram Bot API 6.3 <https://core.telegram.org/bots/api>`_ та"
" швидко отримує оновлення до нових версії АПІ"
#: ../../../README.rst:67
#: ../../../README.rst:56
msgid ""
"Telegram Bot API integration code was `autogenerated "
"<https://github.com/aiogram/tg-codegen>`_ and can be easily re-generated "
@ -145,28 +125,28 @@ msgstr ""
"/tg-codegen>`_ що надає змогу дуже легко оновлювати фреймворк до останніх"
" версій АПІ"
#: ../../../README.rst:68
#: ../../../README.rst:57
msgid "Updates router (Blueprints)"
msgstr "Має роутери подій (Blueprints)"
#: ../../../README.rst:69
#: ../../../README.rst:58
msgid "Has Finite State Machine"
msgstr "Має вбудований кінцевий автомат"
#: ../../../README.rst:70
#: ../../../README.rst:59
msgid ""
"Uses powerful `magic filters "
"<https://docs.aiogram.dev/en/dev-3.x/dispatcher/filters/magic_filters.html"
"#magic-filters>`"
"<https://docs.aiogram.dev/en/latest/dispatcher/filters/magic_filters.html"
"#magic-filters>`_"
msgstr ""
#: ../../../README.rst:71
#: ../../../README.rst:60
msgid "Middlewares (incoming updates and API calls)"
msgstr ""
"Підтримує мідлвари (для вхідних подій від АПІ та для вихідних запитів до "
"АПІ)"
#: ../../../README.rst:72
#: ../../../README.rst:61
msgid ""
"Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-"
"can-i-make-requests-in-response-to-updates>`_"
@ -175,13 +155,13 @@ msgstr ""
"<https://core.telegram.org/bots/faq#how-can-i-make-requests-in-response-"
"to-updates>`_"
#: ../../../README.rst:73
#: ../../../README.rst:62
msgid "Integrated I18n/L10n support with GNU Gettext (or Fluent)"
msgstr ""
"Має вбудовану інтеграцію для використання інтернаціоналізації та "
"локалізації GNU Gettext (або Fluent)"
#: ../../../README.rst:78
#: ../../../README.rst:67
msgid ""
"It is strongly advised that you have prior experience working with "
"`asyncio <https://docs.python.org/3/library/asyncio.html>`_ before "
@ -191,39 +171,39 @@ msgstr ""
"починати використовувати цей фреймворк. `asyncio "
"<https://docs.python.org/3/library/asyncio.html>`_"
#: ../../../README.rst:82
#: ../../../README.rst:71
msgid "If you have any questions, you can visit our community chats on Telegram:"
msgstr "Якщо є якість додаткові запитання, ласкаво просимо до онлайн-спільнот:"
#: ../../../README.rst:84
#: ../../../README.rst:73
msgid "🇺🇸 `@aiogram <https://t.me/aiogram>`_"
msgstr ""
#: ../../../README.rst:85
#: ../../../README.rst:74
msgid "🇺🇦 `@aiogramua <https://t.me/aiogramua>`_"
msgstr ""
#: ../../../README.rst:86
#: ../../../README.rst:75
msgid "🇺🇿 `@aiogram_uz <https://t.me/aiogram_uz>`_"
msgstr ""
#: ../../../README.rst:87
#: ../../../README.rst:76
msgid "🇰🇿 `@aiogram_kz <https://t.me/aiogram_kz>`_"
msgstr ""
#: ../../../README.rst:88
#: ../../../README.rst:77
msgid "🇷🇺 `@aiogram_ru <https://t.me/aiogram_ru>`_"
msgstr "💩 `@aiogram_ru <https://t.me/aiogram_ru>`_"
#: ../../../README.rst:89
#: ../../../README.rst:78
msgid "🇮🇷 `@aiogram_fa <https://t.me/aiogram_fa>`_"
msgstr ""
#: ../../../README.rst:90
#: ../../../README.rst:79
msgid "🇮🇹 `@aiogram_it <https://t.me/aiogram_it>`_"
msgstr ""
#: ../../../README.rst:91
#: ../../../README.rst:80
msgid "🇧🇷 `@aiogram_br <https://t.me/aiogram_br>`_"
msgstr ""
@ -237,3 +217,27 @@ msgstr "Зміст"
#~ msgid "[Telegram] aiogram live"
#~ msgstr ""
#~ msgid "aiogram |beta badge|"
#~ msgstr ""
#~ msgid "Beta badge"
#~ msgstr ""
#~ msgid "This version is still in development!"
#~ msgstr "Ще в розробці!"
#~ msgid "**Breaking News:**"
#~ msgstr "**Важливі новини**"
#~ msgid "*aiogram* 3.0 has breaking changes."
#~ msgstr "*aiogram* 3.0 має зміни, що ламають зворотну сумісність."
#~ msgid "It breaks backward compatibility by introducing new breaking changes!"
#~ msgstr "Порушує зворотну сумісність, вводячи нові критичні зміни!"
#~ msgid ""
#~ "Uses powerful `magic filters "
#~ "<https://docs.aiogram.dev/en/dev-3.x/dispatcher/filters/magic_filters.html"
#~ "#magic-filters>`"
#~ msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-07-30 18:31+0300\n"
"POT-Creation-Date: 2023-08-26 23:17+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -99,17 +99,24 @@ msgid ""
"accessed via :code:`data[\"bot\"]`."
msgstr ""
#: ../../migration_2_to_3.rst:46
#: ../../migration_2_to_3.rst:43
msgid ""
"Now to skip pending updates, you should call the "
":class:`aiogram.methods.delete_webhook.DeleteWebhook` method directly "
"instead of passing :code:`skip_updates=True` to start polling method."
msgstr ""
#: ../../migration_2_to_3.rst:47
msgid "Filtering events"
msgstr ""
#: ../../migration_2_to_3.rst:48
#: ../../migration_2_to_3.rst:49
msgid ""
"Keyword filters can no more be used, use filters explicitly. (`Read more "
"» <https://github.com/aiogram/aiogram/issues/942>`_)"
msgstr ""
#: ../../migration_2_to_3.rst:49
#: ../../migration_2_to_3.rst:50
msgid ""
"In due to keyword filters was removed all enabled by default filters "
"(state and content_type now is not enabled), so you should specify them "
@ -118,19 +125,19 @@ msgid ""
"use :code:`@router.message(F.photo)`"
msgstr ""
#: ../../migration_2_to_3.rst:53
#: ../../migration_2_to_3.rst:54
msgid ""
"Most of common filters is replaced by \"magic filter\". (:ref:`Read more "
"» <magic-filters>`)"
msgstr ""
#: ../../migration_2_to_3.rst:54
#: ../../migration_2_to_3.rst:55
msgid ""
"Now by default message handler receives any content type, if you want "
"specific one just add the filters (Magic or any other)"
msgstr ""
#: ../../migration_2_to_3.rst:56
#: ../../migration_2_to_3.rst:57
msgid ""
"State filter now is not enabled by default, that's mean if you using "
":code:`state=\"*\"` in v2 then you should not pass any state filter in "
@ -138,38 +145,38 @@ msgid ""
"specify the state."
msgstr ""
#: ../../migration_2_to_3.rst:59
#: ../../migration_2_to_3.rst:60
msgid ""
"Added possibility to register per-router global filters, that helps to "
"reduces the number of repetitions in the code and makes easily way to "
"control for what each router will be used."
msgstr ""
#: ../../migration_2_to_3.rst:65
#: ../../migration_2_to_3.rst:66
msgid "Bot API"
msgstr ""
#: ../../migration_2_to_3.rst:67
#: ../../migration_2_to_3.rst:68
msgid ""
"Now all API methods is classes with validation (via `pydantic "
"<https://docs.pydantic.dev/>`_) (all API calls is also available as "
"methods in the Bot class)."
msgstr ""
#: ../../migration_2_to_3.rst:69
#: ../../migration_2_to_3.rst:70
msgid ""
"Added more pre-defined Enums and moved into `aiogram.enums` sub-package. "
"For example chat type enum now is :class:`aiogram.enums.ChatType` instead"
" of :class:`aiogram.types.chat.ChatType`. (:ref:`Read more » <enums>`)"
msgstr ""
#: ../../migration_2_to_3.rst:72
#: ../../migration_2_to_3.rst:73
msgid ""
"Separated HTTP client session into container that can be reused between "
"different Bot instances in the application."
msgstr ""
#: ../../migration_2_to_3.rst:74
#: ../../migration_2_to_3.rst:75
msgid ""
"API Exceptions is no more classified by specific message in due to "
"Telegram has no documented error codes. But all errors is classified by "
@ -179,17 +186,17 @@ msgid ""
"types>`)"
msgstr ""
#: ../../migration_2_to_3.rst:81
#: ../../migration_2_to_3.rst:82
msgid "Middlewares"
msgstr ""
#: ../../migration_2_to_3.rst:83
#: ../../migration_2_to_3.rst:84
msgid ""
"Middlewares can now control a execution context, e.g. using context "
"managers (:ref:`Read more » <middlewares>`)"
msgstr ""
#: ../../migration_2_to_3.rst:84
#: ../../migration_2_to_3.rst:85
msgid ""
"All contextual data now is shared between middlewares, filters and "
"handlers to end-to-end use. For example now you can easily pass some data"
@ -197,75 +204,102 @@ msgid ""
"same way as in the handlers via keyword arguments."
msgstr ""
#: ../../migration_2_to_3.rst:87
#: ../../migration_2_to_3.rst:88
msgid ""
"Added mechanism named **flags**, that helps to customize handler behavior"
" in conjunction with middlewares. (:ref:`Read more » <flags>`)"
msgstr ""
#: ../../migration_2_to_3.rst:92
#: ../../migration_2_to_3.rst:93
msgid "Keyboard Markup"
msgstr ""
#: ../../migration_2_to_3.rst:94
#: ../../migration_2_to_3.rst:95
msgid ""
"Now :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup` "
"and :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` has "
"no methods to extend it, instead you have to use markup builders "
":class:`aiogram.utils.keyboard.ReplyKeyboardBuilder` and "
":class:`aiogram.utils.keyboard.KeyboardBuilder` respectively (:ref:`Read "
"more » <keyboard-builder>`)"
"more » <Keyboard builder>`)"
msgstr ""
#: ../../migration_2_to_3.rst:102
#: ../../migration_2_to_3.rst:103
msgid "Callbacks data"
msgstr ""
#: ../../migration_2_to_3.rst:104
#: ../../migration_2_to_3.rst:105
msgid ""
"Callback data factory now is strictly typed via `pydantic "
"<https://docs.pydantic.dev/>`_ models (:ref:`Read more » <callback-data-"
"<https://docs.pydantic.dev/>`_ models (:ref:`Read more » <Callback data "
"factory>`)"
msgstr ""
#: ../../migration_2_to_3.rst:109
#: ../../migration_2_to_3.rst:110
msgid "Finite State machine"
msgstr ""
#: ../../migration_2_to_3.rst:111
#: ../../migration_2_to_3.rst:112
msgid ""
"State filter will no more added to all handlers, you will need to specify"
" state if you want"
msgstr ""
#: ../../migration_2_to_3.rst:112
#: ../../migration_2_to_3.rst:113
msgid ""
"Added possibility to change FSM strategy, for example if you want to "
"control state for each user in chat topics instead of user in chat you "
"can specify it in the Dispatcher."
msgstr ""
#: ../../migration_2_to_3.rst:117
#: ../../migration_2_to_3.rst:115
msgid ""
"Now :class:`aiogram.fsm.state.State` and "
":class:`aiogram.fsm.state.StateGroup` don't have helper methods like "
":code:`.set()`, :code:`.next()`, etc."
msgstr ""
#: ../../migration_2_to_3.rst:118
msgid ""
"Instead of this you should set states by passing them directly to "
":class:`aiogram.fsm.context.FSMContext` (:ref:`Read more » <Finite State "
"Machine>`)"
msgstr ""
#: ../../migration_2_to_3.rst:120
msgid ""
"State proxy is deprecated, you should update the state data by calling "
":code:`state.set_data(...)` and :code:`state.get_data()` respectively."
msgstr ""
#: ../../migration_2_to_3.rst:125
msgid "Sending Files"
msgstr ""
#: ../../migration_2_to_3.rst:119
#: ../../migration_2_to_3.rst:127
msgid ""
"From now you should wrap sending files into InputFile object before send "
"instead of passing IO object directly to the API method. (:ref:`Read more"
" » <sending-files>`)"
msgstr ""
#: ../../migration_2_to_3.rst:124
#: ../../migration_2_to_3.rst:132
msgid "Webhook"
msgstr ""
#: ../../migration_2_to_3.rst:126
#: ../../migration_2_to_3.rst:134
msgid "Simplified aiohttp web app configuration"
msgstr ""
#: ../../migration_2_to_3.rst:127
#: ../../migration_2_to_3.rst:135
msgid ""
"By default added possibility to upload files when you use reply into "
"webhook"
msgstr ""
#~ msgid ""
#~ "Callback data factory now is strictly"
#~ " typed via `pydantic "
#~ "<https://docs.pydantic.dev/>`_ models (:ref:`Read "
#~ "more » <callback-data-factory>`)"
#~ msgstr ""

View file

@ -96,14 +96,14 @@ Keyboard Markup
and :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` has no methods to extend it,
instead you have to use markup builders :class:`aiogram.utils.keyboard.ReplyKeyboardBuilder`
and :class:`aiogram.utils.keyboard.KeyboardBuilder` respectively
(:ref:`Read more » <keyboard-builder>`)
(:ref:`Read more » <Keyboard builder>`)
Callbacks data
==============
- Callback data factory now is strictly typed via `pydantic <https://docs.pydantic.dev/>`_ models
(:ref:`Read more » <callback-data-factory>`)
(:ref:`Read more » <Callback data factory>`)
Finite State machine

View file

@ -1,4 +1,5 @@
.. _keyboard-builder
.. _Keyboard builder:
================
Keyboard builder
================