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 - 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) - Updates router (Blueprints)
- Has Finite State Machine - 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) - 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>`_ - 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) - 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: Here is only listed base information about Dispatcher. All about writing handlers, filters and etc. you can found in next pages:
- `Router <router.html>`__ - :ref:`Router <Router>`
- `Observer <observer.html>`__ - :ref:`Filtering events`
.. autoclass:: aiogram.dispatcher.dispatcher.Dispatcher .. autoclass:: aiogram.dispatcher.dispatcher.Dispatcher

View file

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

View file

@ -2,6 +2,27 @@
ChatMemberUpdated 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 .. autoclass:: aiogram.filters.chat_member_updated.ChatMemberUpdatedFilter
:members: :members:
:member-order: bysource :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 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. 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 Allowed handlers
================ ================

View file

@ -2,19 +2,6 @@
Command 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 Usage
===== =====
@ -28,6 +15,19 @@ Usage
Command cannot include spaces or any whitespace 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 Allowed handlers
================ ================

View file

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

View file

@ -2,6 +2,14 @@
MagicData 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 .. autoclass:: aiogram.filters.magic_data.MagicData
:members: :members:
:member-order: bysource :member-order: bysource
@ -11,11 +19,6 @@ Can be imported:
- :code:`from aiogram.filters import MagicData` - :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 Allowed handlers
================ ================

View file

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

View file

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

View file

@ -1,7 +1,23 @@
.. _Router:
###### ######
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 .. autoclass:: aiogram.dispatcher.router.Router
:members: __init__, include_router, include_routers, resolve_used_update_types :members: __init__, include_router, include_routers, resolve_used_update_types
:show-inheritance: :show-inheritance:

View file

@ -24,7 +24,7 @@ From PyPI
.. code-block:: bash .. code-block:: bash
pip install -U --pre aiogram pip install -U aiogram
From GitHub 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 "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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 #: ../../api/types/chat.rst:3
msgid "Chat" msgid "Chat"
@ -88,6 +88,13 @@ msgid ""
":class:`aiogram.methods.get_chat.GetChat`." ":class:`aiogram.methods.get_chat.GetChat`."
msgstr "" 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 #: ../../docstring aiogram.types.chat.Chat.bio:1 of
msgid "" msgid ""
"*Optional*. Bio of the other party in a private chat. Returned only in " "*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_sticker_set:4
#: aiogram.types.chat.Chat.set_title:4 aiogram.types.chat.Chat.unban: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.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_all_messages:4
#: aiogram.types.chat.Chat.unpin_message:4 of #: aiogram.types.chat.Chat.unpin_message:4 of
msgid ":code:`chat_id`" 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_permissions aiogram.types.chat.Chat.set_photo
#: aiogram.types.chat.Chat.set_sticker_set aiogram.types.chat.Chat.set_title #: 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.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_all_messages
#: aiogram.types.chat.Chat.unpin_message of #: aiogram.types.chat.Chat.unpin_message of
msgid "Returns" msgid "Returns"
@ -1269,6 +1278,33 @@ msgstr ""
msgid "instance of method :class:`aiogram.methods.set_chat_photo.SetChatPhoto`" msgid "instance of method :class:`aiogram.methods.set_chat_photo.SetChatPhoto`"
msgstr "" 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 "" #~ msgid ""
#~ "Use this method to get information " #~ "Use this method to get information "
#~ "about a member of a chat. The " #~ "about a member of a chat. The "

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -173,6 +173,10 @@ msgstr ""
msgid "*Optional*. Message is a sticker, information about the sticker" msgid "*Optional*. Message is a sticker, information about the sticker"
msgstr "" 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 #: ../../docstring aiogram.types.message.Message.video:1 of
msgid "*Optional*. Message is a video, information about the video" msgid "*Optional*. Message is a video, information about the video"
msgstr "" msgstr ""

View file

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

View file

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

View file

@ -8,106 +8,110 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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 #: ../../dispatcher/filters/magic_data.rst:3
msgid "MagicData" msgid "MagicData"
msgstr "" 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 #: aiogram.filters.magic_data.MagicData:1 of
msgid "This filter helps to filter event with contextual data" msgid "This filter helps to filter event with contextual data"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:10 #: ../../dispatcher/filters/magic_data.rst:18
msgid "Can be imported:" msgid "Can be imported:"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:12 #: ../../dispatcher/filters/magic_data.rst:20
msgid ":code:`from aiogram.filters import MagicData`" msgid ":code:`from aiogram.filters import MagicData`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:15 #: ../../dispatcher/filters/magic_data.rst:24
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
msgid "Allowed handlers" msgid "Allowed handlers"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:23 #: ../../dispatcher/filters/magic_data.rst:26
msgid "Allowed update types for this filter:" msgid "Allowed update types for this filter:"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:25 #: ../../dispatcher/filters/magic_data.rst:28
msgid ":code:`message`" msgid ":code:`message`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:26 #: ../../dispatcher/filters/magic_data.rst:29
msgid ":code:`edited_message`" msgid ":code:`edited_message`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:27 #: ../../dispatcher/filters/magic_data.rst:30
msgid ":code:`channel_post`" msgid ":code:`channel_post`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:28 #: ../../dispatcher/filters/magic_data.rst:31
msgid ":code:`edited_channel_post`" msgid ":code:`edited_channel_post`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:29 #: ../../dispatcher/filters/magic_data.rst:32
msgid ":code:`inline_query`" msgid ":code:`inline_query`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:30 #: ../../dispatcher/filters/magic_data.rst:33
msgid ":code:`chosen_inline_result`" msgid ":code:`chosen_inline_result`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:31 #: ../../dispatcher/filters/magic_data.rst:34
msgid ":code:`callback_query`" msgid ":code:`callback_query`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:32 #: ../../dispatcher/filters/magic_data.rst:35
msgid ":code:`shipping_query`" msgid ":code:`shipping_query`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:33 #: ../../dispatcher/filters/magic_data.rst:36
msgid ":code:`pre_checkout_query`" msgid ":code:`pre_checkout_query`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:34 #: ../../dispatcher/filters/magic_data.rst:37
msgid ":code:`poll`" msgid ":code:`poll`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:35 #: ../../dispatcher/filters/magic_data.rst:38
msgid ":code:`poll_answer`" msgid ":code:`poll_answer`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:36 #: ../../dispatcher/filters/magic_data.rst:39
msgid ":code:`my_chat_member`" msgid ":code:`my_chat_member`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:37 #: ../../dispatcher/filters/magic_data.rst:40
msgid ":code:`chat_member`" msgid ":code:`chat_member`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:38 #: ../../dispatcher/filters/magic_data.rst:41
msgid ":code:`chat_join_request`" msgid ":code:`chat_join_request`"
msgstr "" msgstr ""
#: ../../dispatcher/filters/magic_data.rst:39 #: ../../dispatcher/filters/magic_data.rst:42
msgid ":code:`error`" msgid ":code:`error`"
msgstr "" msgstr ""

View file

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

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,15 +18,7 @@ msgstr ""
"Generated-By: Babel 2.12.1\n" "Generated-By: Babel 2.12.1\n"
#: ../../../README.rst:3 #: ../../../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 "" msgstr ""
#: ../../../README.rst:-1 #: ../../../README.rst:-1
@ -61,7 +53,7 @@ msgstr ""
msgid "Codecov" msgid "Codecov"
msgstr "" msgstr ""
#: ../../../README.rst:40 #: ../../../README.rst:37
msgid "" msgid ""
"**aiogram** is a modern and fully asynchronous framework for `Telegram " "**aiogram** is a modern and fully asynchronous framework for `Telegram "
"Bot API <https://core.telegram.org/bots/api>`_ written in Python 3.8 " "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>`_." "`aiohttp <https://github.com/aio-libs/aiohttp>`_."
msgstr "" msgstr ""
#: ../../../README.rst:45 #: ../../../README.rst:42
msgid "Make your bots faster and more powerful!" msgid "Make your bots faster and more powerful!"
msgstr "" msgstr ""
#: ../../../README.rst:50 #: ../../../README.rst:47
msgid "Documentation:" msgid "Documentation:"
msgstr "" msgstr ""
#: ../../../README.rst:48 #: ../../../README.rst:45
msgid "🇺🇸 `English <https://docs.aiogram.dev/en/dev-3.x/>`_" msgid "🇺🇸 `English <https://docs.aiogram.dev/en/dev-3.x/>`_"
msgstr "" msgstr ""
#: ../../../README.rst:49 #: ../../../README.rst:46
msgid "🇺🇦 `Ukrainian <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_" msgid "🇺🇦 `Ukrainian <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_"
msgstr "" msgstr ""
#: ../../../README.rst:54 #: ../../../README.rst:50
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
msgid "Features" msgid "Features"
msgstr "" msgstr ""
#: ../../../README.rst:63 #: ../../../README.rst:52
msgid "" msgid ""
"Asynchronous (`asyncio docs " "Asynchronous (`asyncio docs "
"<https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)" "<https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)"
msgstr "" msgstr ""
#: ../../../README.rst:64 #: ../../../README.rst:53
msgid "" msgid ""
"Has type hints (:pep:`484`) and can be used with `mypy <http://mypy-" "Has type hints (:pep:`484`) and can be used with `mypy <http://mypy-"
"lang.org/>`_" "lang.org/>`_"
msgstr "" msgstr ""
#: ../../../README.rst:65 #: ../../../README.rst:54
msgid "Supports `PyPy <https://www.pypy.org/>`_" msgid "Supports `PyPy <https://www.pypy.org/>`_"
msgstr "" msgstr ""
#: ../../../README.rst:66 #: ../../../README.rst:55
msgid "" 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" " gets fast updates to the latest versions of the Bot API"
msgstr "" msgstr ""
#: ../../../README.rst:67 #: ../../../README.rst:56
msgid "" msgid ""
"Telegram Bot API integration code was `autogenerated " "Telegram Bot API integration code was `autogenerated "
"<https://github.com/aiogram/tg-codegen>`_ and can be easily re-generated " "<https://github.com/aiogram/tg-codegen>`_ and can be easily re-generated "
"when API gets updated" "when API gets updated"
msgstr "" msgstr ""
#: ../../../README.rst:68 #: ../../../README.rst:57
msgid "Updates router (Blueprints)" msgid "Updates router (Blueprints)"
msgstr "" msgstr ""
#: ../../../README.rst:69 #: ../../../README.rst:58
msgid "Has Finite State Machine" msgid "Has Finite State Machine"
msgstr "" msgstr ""
#: ../../../README.rst:70 #: ../../../README.rst:59
msgid "" msgid ""
"Uses powerful `magic filters " "Uses powerful `magic filters "
"<https://docs.aiogram.dev/en/dev-3.x/dispatcher/filters/magic_filters.html" "<https://docs.aiogram.dev/en/latest/dispatcher/filters/magic_filters.html"
"#magic-filters>`" "#magic-filters>`_"
msgstr "" msgstr ""
#: ../../../README.rst:71 #: ../../../README.rst:60
msgid "Middlewares (incoming updates and API calls)" msgid "Middlewares (incoming updates and API calls)"
msgstr "" msgstr ""
#: ../../../README.rst:72 #: ../../../README.rst:61
msgid "" msgid ""
"Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-" "Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-"
"can-i-make-requests-in-response-to-updates>`_" "can-i-make-requests-in-response-to-updates>`_"
msgstr "" msgstr ""
#: ../../../README.rst:73 #: ../../../README.rst:62
msgid "Integrated I18n/L10n support with GNU Gettext (or Fluent)" msgid "Integrated I18n/L10n support with GNU Gettext (or Fluent)"
msgstr "" msgstr ""
#: ../../../README.rst:78 #: ../../../README.rst:67
msgid "" msgid ""
"It is strongly advised that you have prior experience working with " "It is strongly advised that you have prior experience working with "
"`asyncio <https://docs.python.org/3/library/asyncio.html>`_ before " "`asyncio <https://docs.python.org/3/library/asyncio.html>`_ before "
"beginning to use **aiogram**." "beginning to use **aiogram**."
msgstr "" msgstr ""
#: ../../../README.rst:82 #: ../../../README.rst:71
msgid "If you have any questions, you can visit our community chats on Telegram:" msgid "If you have any questions, you can visit our community chats on Telegram:"
msgstr "" msgstr ""
#: ../../../README.rst:84 #: ../../../README.rst:73
msgid "🇺🇸 `@aiogram <https://t.me/aiogram>`_" msgid "🇺🇸 `@aiogram <https://t.me/aiogram>`_"
msgstr "" msgstr ""
#: ../../../README.rst:85 #: ../../../README.rst:74
msgid "🇺🇦 `@aiogramua <https://t.me/aiogramua>`_" msgid "🇺🇦 `@aiogramua <https://t.me/aiogramua>`_"
msgstr "" msgstr ""
#: ../../../README.rst:86 #: ../../../README.rst:75
msgid "🇺🇿 `@aiogram_uz <https://t.me/aiogram_uz>`_" msgid "🇺🇿 `@aiogram_uz <https://t.me/aiogram_uz>`_"
msgstr "" msgstr ""
#: ../../../README.rst:87 #: ../../../README.rst:76
msgid "🇰🇿 `@aiogram_kz <https://t.me/aiogram_kz>`_" msgid "🇰🇿 `@aiogram_kz <https://t.me/aiogram_kz>`_"
msgstr "" msgstr ""
#: ../../../README.rst:88 #: ../../../README.rst:77
msgid "🇷🇺 `@aiogram_ru <https://t.me/aiogram_ru>`_" msgid "🇷🇺 `@aiogram_ru <https://t.me/aiogram_ru>`_"
msgstr "" msgstr ""
#: ../../../README.rst:89 #: ../../../README.rst:78
msgid "🇮🇷 `@aiogram_fa <https://t.me/aiogram_fa>`_" msgid "🇮🇷 `@aiogram_fa <https://t.me/aiogram_fa>`_"
msgstr "" msgstr ""
#: ../../../README.rst:90 #: ../../../README.rst:79
msgid "🇮🇹 `@aiogram_it <https://t.me/aiogram_it>`_" msgid "🇮🇹 `@aiogram_it <https://t.me/aiogram_it>`_"
msgstr "" msgstr ""
#: ../../../README.rst:91 #: ../../../README.rst:80
msgid "🇧🇷 `@aiogram_br <https://t.me/aiogram_br>`_" msgid "🇧🇷 `@aiogram_br <https://t.me/aiogram_br>`_"
msgstr "" msgstr ""
@ -236,3 +216,34 @@ msgstr ""
#~ " updates to the latest versions of" #~ " updates to the latest versions of"
#~ " the Bot API" #~ " the Bot API"
#~ msgstr "" #~ 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 "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -99,17 +99,24 @@ msgid ""
"accessed via :code:`data[\"bot\"]`." "accessed via :code:`data[\"bot\"]`."
msgstr "" 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" msgid "Filtering events"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:48 #: ../../migration_2_to_3.rst:49
msgid "" msgid ""
"Keyword filters can no more be used, use filters explicitly. (`Read more " "Keyword filters can no more be used, use filters explicitly. (`Read more "
"» <https://github.com/aiogram/aiogram/issues/942>`_)" "» <https://github.com/aiogram/aiogram/issues/942>`_)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:49 #: ../../migration_2_to_3.rst:50
msgid "" msgid ""
"In due to keyword filters was removed all enabled by default filters " "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 " "(state and content_type now is not enabled), so you should specify them "
@ -118,19 +125,19 @@ msgid ""
"use :code:`@router.message(F.photo)`" "use :code:`@router.message(F.photo)`"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:53 #: ../../migration_2_to_3.rst:54
msgid "" msgid ""
"Most of common filters is replaced by \"magic filter\". (:ref:`Read more " "Most of common filters is replaced by \"magic filter\". (:ref:`Read more "
"» <magic-filters>`)" "» <magic-filters>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:54 #: ../../migration_2_to_3.rst:55
msgid "" msgid ""
"Now by default message handler receives any content type, if you want " "Now by default message handler receives any content type, if you want "
"specific one just add the filters (Magic or any other)" "specific one just add the filters (Magic or any other)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:56 #: ../../migration_2_to_3.rst:57
msgid "" msgid ""
"State filter now is not enabled by default, that's mean if you using " "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 " ":code:`state=\"*\"` in v2 then you should not pass any state filter in "
@ -138,38 +145,38 @@ msgid ""
"specify the state." "specify the state."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:59 #: ../../migration_2_to_3.rst:60
msgid "" msgid ""
"Added possibility to register per-router global filters, that helps to " "Added possibility to register per-router global filters, that helps to "
"reduces the number of repetitions in the code and makes easily way to " "reduces the number of repetitions in the code and makes easily way to "
"control for what each router will be used." "control for what each router will be used."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:65 #: ../../migration_2_to_3.rst:66
msgid "Bot API" msgid "Bot API"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:67 #: ../../migration_2_to_3.rst:68
msgid "" msgid ""
"Now all API methods is classes with validation (via `pydantic " "Now all API methods is classes with validation (via `pydantic "
"<https://docs.pydantic.dev/>`_) (all API calls is also available as " "<https://docs.pydantic.dev/>`_) (all API calls is also available as "
"methods in the Bot class)." "methods in the Bot class)."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:69 #: ../../migration_2_to_3.rst:70
msgid "" msgid ""
"Added more pre-defined Enums and moved into `aiogram.enums` sub-package. " "Added more pre-defined Enums and moved into `aiogram.enums` sub-package. "
"For example chat type enum now is :class:`aiogram.enums.ChatType` instead" "For example chat type enum now is :class:`aiogram.enums.ChatType` instead"
" of :class:`aiogram.types.chat.ChatType`. (:ref:`Read more » <enums>`)" " of :class:`aiogram.types.chat.ChatType`. (:ref:`Read more » <enums>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:72 #: ../../migration_2_to_3.rst:73
msgid "" msgid ""
"Separated HTTP client session into container that can be reused between " "Separated HTTP client session into container that can be reused between "
"different Bot instances in the application." "different Bot instances in the application."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:74 #: ../../migration_2_to_3.rst:75
msgid "" msgid ""
"API Exceptions is no more classified by specific message in due to " "API Exceptions is no more classified by specific message in due to "
"Telegram has no documented error codes. But all errors is classified by " "Telegram has no documented error codes. But all errors is classified by "
@ -179,17 +186,17 @@ msgid ""
"types>`)" "types>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:81 #: ../../migration_2_to_3.rst:82
msgid "Middlewares" msgid "Middlewares"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:83 #: ../../migration_2_to_3.rst:84
msgid "" msgid ""
"Middlewares can now control a execution context, e.g. using context " "Middlewares can now control a execution context, e.g. using context "
"managers (:ref:`Read more » <middlewares>`)" "managers (:ref:`Read more » <middlewares>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:84 #: ../../migration_2_to_3.rst:85
msgid "" msgid ""
"All contextual data now is shared between middlewares, filters and " "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" "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." "same way as in the handlers via keyword arguments."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:87 #: ../../migration_2_to_3.rst:88
msgid "" msgid ""
"Added mechanism named **flags**, that helps to customize handler behavior" "Added mechanism named **flags**, that helps to customize handler behavior"
" in conjunction with middlewares. (:ref:`Read more » <flags>`)" " in conjunction with middlewares. (:ref:`Read more » <flags>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:92 #: ../../migration_2_to_3.rst:93
msgid "Keyboard Markup" msgid "Keyboard Markup"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:94 #: ../../migration_2_to_3.rst:95
msgid "" msgid ""
"Now :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup` " "Now :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup` "
"and :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` has " "and :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` has "
"no methods to extend it, instead you have to use markup builders " "no methods to extend it, instead you have to use markup builders "
":class:`aiogram.utils.keyboard.ReplyKeyboardBuilder` and " ":class:`aiogram.utils.keyboard.ReplyKeyboardBuilder` and "
":class:`aiogram.utils.keyboard.KeyboardBuilder` respectively (:ref:`Read " ":class:`aiogram.utils.keyboard.KeyboardBuilder` respectively (:ref:`Read "
"more » <keyboard-builder>`)" "more » <Keyboard builder>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:102 #: ../../migration_2_to_3.rst:103
msgid "Callbacks data" msgid "Callbacks data"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:104 #: ../../migration_2_to_3.rst:105
msgid "" msgid ""
"Callback data factory now is strictly typed via `pydantic " "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>`)" "factory>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:109 #: ../../migration_2_to_3.rst:110
msgid "Finite State machine" msgid "Finite State machine"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:111 #: ../../migration_2_to_3.rst:112
msgid "" msgid ""
"State filter will no more added to all handlers, you will need to specify" "State filter will no more added to all handlers, you will need to specify"
" state if you want" " state if you want"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:112 #: ../../migration_2_to_3.rst:113
msgid "" msgid ""
"Added possibility to change FSM strategy, for example if you want to " "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 " "control state for each user in chat topics instead of user in chat you "
"can specify it in the Dispatcher." "can specify it in the Dispatcher."
msgstr "" 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" msgid "Sending Files"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:119 #: ../../migration_2_to_3.rst:127
msgid "" msgid ""
"From now you should wrap sending files into InputFile object before send " "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" "instead of passing IO object directly to the API method. (:ref:`Read more"
" » <sending-files>`)" " » <sending-files>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:124 #: ../../migration_2_to_3.rst:132
msgid "Webhook" msgid "Webhook"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:126 #: ../../migration_2_to_3.rst:134
msgid "Simplified aiohttp web app configuration" msgid "Simplified aiohttp web app configuration"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:127 #: ../../migration_2_to_3.rst:135
msgid "" msgid ""
"By default added possibility to upload files when you use reply into " "By default added possibility to upload files when you use reply into "
"webhook" "webhook"
msgstr "" 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 "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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 #: ../../api/types/chat.rst:3
msgid "Chat" msgid "Chat"
@ -88,6 +88,13 @@ msgid ""
":class:`aiogram.methods.get_chat.GetChat`." ":class:`aiogram.methods.get_chat.GetChat`."
msgstr "" 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 #: ../../docstring aiogram.types.chat.Chat.bio:1 of
msgid "" msgid ""
"*Optional*. Bio of the other party in a private chat. Returned only in " "*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_sticker_set:4
#: aiogram.types.chat.Chat.set_title:4 aiogram.types.chat.Chat.unban: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.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_all_messages:4
#: aiogram.types.chat.Chat.unpin_message:4 of #: aiogram.types.chat.Chat.unpin_message:4 of
msgid ":code:`chat_id`" 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_permissions aiogram.types.chat.Chat.set_photo
#: aiogram.types.chat.Chat.set_sticker_set aiogram.types.chat.Chat.set_title #: 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.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_all_messages
#: aiogram.types.chat.Chat.unpin_message of #: aiogram.types.chat.Chat.unpin_message of
msgid "Returns" msgid "Returns"
@ -1269,6 +1278,33 @@ msgstr ""
msgid "instance of method :class:`aiogram.methods.set_chat_photo.SetChatPhoto`" msgid "instance of method :class:`aiogram.methods.set_chat_photo.SetChatPhoto`"
msgstr "" 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 "" #~ msgid ""
#~ "Use this method to get information " #~ "Use this method to get information "
#~ "about a member of a chat. The " #~ "about a member of a chat. The "
@ -1288,4 +1324,3 @@ msgstr ""
#~ "by administrators that were appointed by" #~ "by administrators that were appointed by"
#~ " him)" #~ " him)"
#~ msgstr "" #~ msgstr ""

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -173,6 +173,10 @@ msgstr ""
msgid "*Optional*. Message is a sticker, information about the sticker" msgid "*Optional*. Message is a sticker, information about the sticker"
msgstr "" 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 #: ../../docstring aiogram.types.message.Message.video:1 of
msgid "*Optional*. Message is a video, information about the video" msgid "*Optional*. Message is a video, information about the video"
msgstr "" msgstr ""

View file

@ -8,14 +8,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\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 #: ../../api/types/poll_answer.rst:3
msgid "PollAnswer" msgid "PollAnswer"
@ -33,12 +33,29 @@ msgstr ""
msgid "Unique poll identifier" msgid "Unique poll identifier"
msgstr "" 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 #: ../../docstring aiogram.types.poll_answer.PollAnswer.option_ids:1 of
msgid "" msgid ""
"0-based identifiers of answer options, chosen by the user. May be empty " "0-based identifiers of chosen answer options. May be empty if the vote "
"if the user retracted their vote." "was retracted."
msgstr "" 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 "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -78,112 +78,112 @@ msgstr ""
msgid "Activate the environment" msgid "Activate the environment"
msgstr "" msgstr ""
#: ../../contributing.rst:38 #: ../../contributing.rst:38 ../../contributing.rst:77
msgid "Linux/ macOS:" msgid "Linux / macOS:"
msgstr "" msgstr ""
#: ../../contributing.rst:44 #: ../../contributing.rst:44
msgid "Windows PoweShell" msgid "Windows cmd"
msgstr "" msgstr ""
#: ../../contributing.rst:50 #: ../../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" msgid "Windows PowerShell"
msgstr "" msgstr ""
#: ../../contributing.rst:65 #: ../../contributing.rst:56
msgid "" 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:" "environment to avoid errors on next steps:"
msgstr "" msgstr ""
#: ../../contributing.rst:74 #: ../../contributing.rst:73
msgid "Setup project" msgid "Setup project"
msgstr "" msgstr ""
#: ../../contributing.rst:76 #: ../../contributing.rst:75
msgid "" msgid ""
"After activating the environment install `aiogram` from sources and their" "After activating the environment install `aiogram` from sources and their"
" dependencies:" " dependencies."
msgstr "" msgstr ""
#: ../../contributing.rst:82 #: ../../contributing.rst:83
msgid "Windows:"
msgstr ""
#: ../../contributing.rst:89
msgid "" msgid ""
"It will install :code:`aiogram` in editable mode into your virtual " "It will install :code:`aiogram` in editable mode into your virtual "
"environment and all dependencies." "environment and all dependencies."
msgstr "" msgstr ""
#: ../../contributing.rst:85 #: ../../contributing.rst:92
msgid "Making changes in code" msgid "Making changes in code"
msgstr "" msgstr ""
#: ../../contributing.rst:87 #: ../../contributing.rst:94
msgid "" msgid ""
"At this point you can make any changes in the code that you want, it can " "At this point you can make any changes in the code that you want, it can "
"be any fixes, implementing new features or experimenting." "be any fixes, implementing new features or experimenting."
msgstr "" msgstr ""
#: ../../contributing.rst:92 #: ../../contributing.rst:99
msgid "Format the code (code-style)" msgid "Format the code (code-style)"
msgstr "" msgstr ""
#: ../../contributing.rst:94 #: ../../contributing.rst:101
msgid "" msgid ""
"Note that this project is Black-formatted, so you should follow that " "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-style, too be sure You're correctly doing this let's reformat the "
"code automatically:" "code automatically:"
msgstr "" msgstr ""
#: ../../contributing.rst:104 #: ../../contributing.rst:111
msgid "Run tests" msgid "Run tests"
msgstr "" msgstr ""
#: ../../contributing.rst:106 #: ../../contributing.rst:113
msgid "All changes should be tested:" msgid "All changes should be tested:"
msgstr "" msgstr ""
#: ../../contributing.rst:112 #: ../../contributing.rst:119
msgid "" msgid ""
"Also if you are doing something with Redis-storage, you will need to test" "Also if you are doing something with Redis-storage, you will need to test"
" everything works with Redis:" " everything works with Redis:"
msgstr "" msgstr ""
#: ../../contributing.rst:119 #: ../../contributing.rst:126
msgid "Docs" msgid "Docs"
msgstr "" msgstr ""
#: ../../contributing.rst:121 #: ../../contributing.rst:128
msgid "" msgid ""
"We are using `Sphinx` to render docs in different languages, all sources " "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 " "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:" "you can start live-preview server and look what you are doing:"
msgstr "" msgstr ""
#: ../../contributing.rst:130 #: ../../contributing.rst:137
msgid "Docs translations" msgid "Docs translations"
msgstr "" msgstr ""
#: ../../contributing.rst:132 #: ../../contributing.rst:139
msgid "" msgid ""
"Translation of the documentation is very necessary and cannot be done " "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 " "without the help of the community from all over the world, so you are "
"welcome to translate the documentation into different languages." "welcome to translate the documentation into different languages."
msgstr "" msgstr ""
#: ../../contributing.rst:136 #: ../../contributing.rst:143
msgid "Before start, let's up to date all texts:" msgid "Before start, let's up to date all texts:"
msgstr "" msgstr ""
#: ../../contributing.rst:144 #: ../../contributing.rst:151
msgid "" msgid ""
"Change the :code:`<language_code>` in example below to the target " "Change the :code:`<language_code>` in example below to the target "
"language code, after that you can modify texts inside " "language code, after that you can modify texts inside "
@ -192,120 +192,120 @@ msgid ""
"example via `poedit <https://poedit.net/>`_." "example via `poedit <https://poedit.net/>`_."
msgstr "" msgstr ""
#: ../../contributing.rst:149 #: ../../contributing.rst:156
msgid "To view results:" msgid "To view results:"
msgstr "" msgstr ""
#: ../../contributing.rst:157 #: ../../contributing.rst:164
msgid "Describe changes" msgid "Describe changes"
msgstr "" msgstr ""
#: ../../contributing.rst:159 #: ../../contributing.rst:166
msgid "" msgid ""
"Describe your changes in one or more sentences so that bot developers " "Describe your changes in one or more sentences so that bot developers "
"know what's changed in their favorite framework - create " "know what's changed in their favorite framework - create "
"`<code>.<category>.rst` file and write the description." "`<code>.<category>.rst` file and write the description."
msgstr "" msgstr ""
#: ../../contributing.rst:162 #: ../../contributing.rst:169
msgid "" msgid ""
":code:`<code>` is Issue or Pull-request number, after release link to " ":code:`<code>` is Issue or Pull-request number, after release link to "
"this issue will be published to the *Changelog* page." "this issue will be published to the *Changelog* page."
msgstr "" msgstr ""
#: ../../contributing.rst:165 #: ../../contributing.rst:172
msgid ":code:`<category>` is a changes category marker, it can be one of:" msgid ":code:`<category>` is a changes category marker, it can be one of:"
msgstr "" msgstr ""
#: ../../contributing.rst:167 #: ../../contributing.rst:174
msgid ":code:`feature` - when you are implementing new feature" msgid ":code:`feature` - when you are implementing new feature"
msgstr "" msgstr ""
#: ../../contributing.rst:168 #: ../../contributing.rst:175
msgid ":code:`bugfix` - when you fix a bug" msgid ":code:`bugfix` - when you fix a bug"
msgstr "" msgstr ""
#: ../../contributing.rst:169 #: ../../contributing.rst:176
msgid ":code:`doc` - when you improve the docs" msgid ":code:`doc` - when you improve the docs"
msgstr "" msgstr ""
#: ../../contributing.rst:170 #: ../../contributing.rst:177
msgid ":code:`removal` - when you remove something from the framework" msgid ":code:`removal` - when you remove something from the framework"
msgstr "" msgstr ""
#: ../../contributing.rst:171 #: ../../contributing.rst:178
msgid "" msgid ""
":code:`misc` - when changed something inside the Core or project " ":code:`misc` - when changed something inside the Core or project "
"configuration" "configuration"
msgstr "" msgstr ""
#: ../../contributing.rst:173 #: ../../contributing.rst:180
msgid "" msgid ""
"If you have troubles with changing category feel free to ask Core-" "If you have troubles with changing category feel free to ask Core-"
"contributors to help with choosing it." "contributors to help with choosing it."
msgstr "" msgstr ""
#: ../../contributing.rst:176 #: ../../contributing.rst:183
msgid "Complete" msgid "Complete"
msgstr "" msgstr ""
#: ../../contributing.rst:178 #: ../../contributing.rst:185
msgid "" msgid ""
"After you have made all your changes, publish them to the repository and " "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 " "create a pull request as mentioned at the beginning of the article and "
"wait for a review of these changes." "wait for a review of these changes."
msgstr "" msgstr ""
#: ../../contributing.rst:183 #: ../../contributing.rst:190
msgid "Star on GitHub" msgid "Star on GitHub"
msgstr "" msgstr ""
#: ../../contributing.rst:185 #: ../../contributing.rst:192
msgid "" msgid ""
"You can \"star\" repository on GitHub - " "You can \"star\" repository on GitHub - "
"https://github.com/aiogram/aiogram (click the star button at the top " "https://github.com/aiogram/aiogram (click the star button at the top "
"right)" "right)"
msgstr "" msgstr ""
#: ../../contributing.rst:187 #: ../../contributing.rst:194
msgid "" msgid ""
"Adding stars makes it easier for other people to find this project and " "Adding stars makes it easier for other people to find this project and "
"understand how useful it is." "understand how useful it is."
msgstr "" msgstr ""
#: ../../contributing.rst:190 #: ../../contributing.rst:197
msgid "Guides" msgid "Guides"
msgstr "" msgstr ""
#: ../../contributing.rst:192 #: ../../contributing.rst:199
msgid "" msgid ""
"You can write guides how to develop Bots on top of aiogram and publish it" "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 " " into YouTube, Medium, GitHub Books, any Courses platform or any other "
"platform that you know." "platform that you know."
msgstr "" msgstr ""
#: ../../contributing.rst:195 #: ../../contributing.rst:202
msgid "" msgid ""
"This will help more people learn about the framework and learn how to use" "This will help more people learn about the framework and learn how to use"
" it" " it"
msgstr "" msgstr ""
#: ../../contributing.rst:199 #: ../../contributing.rst:206
msgid "Take answers" msgid "Take answers"
msgstr "" msgstr ""
#: ../../contributing.rst:201 #: ../../contributing.rst:208
msgid "" msgid ""
"The developers is always asks for any question in our chats or any other " "The developers is always asks for any question in our chats or any other "
"platforms like GitHub Discussions, StackOverflow and others, feel free to" "platforms like GitHub Discussions, StackOverflow and others, feel free to"
" answer to this questions." " answer to this questions."
msgstr "" msgstr ""
#: ../../contributing.rst:205 #: ../../contributing.rst:212
msgid "Funding" msgid "Funding"
msgstr "" msgstr ""
#: ../../contributing.rst:207 #: ../../contributing.rst:214
msgid "" msgid ""
"The development of the project is free and not financed by commercial " "The development of the project is free and not financed by commercial "
"organizations, it is my personal initiative (`@JRootJunior " "organizations, it is my personal initiative (`@JRootJunior "
@ -313,7 +313,7 @@ msgid ""
"project in my free time." "project in my free time."
msgstr "" msgstr ""
#: ../../contributing.rst:211 #: ../../contributing.rst:218
msgid "" msgid ""
"So, if you want to financially support the project, or, for example, give" "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 " " me a pizza or a beer, you can do it on `OpenCollective "
@ -328,3 +328,31 @@ msgstr ""
#~ "<https://opencollective.com/aiogram>`_ or `Patreon " #~ "<https://opencollective.com/aiogram>`_ or `Patreon "
#~ "<https://www.patreon.com/aiogram>`_." #~ "<https://www.patreon.com/aiogram>`_."
#~ msgstr "" #~ 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 "" msgstr ""
"Project-Id-Version: aiogram\n" "Project-Id-Version: aiogram\n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: 2022-12-10 19:44+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -38,12 +38,13 @@ msgstr ""
"обробників, фільтрів і т.п. ви можете знайти на наступних сторінках:" "обробників, фільтрів і т.п. ви можете знайти на наступних сторінках:"
#: ../../dispatcher/dispatcher.rst:9 #: ../../dispatcher/dispatcher.rst:9
msgid "`Router <router.html>`__" #, fuzzy
msgid ":ref:`Router <Router>`"
msgstr "`Router <router.html>`__" msgstr "`Router <router.html>`__"
#: ../../dispatcher/dispatcher.rst:10 #: ../../dispatcher/dispatcher.rst:10
msgid "`Observer <observer.html>`__" msgid ":ref:`Filtering events`"
msgstr "`Observer <observer.html>`__" msgstr ""
#: aiogram.dispatcher.dispatcher.Dispatcher:1 #: aiogram.dispatcher.dispatcher.Dispatcher:1
#: aiogram.dispatcher.dispatcher.Dispatcher.__init__:1 of #: aiogram.dispatcher.dispatcher.Dispatcher.__init__:1 of
@ -186,3 +187,6 @@ msgstr ""
#~ msgid "Poling timeout" #~ msgid "Poling timeout"
#~ msgstr "Час очікування на відповідь" #~ msgstr "Час очікування на відповідь"
#~ msgid "`Observer <observer.html>`__"
#~ msgstr "`Observer <observer.html>`__"

View file

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

View file

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

View file

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

View file

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,17 +18,9 @@ msgstr ""
"Generated-By: Babel 2.12.1\n" "Generated-By: Babel 2.12.1\n"
#: ../../../README.rst:3 #: ../../../README.rst:3
msgid "aiogram |beta badge|" msgid "aiogram"
msgstr "" msgstr ""
#: ../../../README.rst:94
msgid "Beta badge"
msgstr ""
#: ../../../README.rst:6
msgid "This version is still in development!"
msgstr "Ще в розробці!"
#: ../../../README.rst:-1 #: ../../../README.rst:-1
msgid "MIT License" msgid "MIT License"
msgstr "" msgstr ""
@ -61,7 +53,7 @@ msgstr "Тести"
msgid "Codecov" msgid "Codecov"
msgstr "" msgstr ""
#: ../../../README.rst:40 #: ../../../README.rst:37
msgid "" msgid ""
"**aiogram** is a modern and fully asynchronous framework for `Telegram " "**aiogram** is a modern and fully asynchronous framework for `Telegram "
"Bot API <https://core.telegram.org/bots/api>`_ written in Python 3.8 " "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://docs.python.org/3/library/asyncio.html>`_ та `aiohttp "
"<https://github.com/aio-libs/aiohttp>`_." "<https://github.com/aio-libs/aiohttp>`_."
#: ../../../README.rst:45 #: ../../../README.rst:42
msgid "Make your bots faster and more powerful!" msgid "Make your bots faster and more powerful!"
msgstr "Зробіть своїх ботів швидшими та потужнішими!" msgstr "Зробіть своїх ботів швидшими та потужнішими!"
#: ../../../README.rst:50 #: ../../../README.rst:47
msgid "Documentation:" msgid "Documentation:"
msgstr "Документація" msgstr "Документація"
#: ../../../README.rst:48 #: ../../../README.rst:45
msgid "🇺🇸 `English <https://docs.aiogram.dev/en/dev-3.x/>`_" msgid "🇺🇸 `English <https://docs.aiogram.dev/en/dev-3.x/>`_"
msgstr "🇺🇸 `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/>`_" msgid "🇺🇦 `Ukrainian <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_"
msgstr "🇺🇦 `Українською <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_" msgstr "🇺🇦 `Українською <https://docs.aiogram.dev/uk_UA/dev-3.x/>`_"
#: ../../../README.rst:54 #: ../../../README.rst:50
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
msgid "Features" msgid "Features"
msgstr "Особливості" msgstr "Особливості"
#: ../../../README.rst:63 #: ../../../README.rst:52
msgid "" msgid ""
"Asynchronous (`asyncio docs " "Asynchronous (`asyncio docs "
"<https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)" "<https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)"
@ -114,7 +94,7 @@ msgstr ""
"Асинхронність (`asyncio docs " "Асинхронність (`asyncio docs "
"<https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)" "<https://docs.python.org/3/library/asyncio.html>`_, :pep:`492`)"
#: ../../../README.rst:64 #: ../../../README.rst:53
msgid "" msgid ""
"Has type hints (:pep:`484`) and can be used with `mypy <http://mypy-" "Has type hints (:pep:`484`) and can be used with `mypy <http://mypy-"
"lang.org/>`_" "lang.org/>`_"
@ -122,20 +102,20 @@ msgstr ""
"Має анотації типів (:pep:`484`) та може використовуватись з `mypy <http" "Має анотації типів (:pep:`484`) та може використовуватись з `mypy <http"
"://mypy-lang.org/>`_" "://mypy-lang.org/>`_"
#: ../../../README.rst:65 #: ../../../README.rst:54
msgid "Supports `PyPy <https://www.pypy.org/>`_" msgid "Supports `PyPy <https://www.pypy.org/>`_"
msgstr "Працює з `PyPy <https://www.pypy.org/>`_" msgstr "Працює з `PyPy <https://www.pypy.org/>`_"
#: ../../../README.rst:66 #: ../../../README.rst:55
#, fuzzy #, fuzzy
msgid "" 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" " gets fast updates to the latest versions of the Bot API"
msgstr "" msgstr ""
"Підтримує `Telegram Bot API 6.3 <https://core.telegram.org/bots/api>`_ та" "Підтримує `Telegram Bot API 6.3 <https://core.telegram.org/bots/api>`_ та"
" швидко отримує оновлення до нових версії АПІ" " швидко отримує оновлення до нових версії АПІ"
#: ../../../README.rst:67 #: ../../../README.rst:56
msgid "" msgid ""
"Telegram Bot API integration code was `autogenerated " "Telegram Bot API integration code was `autogenerated "
"<https://github.com/aiogram/tg-codegen>`_ and can be easily re-generated " "<https://github.com/aiogram/tg-codegen>`_ and can be easily re-generated "
@ -145,28 +125,28 @@ msgstr ""
"/tg-codegen>`_ що надає змогу дуже легко оновлювати фреймворк до останніх" "/tg-codegen>`_ що надає змогу дуже легко оновлювати фреймворк до останніх"
" версій АПІ" " версій АПІ"
#: ../../../README.rst:68 #: ../../../README.rst:57
msgid "Updates router (Blueprints)" msgid "Updates router (Blueprints)"
msgstr "Має роутери подій (Blueprints)" msgstr "Має роутери подій (Blueprints)"
#: ../../../README.rst:69 #: ../../../README.rst:58
msgid "Has Finite State Machine" msgid "Has Finite State Machine"
msgstr "Має вбудований кінцевий автомат" msgstr "Має вбудований кінцевий автомат"
#: ../../../README.rst:70 #: ../../../README.rst:59
msgid "" msgid ""
"Uses powerful `magic filters " "Uses powerful `magic filters "
"<https://docs.aiogram.dev/en/dev-3.x/dispatcher/filters/magic_filters.html" "<https://docs.aiogram.dev/en/latest/dispatcher/filters/magic_filters.html"
"#magic-filters>`" "#magic-filters>`_"
msgstr "" msgstr ""
#: ../../../README.rst:71 #: ../../../README.rst:60
msgid "Middlewares (incoming updates and API calls)" msgid "Middlewares (incoming updates and API calls)"
msgstr "" msgstr ""
"Підтримує мідлвари (для вхідних подій від АПІ та для вихідних запитів до " "Підтримує мідлвари (для вхідних подій від АПІ та для вихідних запитів до "
"АПІ)" "АПІ)"
#: ../../../README.rst:72 #: ../../../README.rst:61
msgid "" msgid ""
"Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-" "Provides `Replies into Webhook <https://core.telegram.org/bots/faq#how-"
"can-i-make-requests-in-response-to-updates>`_" "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-" "<https://core.telegram.org/bots/faq#how-can-i-make-requests-in-response-"
"to-updates>`_" "to-updates>`_"
#: ../../../README.rst:73 #: ../../../README.rst:62
msgid "Integrated I18n/L10n support with GNU Gettext (or Fluent)" msgid "Integrated I18n/L10n support with GNU Gettext (or Fluent)"
msgstr "" msgstr ""
"Має вбудовану інтеграцію для використання інтернаціоналізації та " "Має вбудовану інтеграцію для використання інтернаціоналізації та "
"локалізації GNU Gettext (або Fluent)" "локалізації GNU Gettext (або Fluent)"
#: ../../../README.rst:78 #: ../../../README.rst:67
msgid "" msgid ""
"It is strongly advised that you have prior experience working with " "It is strongly advised that you have prior experience working with "
"`asyncio <https://docs.python.org/3/library/asyncio.html>`_ before " "`asyncio <https://docs.python.org/3/library/asyncio.html>`_ before "
@ -191,39 +171,39 @@ msgstr ""
"починати використовувати цей фреймворк. `asyncio " "починати використовувати цей фреймворк. `asyncio "
"<https://docs.python.org/3/library/asyncio.html>`_" "<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:" msgid "If you have any questions, you can visit our community chats on Telegram:"
msgstr "Якщо є якість додаткові запитання, ласкаво просимо до онлайн-спільнот:" msgstr "Якщо є якість додаткові запитання, ласкаво просимо до онлайн-спільнот:"
#: ../../../README.rst:84 #: ../../../README.rst:73
msgid "🇺🇸 `@aiogram <https://t.me/aiogram>`_" msgid "🇺🇸 `@aiogram <https://t.me/aiogram>`_"
msgstr "" msgstr ""
#: ../../../README.rst:85 #: ../../../README.rst:74
msgid "🇺🇦 `@aiogramua <https://t.me/aiogramua>`_" msgid "🇺🇦 `@aiogramua <https://t.me/aiogramua>`_"
msgstr "" msgstr ""
#: ../../../README.rst:86 #: ../../../README.rst:75
msgid "🇺🇿 `@aiogram_uz <https://t.me/aiogram_uz>`_" msgid "🇺🇿 `@aiogram_uz <https://t.me/aiogram_uz>`_"
msgstr "" msgstr ""
#: ../../../README.rst:87 #: ../../../README.rst:76
msgid "🇰🇿 `@aiogram_kz <https://t.me/aiogram_kz>`_" msgid "🇰🇿 `@aiogram_kz <https://t.me/aiogram_kz>`_"
msgstr "" msgstr ""
#: ../../../README.rst:88 #: ../../../README.rst:77
msgid "🇷🇺 `@aiogram_ru <https://t.me/aiogram_ru>`_" msgid "🇷🇺 `@aiogram_ru <https://t.me/aiogram_ru>`_"
msgstr "💩 `@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>`_" msgid "🇮🇷 `@aiogram_fa <https://t.me/aiogram_fa>`_"
msgstr "" msgstr ""
#: ../../../README.rst:90 #: ../../../README.rst:79
msgid "🇮🇹 `@aiogram_it <https://t.me/aiogram_it>`_" msgid "🇮🇹 `@aiogram_it <https://t.me/aiogram_it>`_"
msgstr "" msgstr ""
#: ../../../README.rst:91 #: ../../../README.rst:80
msgid "🇧🇷 `@aiogram_br <https://t.me/aiogram_br>`_" msgid "🇧🇷 `@aiogram_br <https://t.me/aiogram_br>`_"
msgstr "" msgstr ""
@ -237,3 +217,27 @@ msgstr "Зміст"
#~ msgid "[Telegram] aiogram live" #~ msgid "[Telegram] aiogram live"
#~ msgstr "" #~ 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 "" msgstr ""
"Project-Id-Version: aiogram \n" "Project-Id-Version: aiogram \n"
"Report-Msgid-Bugs-To: \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" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -99,17 +99,24 @@ msgid ""
"accessed via :code:`data[\"bot\"]`." "accessed via :code:`data[\"bot\"]`."
msgstr "" 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" msgid "Filtering events"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:48 #: ../../migration_2_to_3.rst:49
msgid "" msgid ""
"Keyword filters can no more be used, use filters explicitly. (`Read more " "Keyword filters can no more be used, use filters explicitly. (`Read more "
"» <https://github.com/aiogram/aiogram/issues/942>`_)" "» <https://github.com/aiogram/aiogram/issues/942>`_)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:49 #: ../../migration_2_to_3.rst:50
msgid "" msgid ""
"In due to keyword filters was removed all enabled by default filters " "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 " "(state and content_type now is not enabled), so you should specify them "
@ -118,19 +125,19 @@ msgid ""
"use :code:`@router.message(F.photo)`" "use :code:`@router.message(F.photo)`"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:53 #: ../../migration_2_to_3.rst:54
msgid "" msgid ""
"Most of common filters is replaced by \"magic filter\". (:ref:`Read more " "Most of common filters is replaced by \"magic filter\". (:ref:`Read more "
"» <magic-filters>`)" "» <magic-filters>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:54 #: ../../migration_2_to_3.rst:55
msgid "" msgid ""
"Now by default message handler receives any content type, if you want " "Now by default message handler receives any content type, if you want "
"specific one just add the filters (Magic or any other)" "specific one just add the filters (Magic or any other)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:56 #: ../../migration_2_to_3.rst:57
msgid "" msgid ""
"State filter now is not enabled by default, that's mean if you using " "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 " ":code:`state=\"*\"` in v2 then you should not pass any state filter in "
@ -138,38 +145,38 @@ msgid ""
"specify the state." "specify the state."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:59 #: ../../migration_2_to_3.rst:60
msgid "" msgid ""
"Added possibility to register per-router global filters, that helps to " "Added possibility to register per-router global filters, that helps to "
"reduces the number of repetitions in the code and makes easily way to " "reduces the number of repetitions in the code and makes easily way to "
"control for what each router will be used." "control for what each router will be used."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:65 #: ../../migration_2_to_3.rst:66
msgid "Bot API" msgid "Bot API"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:67 #: ../../migration_2_to_3.rst:68
msgid "" msgid ""
"Now all API methods is classes with validation (via `pydantic " "Now all API methods is classes with validation (via `pydantic "
"<https://docs.pydantic.dev/>`_) (all API calls is also available as " "<https://docs.pydantic.dev/>`_) (all API calls is also available as "
"methods in the Bot class)." "methods in the Bot class)."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:69 #: ../../migration_2_to_3.rst:70
msgid "" msgid ""
"Added more pre-defined Enums and moved into `aiogram.enums` sub-package. " "Added more pre-defined Enums and moved into `aiogram.enums` sub-package. "
"For example chat type enum now is :class:`aiogram.enums.ChatType` instead" "For example chat type enum now is :class:`aiogram.enums.ChatType` instead"
" of :class:`aiogram.types.chat.ChatType`. (:ref:`Read more » <enums>`)" " of :class:`aiogram.types.chat.ChatType`. (:ref:`Read more » <enums>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:72 #: ../../migration_2_to_3.rst:73
msgid "" msgid ""
"Separated HTTP client session into container that can be reused between " "Separated HTTP client session into container that can be reused between "
"different Bot instances in the application." "different Bot instances in the application."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:74 #: ../../migration_2_to_3.rst:75
msgid "" msgid ""
"API Exceptions is no more classified by specific message in due to " "API Exceptions is no more classified by specific message in due to "
"Telegram has no documented error codes. But all errors is classified by " "Telegram has no documented error codes. But all errors is classified by "
@ -179,17 +186,17 @@ msgid ""
"types>`)" "types>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:81 #: ../../migration_2_to_3.rst:82
msgid "Middlewares" msgid "Middlewares"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:83 #: ../../migration_2_to_3.rst:84
msgid "" msgid ""
"Middlewares can now control a execution context, e.g. using context " "Middlewares can now control a execution context, e.g. using context "
"managers (:ref:`Read more » <middlewares>`)" "managers (:ref:`Read more » <middlewares>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:84 #: ../../migration_2_to_3.rst:85
msgid "" msgid ""
"All contextual data now is shared between middlewares, filters and " "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" "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." "same way as in the handlers via keyword arguments."
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:87 #: ../../migration_2_to_3.rst:88
msgid "" msgid ""
"Added mechanism named **flags**, that helps to customize handler behavior" "Added mechanism named **flags**, that helps to customize handler behavior"
" in conjunction with middlewares. (:ref:`Read more » <flags>`)" " in conjunction with middlewares. (:ref:`Read more » <flags>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:92 #: ../../migration_2_to_3.rst:93
msgid "Keyboard Markup" msgid "Keyboard Markup"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:94 #: ../../migration_2_to_3.rst:95
msgid "" msgid ""
"Now :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup` " "Now :class:`aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup` "
"and :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` has " "and :class:`aiogram.types.reply_keyboard_markup.ReplyKeyboardMarkup` has "
"no methods to extend it, instead you have to use markup builders " "no methods to extend it, instead you have to use markup builders "
":class:`aiogram.utils.keyboard.ReplyKeyboardBuilder` and " ":class:`aiogram.utils.keyboard.ReplyKeyboardBuilder` and "
":class:`aiogram.utils.keyboard.KeyboardBuilder` respectively (:ref:`Read " ":class:`aiogram.utils.keyboard.KeyboardBuilder` respectively (:ref:`Read "
"more » <keyboard-builder>`)" "more » <Keyboard builder>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:102 #: ../../migration_2_to_3.rst:103
msgid "Callbacks data" msgid "Callbacks data"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:104 #: ../../migration_2_to_3.rst:105
msgid "" msgid ""
"Callback data factory now is strictly typed via `pydantic " "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>`)" "factory>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:109 #: ../../migration_2_to_3.rst:110
msgid "Finite State machine" msgid "Finite State machine"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:111 #: ../../migration_2_to_3.rst:112
msgid "" msgid ""
"State filter will no more added to all handlers, you will need to specify" "State filter will no more added to all handlers, you will need to specify"
" state if you want" " state if you want"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:112 #: ../../migration_2_to_3.rst:113
msgid "" msgid ""
"Added possibility to change FSM strategy, for example if you want to " "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 " "control state for each user in chat topics instead of user in chat you "
"can specify it in the Dispatcher." "can specify it in the Dispatcher."
msgstr "" 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" msgid "Sending Files"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:119 #: ../../migration_2_to_3.rst:127
msgid "" msgid ""
"From now you should wrap sending files into InputFile object before send " "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" "instead of passing IO object directly to the API method. (:ref:`Read more"
" » <sending-files>`)" " » <sending-files>`)"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:124 #: ../../migration_2_to_3.rst:132
msgid "Webhook" msgid "Webhook"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:126 #: ../../migration_2_to_3.rst:134
msgid "Simplified aiohttp web app configuration" msgid "Simplified aiohttp web app configuration"
msgstr "" msgstr ""
#: ../../migration_2_to_3.rst:127 #: ../../migration_2_to_3.rst:135
msgid "" msgid ""
"By default added possibility to upload files when you use reply into " "By default added possibility to upload files when you use reply into "
"webhook" "webhook"
msgstr "" 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, 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` instead you have to use markup builders :class:`aiogram.utils.keyboard.ReplyKeyboardBuilder`
and :class:`aiogram.utils.keyboard.KeyboardBuilder` respectively and :class:`aiogram.utils.keyboard.KeyboardBuilder` respectively
(:ref:`Read more » <keyboard-builder>`) (:ref:`Read more » <Keyboard builder>`)
Callbacks data Callbacks data
============== ==============
- Callback data factory now is strictly typed via `pydantic <https://docs.pydantic.dev/>`_ models - 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 Finite State machine

View file

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