Simple aiogram translation plugin built using pydantic.
Project description
Aiogram translation plugin
Installation
python -m pip install -U aiogram-translation
Documentation
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!"
link_lang_message = "This must be {orig_lang} language, but it become {linked_lang} language 🤷"
class Russian(BaseTranslation):
key = "ru"
name = "Русский (Russian)"
start_message = "👋 Привет, я бот"
start_button = "❤️ Нажми на меня"
start_button_alert = "🎉 Ура!"
link_lang_message = "Это должен был быть {orig_lang} язык, но он превратился в {linked_lang} язык 🤷"
class Ukrainian(BaseTranslation):
# Was translated from Russian with Yandex Translate, so sorry if it got wrong
key = "uk"
name = "Український (Ukrainian)"
start_message = "👋 Привіт, я бот"
start_button = "❤️ Натисни на мене"
start_button_alert = "🎉 Ура!"
link_lang_message = "Це мало бути {orig_lang} мова, але вона перетворилася на {linked_lang} мова 🤷"
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for aiogram-translation-1.2.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57d1494e9b288c8c8aa5bc0781af2c75786ff2a3c32c86a7ec0ccc0fa9d5298b |
|
MD5 | 3b750d1b0b9bd23a37e726059fba4e94 |
|
BLAKE2b-256 | e45b5f238bba867020970f2f3c16ab330b06bf082c9295c04a2d178772f95b37 |
Close
Hashes for aiogram_translation-1.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e7f402a9a7ff270a52d740f6306fda3ec573584d6f55325874657b214f12951 |
|
MD5 | dc26162b42bd4209c45a0d6564b1e637 |
|
BLAKE2b-256 | 3264d5b35efa614fc58a4a1ce9f4d2580495ffd92da16c353263139e26e424db |