DzenIT

HOME ZEN IT SOFT APK LIVE GAME OTHER W CONTACT SEARCH

Телеграм бот переводчик на python

Эффективное общение имеет важное значение в современном взаимосвязанном мире. Тем не менее, языковой барьер часто представляет собой проблему. Чтобы преодолеть это, частные лица и предприятия полагаются на услуги переводчиков, чтобы облегчить беспрепятственное общение на разных языках.

С ростом использования приложений для обмена сообщениями, таких как Telegram, разработчики создали ботов Telegram, которые предлагают услуги перевода. В этом руководстве представлены рекомендации по созданию бота-переводчика Telegram с использованием Python. С помощью этого инструмента пользователи могут легко переводить сообщения в режиме реального времени. Независимо от того, являетесь ли вы разработчиком, который хочет создать собственного бота, или вам просто интересно узнать, как работают эти боты, этот учебник шаг за шагом проведет вас через весь процесс.

Сам код:

import os
from aiogram import Bot, Dispatcher, types, executor
from translate import Translator

# Create a Telegram bot instance
bot = Bot(token='YOUR_TOKEN_HERE')

# Set up the dispatcher
dp = Dispatcher(bot)

# Define a dictionary of available languages and their corresponding translation options
languages = {
    'en-ru': {'from_lang': 'en', 'to_lang': 'ru', 'text': 'English to Russian'},
    'en-pt': {'from_lang': 'en', 'to_lang': 'pt', 'text': 'English to Portuguese'},
    'en-fr': {'from_lang': 'en', 'to_lang': 'fr', 'text': 'English to France'},
	'en-it': {'from_lang': 'en', 'to_lang': 'it', 'text': 'English to Italia'},
	'ru-en': {'from_lang': 'ru', 'to_lang': 'en', 'text': 'Russian to English'},
	'ru-pt': {'from_lang': 'ru', 'to_lang': 'pt', 'text': 'Russian to Portuguese'},
	'ru-fr': {'from_lang': 'ru', 'to_lang': 'fr', 'text': 'Russian to France'},
}

# Set up the default translator with ru-en option
translator = Translator(from_lang=languages['ru-en']['from_lang'], to_lang=languages['ru-en']['to_lang'])

# Define a handler for incoming messages
@dp.message_handler(commands=['start', 'menu'])
async def start(message: types.Message):
    # Send the user a message with the language options
    keyboard = types.InlineKeyboardMarkup(row_width=2)
    buttons = []
    for key in languages:
        buttons.append(types.InlineKeyboardButton(text=languages[key]['text'], callback_data=key))
    keyboard.add(*buttons)
    await message.answer("Select a translation direction:", reply_markup=keyboard)

@dp.callback_query_handler()
async def process_callback(callback_query: types.CallbackQuery):
    global translator

    # Set up the translator with the selected language option
    translator = Translator(from_lang=languages[callback_query.data]['from_lang'],
                                to_lang=languages[callback_query.data]['to_lang'])

    # Send the user a message with the selected language option
    await bot.answer_callback_query(callback_query.id)
    await bot.send_message(callback_query.from_user.id, f"Selected translation direction: {languages[callback_query.data]['text']}")

@dp.message_handler()
async def translate_message(message: types.Message):
    global translator

    # Translate the incoming message
    translated_text = translator.translate(message.text)

    # Send the translated text back to the user
    await message.answer(translated_text)


# Start the bot
if __name__ == '__main__':
    executor.start_polling(dp)

Вам останется только создать бота в @BotFather и полученный токен добавить в YOUR_TOKEN_HERE.

Если хотите добавить язык, нужно добавить строку в переменную languages, например:

'pt-it': {'from_lang': 'en', 'to_lang': 'it', 'text': 'Portuguese to Italia'}



Добавит перевод с Португальского на Итальянский язык

Сам репозиторий на github: https://github.com/lotositsh/telegram-bot-translator