Files
Connex/localization.py
2025-09-15 00:47:01 +02:00

151 lines
9.7 KiB
Python
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# localization.py
locales = {
'en': {
# General
'welcome': "👋 Welcome!\n\nUse the menu to navigate.",
'welcome_admin': "👋 Welcome, Administrator!\n\nChoose an action:",
'back_to_menu': "⬅️ Back to Menu",
'main_menu': "🏠 Main Menu",
'error_not_found': "Not found.",
'under_development': "This section is under development.",
# Settings
'settings': "⚙️ Settings",
'choose_language': "Please choose your language:",
'language_changed': "Language has been changed to English 🇬🇧",
# User Menu
'my_configs_btn': "🔑 My Configurations",
'help_btn': "❓ Help",
'no_configs_yet': "You have no available configurations yet.",
'your_configs': "Your configurations:",
'next_action': "Choose the next action:",
'config_type': "Type",
# Help/Tutorials
'choose_tutorial': "Choose a tutorial you are interested in:",
'no_tutorials_yet': "No tutorials yet",
# Admin Menu
'manage_users_btn': "👤 User Management",
'manage_configs_btn': "🔑 Configuration Management",
'manage_tutorials_btn': "📚 Tutorial Management",
'mass_send_btn': "📢 Mass Messaging",
# User Management
'users_list': "👥 User List:",
'prev_btn': "⬅️ Prev.",
'next_btn': "➡️ Next.",
'add_user_btn': " Add User",
'manage_user_title': "Managing user:\nID: `{user_id}`\nUsername: @{username}",
'delete_user_btn': "🗑️ Delete User",
'back_to_list_btn': "⬅️ Back to List",
'user_deleted_ok': "User and their configurations have been deleted.",
'ask_for_user_id': "Enter the Telegram ID of the new user.\n\nTo cancel, press /start.",
'user_already_exists': "This user already exists in the database.",
'user_added_ok': "✅ User successfully added!",
'invalid_id_format': "Invalid format. Please enter a numerical Telegram ID.",
# Config Management
'choose_user_for_config': "Choose a user to manage their configurations:",
'user_configs_title': "User configurations:",
'delete_config_prefix': "🗑️",
'file_prefix': "File",
'add_config_btn': " Add Config",
'back_to_users_list_btn': "⬅️ Back to User List",
'config_deleted_ok': "Configuration deleted.",
'add_config_step1': "Step 1/2: Enter the configuration type (e.g., VLESS, WireGuard, SS).\nIf this is a file, the type will be used as its description.",
'add_config_step2': "Step 2/2: Now, send the configuration data (link, text, or **file**).",
'config_added_ok': "✅ Configuration successfully added!",
# Tutorial Management
'tutorials_menu_title': "Tutorial management menu:",
'delete_tutorial_prefix': "🗑️",
'add_tutorial_btn': " Add Tutorial",
'tutorial_deleted_ok': "Tutorial deleted.",
'add_tutorial_step1': "Step 1/3: Enter the tutorial title:",
'add_tutorial_step2': "Step 2/3: Enter the main text of the tutorial:",
'add_tutorial_step3': "Step 3/3: Now attach a photo or video. If no media is required, press 'Skip'.",
'skip_btn': "Skip Step ➡️",
'tutorial_added_ok_no_media': "✅ Tutorial without media added successfully.",
'tutorial_added_ok_with_media': "✅ Tutorial with media added successfully.",
# Mass Messaging
'mass_send_ask_message': "Enter the message for mass sending to all users. It will be copied and sent.",
'mass_send_confirm_message': "This message will be sent to all users. Confirm sending:",
'send_btn': "✅ Send",
'cancel_btn': "❌ Cancel",
'mass_send_cancelled': "Mass messaging cancelled.",
'mass_send_started': "⏳ Starting mass messaging...",
'mass_send_finished': "✅ Mass messaging finished!\n\nSuccessfully sent: {success_count}\nFailed to deliver: {fail_count}",
},
'ru': {
# General
'welcome': "👋 Добро пожаловать!\n\nИспользуйте меню для навигации.",
'welcome_admin': "👋 Добро пожаловать, Администратор!\n\nВыберите действие:",
'back_to_menu': "⬅️ Назад в меню",
'main_menu': "🏠 Главное меню",
'error_not_found': "Не найдено.",
'under_development': "Этот раздел находится в разработке.",
# Settings
'settings': "⚙️ Настройки",
'choose_language': "Пожалуйста, выберите язык:",
'language_changed': "Язык изменен на Русский 🇷🇺",
# User Menu
'my_configs_btn': "🔑 Мои конфигурации",
'help_btn': "❓ Помощь",
'no_configs_yet': "У вас пока нет доступных конфигураций.",
'your_configs': "Ваши конфигурации:",
'next_action': "Выберите следующее действие:",
'config_type': "Тип",
# Help/Tutorials
'choose_tutorial': "Выберите интересующий вас туториал:",
'no_tutorials_yet': "Туториалов пока нет",
# Admin Menu
'manage_users_btn': "👤 Управление пользователями",
'manage_configs_btn': "🔑 Управление конфигурациями",
'manage_tutorials_btn': "📚 Управление туториалами",
'mass_send_btn': "📢 Сделать рассылку",
# User Management
'users_list': "👥 Список пользователей:",
'prev_btn': "⬅️ Пред.",
'next_btn': "➡️ След.",
'add_user_btn': " Добавить пользователя",
'manage_user_title': "Управление пользователем:\nID: `{user_id}`\nUsername: @{username}",
'delete_user_btn': "🗑️ Удалить пользователя",
'back_to_list_btn': "⬅️ Назад к списку",
'user_deleted_ok': "Пользователь и его конфигурации удалены.",
'ask_for_user_id': "Введите Telegram ID нового пользователя.\n\nЧтобы отменить, нажмите /start.",
'user_already_exists': "Этот пользователь уже существует в базе.",
'user_added_ok': "✅ Пользователь успешно добавлен!",
'invalid_id_format': "❗️Неверный формат. Пожалуйста, введите числовой Telegram ID.",
# Config Management
'choose_user_for_config': "Выберите пользователя для управления его конфигурациями:",
'user_configs_title': "Конфигурации пользователя:",
'delete_config_prefix': "🗑️",
'file_prefix': "Файл",
'add_config_btn': " Добавить конфиг",
'back_to_users_list_btn': "⬅️ Назад к списку пользователей",
'config_deleted_ok': "Конфигурация удалена.",
'add_config_step1': "Шаг 1/2: Введите тип конфигурации (например, VLESS, WireGuard, SS).\nЕсли это файл, тип будет использован как его описание.",
'add_config_step2': "Шаг 2/2: Теперь отправьте данные конфигурации (ссылку, текст или **файл**).",
'config_added_ok': "✅ Конфигурация успешно добавлена!",
# Tutorial Management
'tutorials_menu_title': "Меню управления туториалами:",
'delete_tutorial_prefix': "🗑️",
'add_tutorial_btn': " Добавить туториал",
'tutorial_deleted_ok': "Туториал удален.",
'add_tutorial_step1': "Шаг 1/3: Введите заголовок туториала:",
'add_tutorial_step2': "Шаг 2/3: Введите основной текст туториала:",
'add_tutorial_step3': "Шаг 3/3: Теперь прикрепите фото или видео. Если медиа не требуется, нажмите 'Пропустить'.",
'skip_btn': "Пропустить шаг ➡️",
'tutorial_added_ok_no_media': "✅ Туториал без медиа успешно добавлен.",
'tutorial_added_ok_with_media': "✅ Туториал с медиа успешно добавлен.",
# Mass Messaging
'mass_send_ask_message': "Введите сообщение для рассылки всем пользователям. Оно будет скопировано и отправлено.",
'mass_send_confirm_message': "Это сообщение будет отправлено всем пользователям. Подтвердите рассылку:",
'send_btn': "✅ Отправить",
'cancel_btn': "❌ Отмена",
'mass_send_cancelled': "Рассылка отменена.",
'mass_send_started': "⏳ Начинаю рассылку...",
'mass_send_finished': "✅ Рассылка завершена!\n\nУспешно отправлено: {success_count}\nНе удалось доставить: {fail_count}",
}
}
def get_text(key: str, lang: str = 'en'):
"""Возвращает текст по ключу для заданного языка, с фолбэком на английский."""
return locales.get(lang, locales['en']).get(key, f"<{key}>")