Skip to main content

Aiogram Translation Plugin 🌐

Supported Python versions PyPI version PyPI downloads wakatime

About 📘

The Aiogram Translation Plugin is a convenient and powerful tool for integrating multilingual support into Aiogram-based Telegram bots. It enables seamless translation and language handling, making your bot accessible to a wider, global audience.

Installation 📥

python -m pip install -U aiogram-translation 

Usage 🛠️

To use the Aiogram Translation Plugin in your bot, import the necessary classes from aiogram_translation. Set up your languages, default language, and register the translator with your dispatcher. Here's a basic example:

main.py

from aiogram import Dispatcher, Bot, F
from aiogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery

from aiogram_translation import Translator
from translations import *

from os import getenv

bot = Bot(getenv("TELEGRAM_TOKEN"))
dispatcher = Dispatcher()
translator = Translator()

translator.include([
    English(),
    Russian(),
    Ukrainian()
])
translator.set_default('ru')
translator.register(dispatcher)


@dispatcher.message()
async def on_message(message: Message, language: BaseTranslation):
    kb = InlineKeyboardMarkup(resize_keyboard=True, inline_keyboard=[[InlineKeyboardButton(text=language.start_button,
                                                                                           callback_data="hoooray")]])
    await message.reply(language.start_message, reply_markup=kb)


@dispatcher.callback_query(F.data == "hoooray")
async def on_hooray(query: CallbackQuery, language: BaseTranslation):
    await query.answer(language.start_button_alert, show_alert=True)


dispatcher.run_polling(bot)

translations.py

from aiogram_translation.models import BaseTranslationBuilder


class BaseTranslation(BaseTranslationBuilder):
    start_message: str
    start_button: str
    start_button_alert: str

    link_lang_message: str


class English(BaseTranslation):
    key = "en"
    name = "English"

    start_message = "👋 Hi, I'm bot!"
    start_button = "❤️ Click me!"
    start_button_alert = "🎉 Hooray!"


class Russian(BaseTranslation):
    key = "ru"
    name = "Русский (Russian)"

    start_message = "👋 Привет, я бот"
    start_button = "❤️ Нажми на меня"
    start_button_alert = "🎉 Ура!"


class Ukrainian(BaseTranslation):
    key = "uk"
    name = "Український (Ukrainian)"

    start_message = "👋 Привіт, я бот"
    start_button = "❤️ Натисни на мене"
    start_button_alert = "🎉 Ура!"

Troubleshooting 🚨

If you encounter issues or have queries, feel free to check our Issues section on GitHub.

Contribution 🤝

Contributions are welcome. Please fork the repository, make your changes, and submit a pull request.

License 📜

This project is licensed under the MIT License - see the LICENSE file for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiogram_translation-2.0.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiogram_translation-2.0.1-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file aiogram_translation-2.0.1.tar.gz.

File metadata

  • Download URL: aiogram_translation-2.0.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.0 Darwin/23.1.0

File hashes

Hashes for aiogram_translation-2.0.1.tar.gz
Algorithm Hash digest
SHA256 ac84d99ad3f4c0f12d55ead058d6130b591919337f93dc3a6c91410b20c7c3bf
MD5 41e6392cceec0bd46cac078f3fd071de
BLAKE2b-256 537c3469cebb42f8149a6bbcd4b479ccd0eb6ddba8c96d25aa7a2368e51e0b12

See more details on using hashes here.

File details

Details for the file aiogram_translation-2.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for aiogram_translation-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1edd0b941ddd79d902dad83fb03dff1782f881ea86fa24f458ce7fd73cf13b3b
MD5 6d92775d3debc71cb0570598b96932bf
BLAKE2b-256 1674fdf90f807f594e4a9130e0378276b6f9b8a6ce2fafaaf0a48ad6df95c359

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.0.1 This release

2 files

2.0

2 files

1.3

2 files

1.2.2.1

2 files

1.2.1

2 files

1.2

2 files

1.1

2 files

1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page