Files
telegram-downloader/module/language.py
T
yuming cf40343c51
部署到群晖 / deploy (push) Failing after 10m45s
初始化 telegram-downloader 并接入群晖 CI/CD
2026-04-22 21:29:03 +08:00

285 lines
16 KiB
Python

"""Multi language support"""
# disable pylint: disable = C0301
from enum import Enum
class Language(Enum):
"""Language for ui"""
EN = 1 # english
ZH = 2 # china
RU = 3 # russian
UA = 4 # ukrainian
_language = Language.EN
def set_language(language: Language):
"""Set Lanaguage"""
# pylint: disable = W0603
global _language
_language = language
translations = {
"Forward": ["转发", "Переслать", "Переслати"],
"Total": ["总数", "Всего", "Всього"],
"Success": ["成功", "Успешно", "Успішно"],
"Failed": ["失败", "Не удалось", "Не вдалося"],
"Skipped": ["跳过", "Пропущено", "Пропущено"],
"Message ID": ["消息ID", "ID сообщения", "ID повідомлення"],
"Telegram Media Downloader": [
"电报媒体下载器",
"Telegram Media Downloader",
"Telegram Media Downloader",
],
"Version": ["版本", "Версия", "Версія"],
"Downloading": ["下载", "Скачивание", "Скачування"],
"Available commands:": ["可用命令:", "Доступные команды:", "Доступні команди:"],
"Show available commands": [
"显示可用命令",
"Показать доступные команды",
"Показати доступні команди",
],
"Download messages": ["下载消息", "Скачать сообщения", "Скачати повідомлення"],
"Forward messages": ["转发消息", "Переслать сообщения", "Переслати повідомлення"],
"Listen for forwarded messages": [
"监听转发消息",
"Прослушивать пересланные сообщения",
"Прослуховувати переслані повідомлення",
],
"Set language": ["设置语言", "Установить язык", "Встановити мову"],
"**Note**: 1 means the start of the entire chat": [
"**注意**: 1表示整个聊天的开始",
"**Примечание**: 1 означает начало всего чата",
"**Увага**: 1 означає початок всього чату",
],
"0 means the end of the entire chat": [
"0表示整个聊天的结束",
"0 означает конец всего чата",
"0 означає кінець всього чату",
],
"means optional, not required": [
"表示可选项,非必填",
"означает необязательный параметр",
"означає необов'язковий параметр",
],
"To download the video, use the method to directly enter /download to view": [
"下载视频,使用方法直接输入/download查看",
"Чтобы скачать видео, введите /download для просмотра",
"Щоб скачати відео, введіть /download для перегляду",
],
"Forward video, use the method to directly enter /forward to view": [
"转发视频,使用方法直接输入/forward查看",
"Переслать видео, введите /forward для просмотра",
"Переслати відео, введіть /forward для перегляду",
],
"Listen forward, use the method to directly enter /listen_forward to view": [
"监控转发,使用方法直接输入/listen_forward查看",
"Слушать пересылку, введите /listen_forward для просмотра",
"Слухати пересилання, введіть /listen_forward для перегляду",
],
"Add download filter, use the method to directly enter /add_filter to view": [
"添加下载过滤器",
"Добавить фильтр загрузки, используйте метод, чтобы непосредственно ввести /add_filter для просмотра",
"Додати фільтр завантаження, використовуйте метод, щоб безпосередньо ввести /add_filter для перегляду",
],
"Help": ["帮助", "Помощь", "Допомога"],
"Invalid command format": [
"无效的命令格式",
"Неверный формат команды",
"Невірний формат команди",
],
"Invalid command format. Please use /set_language en/ru/zh/ua": [
"无效的命令格式。请使用 /set_language en/ru/zh/ua",
"Неверный формат команды. Пожалуйста, используйте /set_language en/ru/zh/ua",
"Невірний формат команди. Будь ласка, використовуйте /set_language en/ru/zh/ua",
],
"Language set to English": [
"语言设置为中文",
"Выбран английский язык",
"Обрано англійську мову",
],
"Language set to": [
"语言设置为",
"Выбран язык",
"Обрано мову",
],
"Invalid command format. Please use /add_filter your filter": [
"无效的命令格式。请使用 /add_filter 你的过滤规则",
"Неверный формат команды. Пожалуйста, используйте /add_filter ВашФильтр",
"Невірний формат команди. Будь ласка, використовуйте /add_filter ВашФільтр",
],
"Add download filter": [
"添加下载过滤器",
"Добавить фильтр скачивания",
"Додати фільтр скачування",
],
"Check error, please add again": [
"检验错误,请重新添加",
"Ошибка проверки, пожалуйста, добавьте еще раз",
"Помилка перевірки, будь ласка, додайте ще раз",
],
"Direct download, directly forward the message to your robot": [
"直接下载,直接转发消息给你的机器人",
"Скачивание напрямую, пересылка сообщения напрямую вашему роботу",
"Безпосереднє скачування, безспесередня пересилка повідомлення вашому роботу",
],
"Directly download a single message": [
"直接下载单条消息",
"Прямое скачивание одного сообщения",
"Безпосереднє скачування одного повідомлення",
],
"From": ["", "От", "Від"],
"download": ["下载", "скачать", "скачати"],
"error": ["错误", "ошибка", "помилка"],
"Parameter error, please enter according to the reference format": [
"参数错误,请根据参考格式输入",
"Ошибка параметра, введите в соответствии с форматом ссылки",
"Помилка параметра, введіть відповідно до формату посилання",
],
"Download all messages of common group": [
"下载公共群组的所有消息",
"Скачать все сообщения общей группы",
"Скачати всі повідомлення спільної групи",
],
"The private group (channel) link is a random group message link": [
"私密群组(频道) 链接为随便复制一条群组消息链接",
"Ссылка на частную группу (канал) - это ссылка на случайное сообщение группы",
"Посилання на приватну групу (канал) - це посилання на випадкове повідомлення групи",
],
"The download starts from the N message to the end of the M message": [
"下载从第N条消息开始的到第M条信息结束",
"Скачивание начинается с сообщения N до конца сообщения M",
"Скачування починається з повідомлення N до кінця повідомлення M",
],
"When M is 0, it means the last message. The filter is optional": [
"M为0的时候表示到最后一条信息,过滤器为可选",
"Когда M равно 0, это означает последнее сообщение. Фильтр необязателен",
"Коли M дорівнює 0, це означає останнє повідомлення. Фільтр необов'язковий",
],
"chat input error, please enter the channel or group link": [
"chat输入错误,请输入频道或群组的链接",
"Ошибка ввода чата, введите ссылку на канал или группу",
"Помилка введеня чату, введіть посилання на канал або групу",
],
"Error type": ["错误类型", "Тип ошибки", "Тип помилки"],
"Exception message": ["异常消息", "Сообщение исключения", "Повідомлення винятка"],
"Invalid chat link": [
"无效的聊天链接",
"Ошибочная ссылка на чат",
"Помилкове посилання на чат",
],
"Cannot be forwarded to this bot, will cause an infinite loop": [
"不能转发给该机器人,会导致无限循环",
"Невозможно переслать этому боту, это вызовет бесконечный цикл",
"Неможливо переслати цьому боту, це спричинить безкінечний цикл",
],
"Please use": ["请使用", "Пожалуйста, используйте", "Будь ласка, використовуйте"],
"Filter": ["过滤器", "Фильтр", "Фільтр"],
"Error forwarding message": [
"失败的转发消息",
"Ошибка пересылки сообщения",
"Помилка пересилки повідомлення",
],
"file reference expired, refetching": [
"文件引用过期,重新获取中",
"Ссылка на файл истекла, повторное получение",
"Посилання на файл минуло, повторне отримання",
],
"file reference expired for 3 retries, download skipped": [
"文件引用过期重试超过3次,跳过下载",
"Ссылка на файл истекла после 3 попыток, загрузка пропущена",
"Посилання на файл минуло після 3 спроб, завантаження пропущено",
],
"Timeout Error occurred when downloading Message": [
"下载消息超时错误",
"Ошибка времени ожидания при скачивании сообщения",
"Помилка часу очікування при скачуванні повідомлення",
],
"retrying": ["重试", "повторная попытка", "повторна спроба"],
"seconds": ["", "секунд", "секунд"],
"Timing out after 3 reties, download skipped": [
"超时重试超过3次,跳过下载",
"Истекло время ожидания после 3 попыток, загрузка пропущена",
"Час очікування закінчився після 3 спроб, завантаження пропущено",
],
"could not be downloaded due to following exception": [
"无法下载,因为以下异常",
"не может быть скачен по следующей причине",
"не може бути скачаний з наступної причини",
],
"Downloading files failed during last run": [
"下载最后一次运行失败的文件",
"Скачивание файлов не удалось во время последнего запуска",
"Скачування файлів не вдалося під час останнього запуску",
],
"Successfully started (Press Ctrl+C to stop)": [
"成功启动(按Ctrl+C停止)",
"Запуск успешный (нажмите Ctrl + C для остановки)",
"Запуск успішний (натисніть Ctrl + C для зупинки)",
],
"KeyboardInterrupt": ["键盘中断", "KeyboardInterrupt", "KeyboardInterrupt"],
"update config": ["更新配置", "обновить конфигурацию", "оновити конфігурацію"],
"Updated last read message_id to config file": [
"更新最后阅读消息ID到配置文件",
"Обновлен идентификатор последнего прочитанного сообщения в конфигурационном файле",
"Оновлено ідентифікатор останнього прочитаного повідомлення у конфігураційному файлі",
],
"total download": ["总下载", "всего скачено", "всього скачано"],
"total upload file": ["总上传文件", "всего скаченных файлов", "всього скачаних файлів"],
"Stopped": ["停止", "остановлено", "зупинено"],
"already download,download skipped": [
"已下载,已跳过下载",
"уже скачен, скачивание пропущена",
"вже скачан, скачування пропущено",
],
"Media downloaded with wrong size": [
"媒体下载错误的大小",
"Медиафайл скачен с неправильным размером",
"Медіафайл скачано з неправильним розміром",
],
"actual": ["实际", "фактический", "фактичний"],
"file name": ["文件名", "имя файла", "ім'я файлу"],
"Successfully downloaded": ["成功下载", "Успешно скачано", "Успішно скачано"],
"Get group and user info from message link": [
"从消息链接中获取群组和用户信息",
"Получить информацию о группе и пользователе по ссылке на сообщение",
"Отримайте інформацію про групу та користувача за посиланням у повідомленні",
],
"Upload Progresses": ["上传进度", "Прогресс загрузки", "Прогрес завантаження"],
"Download Progresses": ["下载进度", "Прогресс скачивания", "Прогрес завантаження"],
"New Version": ["新版本", "новая версия", "нова версія"],
"Stop bot download or forward": [
"停止机器人下载或转发",
"Остановить загрузку или пересылку ботом",
"Зупинити завантаження або пересилання ботом",
],
"Forward a specific media to a comment section": [
"将特定媒体转发至评论",
"Переслать определенное медиа в комментарии",
"Переслати конкретне медіа в коментарі",
],
}
def _t(text: str):
"""Get translation
Parameters
----------
text : str
language : str
Returns
-------
str
"""
if _language is Language.EN:
return text
if text in translations:
return translations[text][_language.value - 2]
return text