При выборе языка в телеграмм боте выдает ошибку

    import telebot
from forex_python.converter import CurrencyRates
from fuzzywuzzy import fuzz

# Initialize the Telegram Bot
bot = telebot.TeleBot('TOKEN')

# Initialize the CurrencyRates object
c = CurrencyRates()

# Supported currencies
currencies = {
    'usd': ('$','dollars'),
    'eur': ('€','euros'),
    'rub': ('₽','rubles'),
    'uah': ('₴','hryvnias'),
    'pln': ('zł','zlotys')
}

# Response messages
response_messages = {
    'en': {
        'start_message': 'Welcome to the Currency Converter Bot! Please select your preferred language:',
        'language_selected': 'Language selected: English',
        'conversion_success': 'Conversion from {} to {}:\n\n{} {} is approximately equal to {} {}',
        'invalid_currency': 'I\'m sorry, I couldn\'t recognize the currency. Please try again.'
    },
    'ru': {
        'start_message': 'Добро пожаловать в бот конвертер валют! Пожалуйста, выберите предпочитаемый язык:',
        'language_selected': 'Выбран язык: Русский',
        'conversion_success': 'Конвертация из {} в {}:\n\n{} {} примерно равно {} {}',
        'invalid_currency': 'Извините, я не смог распознать валюту. Пожалуйста, попробуйте еще раз.'
    },
    'uk': {
        'start_message': 'Ласкаво просимо до бота конвертера валют! Будь ласка, виберіть бажану мову:',
        'language_selected': 'Вибрана мова: Українська',
        'conversion_success': 'Конвертація з {} в {}:\n\n{} {} приблизно дорівнює {} {}',
        'invalid_currency': 'Вибачте, я не зміг розпізнати валюту. Будь ласка, спробуйте ще раз.'
    }
}

# Handler for /start command
@bot.message_handler(commands=['start'])
def handle_start(message):
    keyboard = telebot.types.ReplyKeyboardMarkup(row_width=2, one_time_keyboard=True)
    keyboard.add('English', 'Русский', 'Українська')
    bot.reply_to(message, response_messages['en']['start_message'], reply_markup=keyboard)

# Handler for language selection
@bot.message_handler(func=lambda message: message.text in ['English', 'Русский', 'Українська'])
def handle_language_selection(message):
    language = message.text.lower()
    response = response_messages[language]['language_selected']
    bot.reply_to(message, response)
    bot.send_message(message.chat.id, "Please enter your currency conversion request.")

# Handler for currency conversion request
@bot.message_handler(func=lambda message: True)
def handle_conversion_request(message):
    text = message.text.lower()
    language = 'en'  # Default language is English
    if message.from_user.language_code in ['ru', 'uk']:
        language = message.from_user.language_code
    elif message.from_user.language_code == 'ru':
        language = 'ru'
    elif message.from_user.language_code == 'uk':
        language = 'uk'

    source_currency = None
    target_currency = None

    # Check for currency codes or names in the user's message
    for code, (symbol, name) in currencies.items():
        if fuzz.partial_ratio(text, code) >= 80 or fuzz.partial_ratio(text, name) >= 80 or symbol in text:
            if source_currency is None:
                source_currency = code
            else:
                target_currency = code
                break

    if source_currency is not None and target_currency is not None:
        converted_amount = c.convert(source_currency, target_currency, 1)
        if converted_amount is not None:
            response = response_messages['en']['conversion_success'].format(
                source_currency.upper(),
                target_currency.upper(),
                source_currency.upper(),
                1,
                target_currency.upper(),
                round(converted_amount, 2)
            )
            bot.reply_to(message, response)
        else:
            bot.reply_to(message, response_messages['en']['invalid_currency'])
    else:
        bot.reply_to(message, response_messages['en']['invalid_currency'])

# Start the bot
bot.polling()

При выборе любого языка выдает ошибку:

Traceback (most recent call last):
  File "c:\bot.py", line 99, in <module>
    bot.polling()
  File "C:\Users\artem\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\__init__.py", line 1043, in polling
    self.__threaded_polling(non_stop=non_stop, interval=interval, timeout=timeout, long_polling_timeout=long_polling_timeout,
  File "C:\Users\artem\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\__init__.py", line 1118, in __threaded_polling
    raise e
  File "C:\Users\artem\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\__init__.py", line 1074, in __threaded_polling
    self.worker_pool.raise_exceptions()
  File "C:\Users\artem\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\util.py", line 148, in raise_exceptions
    raise self.exception_info
  File "C:\Users\artem\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\util.py", line 91, in run
    task(*args, **kwargs)
  File "C:\Users\artem\AppData\Local\Programs\Python\Python311\Lib\site-packages\telebot\__init__.py", line 6428, in _run_middlewares_and_handler
    result = handler['function'](message)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\bot.py", line 53, in handle_language_selection
    response = response_messages[language]['language_selected']
               ~~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'english'

Ответы (0 шт):