# █ █ ▀ █▄▀ ▄▀█ █▀█ ▀ # █▀█ █ █ █ █▀█ █▀▄ █ # © Copyright 2022 # https://t.me/hikariatama # # 🔒 Licensed under the GNU AGPLv3 # 🌐 https://www.gnu.org/licenses/agpl-3.0.html import logging from telethon.tl.types import Message from .. import loader, translations, utils logger = logging.getLogger(__name__) @loader.tds class Translations(loader.Module): """Processes internal translations""" strings = { "name": "Translations", "lang_saved": "{} Language saved!", "pack_saved": ( "👍 Translate pack" " saved!" ), "incorrect_language": ( "🚫 Incorrect language" " specified" ), "lang_removed": ( "👍 Translations reset" " to default ones" ), "check_pack": ( "🚫 Invalid pack format" " in url" ), "check_url": ( "🚫 You need to specify" " valid url containing a langpack" ), "too_long": ( "📁 Command output seems" " to be too long, so it's sent in file." ), "opening_form": " Opening form...", "opening_gallery": " Opening gallery...", "opening_list": " Opening list...", "inline403": "🚫 You can't send inline units in this chat", "invoke_failed": "🚫 Unit invoke failed! More info in logs", "show_inline_cmds": "📄 Show all available inline commands", "no_inline_cmds": "You have no available commands", "no_inline_cmds_msg": ( "😔 There are no available inline commands or you lack access to them" ), "inline_cmds": "ℹ️ You have {} available command(-s)", "inline_cmds_msg": "ℹ️ Available inline commands:\n\n{}", "run_command": "🏌️ Run command", "command_msg": "🌘 Command «{}»\n\n{}", "command": "🌘 Command «{}»", "button403": "You are not allowed to press this button!", "keep_id": "⚠️ Do not remove ID! {}", } strings_ru = { "lang_saved": "{} Язык сохранён!", "pack_saved": ( "👍 Пакет переводов" " сохранён!" ), "incorrect_language": ( "🚫 Указан неверный" " язык" ), "lang_removed": ( "👍 Переводы сброшены" " на стандартные" ), "check_pack": ( "🚫 Неверный формат" " пакета переводов в ссылке" ), "check_url": ( "🚫 Вы должны указать" " ссылку, содержащую пакет переводов" ), "too_long": ( "📁 Вывод команды слишком" " длинный, поэтому он отправлен в файле." ), "opening_form": " Открываю форму...", "opening_gallery": " Открываю галерею...", "opening_list": " Открываю список...", "inline403": "🚫 Вы не можете отправлять встроенные элементы в этом чате", "invoke_failed": "🚫 Вызов модуля не удался! Подробнее в логах", "show_inline_cmds": "📄 Показать все доступные встроенные команды", "no_inline_cmds": "У вас нет доступных inline команд", "no_inline_cmds_msg": ( "😔 Нет доступных inline команд или у вас нет доступа к ним" ), "inline_cmds": "ℹ️ У вас {} доступная(-ых) команда(-ы)", "inline_cmds_msg": "ℹ️ Доступные inline команды:\n\n{}", "run_command": "🏌️ Выполнить команду", "command_msg": "🌘 Команда «{}»\n\n{}", "command": "🌘 Команда «{}»", "button403": "Вы не можете нажать на эту кнопку!", "keep_id": "⚠️ Не удаляйте ID! {}", } strings_de = { "lang_saved": "{} Sprache gespeichert!", "pack_saved": ( "👍 Übersetzungs" " Paket gespeichert!" ), "incorrect_language": ( "🚫 Falsche Sprache" " angegeben" ), "lang_removed": ( "👍 Übersetzungen" " auf Standard zurückgesetzt" ), "check_pack": ( "🚫 Ungültiges" " Übersetzungs Paket in der URL" ), "check_url": ( "🚫 Sie müssen eine" " gültige URL angeben, die ein Übersetzungs Paket enthält" ), "too_long": ( "📁 Befehlsausgabe scheint" " zu lang zu sein, daher wird sie in einer Datei gesendet." ), "opening_form": " Formular wird geöffnet...", "opening_gallery": " Galerie wird geöffnet...", "opening_list": " Liste wird geöffnet...", "inline403": "🚫 Sie können Inline-Einheiten in diesem Chat nicht senden", "invoke_failed": ( "🚫 Modulaufruf fehlgeschlagen! Weitere Informationen in den" " Protokollen" ), "show_inline_cmds": "📄 Zeige alle verfügbaren Inline-Befehle", "no_inline_cmds": "Sie haben keine verfügbaren Inline-Befehle", "no_inline_cmds_msg": ( "😔 Keine verfügbaren Inline-Befehle oder Sie haben keinen Zugriff" " auf sie" ), "inline_cmds": "ℹ️ Sie haben {} verfügbare(n) Befehl(e)", "inline_cmds_msg": "ℹ️ Verfügbare Inline-Befehle:\n\n{}", "run_command": "🏌️ Befehl ausführen", "command_msg": "🌘 Befehl «{}»\n\n{}", "command": "🌘 Befehl «{}»", "button403": "Sie können auf diese Schaltfläche nicht klicken!", "keep_id": "⚠️ Löschen sie das ID nicht! {}", } strings_tr = { "lang_saved": "{} Dil kaydedildi!", "pack_saved": ( "👍 Çeviri paketi" " kaydedildi!" ), "incorrect_language": ( "🚫 Yanlış dil" " belirtildi" ), "lang_removed": ( "👍 Çeviriler varsayılan" " hale getirildi" ), "check_pack": ( "🚫 URL'deki çeviri" " paketi geçersiz" ), "check_url": ( "🚫 Geçerli bir URL" " belirtmelisiniz" ), "too_long": ( "📁 Komut çıktısı çok uzun" " görünüyor, bu yüzden dosya olarak gönderildi." ), "opening_form": " Form açılıyor...", "opening_gallery": " Galeri açılıyor...", "opening_list": " Liste açılıyor...", "inline403": "🚫 Bu sohbete satır içi birimler gönderemezsin", "invoke_failed": ( "🚫 Modül çağrısı başarısız! Kayıtlardan daha fazla bilgiye" " erişebilirsin" ), "show_inline_cmds": "📄 Tüm kullanılabilir inline komutlarını göster", "no_inline_cmds": "Kullanılabilir inline komutunuz yok", "no_inline_cmds_msg": ( "😔 Kullanılabilir inline komutunuz yok veya erişiminiz yok" ), "inline_cmds": "ℹ️ {} kullanılabilir komutunuz var", "inline_cmds_msg": "ℹ️ Kullanılabilir inline komutlar:\n\n{}", "run_command": "🏌️ Komutu çalıştır", "command_msg": "🌘 Komut «{}»\n\n{}", "command": "🌘 Komut «{}»", "button403": "Bu düğmeye basamazsınız!", "keep_id": "⚠️ ID'yi silmeyin! {}", } strings_uz = { "lang_saved": "{} Til saqlandi!", "pack_saved": ( "👍 Tarjima paketi" " saqlandi!" ), "incorrect_language": ( "🚫 Noto'g'ri til" " belgilandi" ), "lang_removed": ( "👍 Tarjimalar" " standart holatga qaytarildi" ), "check_pack": ( "🚫 URL'dagi tarjima" " paketi noto'g'ri" ), "check_url": ( "🚫 Siz noto'g'ri URL" " belirtdingiz" ), "too_long": ( "📁 Bajarilgan buyruq" " natijasi juda uzun, shuning uchun fayl sifatida yuborildi." ), "opening_form": " Formani ochish...", "opening_gallery": " Galeriyani ochish...", "opening_list": " Ro'yxatni ochish...", "inline403": ( "🚫 Siz bu guruhda inline obyektlarni yuborishingiz mumkin emas" ), "invoke_failed": ( "🚫 Modulni chaqirish muvaffaqiyatsiz! Batafsil ma'lumotlar" " jurnallarda" ), "show_inline_cmds": "📄 Barcha mavjud inline buyruqlarini ko'rsatish", "no_inline_cmds": "Sizda mavjud inline buyruqlar yo'q", "no_inline_cmds_msg": ( "😔 Sizda mavjud inline buyruqlar yo'q yoki ularga kirish huquqingiz" " yo'q" ), "inline_cmds": "ℹ️ Sizda {} mavjud buyruq bor", "inline_cmds_msg": "ℹ️ Mavjud inline buyruqlar:\n\n{}", "run_command": "🏌️ Buyruqni bajarish", "command_msg": "🌘 Buyruq «{}»\n\n{}", "command": "🌘 Buyruq «{}»", "button403": "Siz ushbu tugmani bosib bo'lmaysiz!", "keep_id": "⚠️ ID-ni o'chirmang! {}", } strings_es = { "lang_saved": "{} ¡Idioma guardado!", "pack_saved": ( "👍 ¡Paquete de" " traducción guardado!" ), "incorrect_language": ( "🚫 Idioma" " incorrecto seleccionado" ), "lang_removed": ( "👍 Restablecer la" " traducción a los valores predeterminados" ), "check_pack": ( "🚫 Paquete de" " traducción seleccionado incorrecto" ), "check_url": ( "🚫 URL incorrecta" " seleccionada" ), "too_long": ( "📁 El resultado del" " comando excede el límite. Enviado como archivo." ), "opening_form": " Abriendo formulario...", "opening_gallery": " Abriendo galería...", "opening_list": " Abriendo lista...", "inline403": ( "🚫 No se permiten elementos de interfaz de usuario en este grupo" ), "invoke_failed": ( "🚫 ¡Error al invocar la unidad! Consulte el registro" " para obtener más detalles" ), "show_inline_cmds": "📄 Mostrar todos los comandos disponibles", "no_inline_cmds": "No hay comandos disponibles", "no_inline_cmds_msg": ( "😔 No hay comandos disponibles o no tienes permiso para acceder a" " los comandos" ), "inline_cmds": "ℹ️ {} comandos disponibles", "inline_cmds_msg": "ℹ️ Comandos disponibles:\n\n{}", "run_command": "🏌️ Ejecutar comando", "command_msg": "🌘 Comando '{}'\n\n{}", "command": "🌘 Comando '{}'", "button403": "¡No puedes presionar este botón!", "button404": "¡No puedes presionar este botón ahora!", } strings_kk = { "lang_saved": "{} Тіл сақталды!", "pack_saved": ( "👍 Аударма пакеті" " сақталды!" ), "incorrect_language": ( "🚫 Жарамсыз тіл" " белгіленді" ), "lang_removed": ( "👍 Аударма пакеті" " өшірілді" ), "check_pack": ( "🚫 Аударма пакеті" " сілтемесінің пішімі жарамсыз" ), "check_url": ( "🚫 Сіз аударма пакеті" " бар сілтемені көрсетуіңіз керек" ), "too_long": ( "📁 Команда жауап" " өте ұзын, ол файлда жіберілді." ), "opening_form": " Форманы ашу...", "opening_gallery": " Галереяны ашу...", "opening_list": " Тізімні ашу...", "inline403": ( "🚫 Сіз бұл сөйлесуде кірістірілген элементтерді жібере алмайсыз" ), "invoke_failed": ( "🚫 Модульді іске қосу сәтсіз аяқталды! Толығырақ құжаттың журналында" ), "show_inline_cmds": "📄 Барлық қол жетімді кірістірілген командаларды көрсету", "no_inline_cmds": "Сіздің қол жетімді inline командаларыңыз жоқ", "no_inline_cmds_msg": ( "😔 Қол жетімді inline командалар жоқ немесе Сізге оларға қатынасуға" " рұқсат жоқ" ), "inline_cmds": "ℹ️ Сіздің {} қол жетімді команда(-лар)ыңыз бар", "inline_cmds_msg": "ℹ️ Қол жетімді inline командалар:\n\n{}", "run_command": "🏌️ Команданы іске қосу", "command_msg": "🌘 «{}» командасы\n\n{}", "command": "🌘 «{}» командасы", "button403": "Сіз бұл түймешіге баса алмайсыз!", "keep_id": "⚠️ ID тастамаңыз! {}", } strings_tt = { "lang_saved": "{} Тел сакланган!", "pack_saved": ( "👍 Тәрҗемә пакеты" " сакланган!" ), "incorrect_language": ( "🚫 Дөрес булмаган тел" " күрсәтелгән" ), "lang_removed": ( "👍 Тәрҗемәләр стандартка" " ташланган" ), "check_pack": ( "🚫 Сылтамада тәрҗемә" " пакетларының дөрес булмаган форматы" ), "check_url": ( "🚫 Сез тәрҗемә пакеты" " булган сылтаманы кертергә тиеш/b>" ), "too_long": ( "📁 Команда чыгышы бик" " озын, шуңа күрә ул файлда җибәрелә." ), "opening_form": " Мин форманы ачам...", "opening_gallery": " Мин галереяны ачам...", "opening_list": " Исемлекне ачу...", "inline403": "🚫 Сез бу чатта урнаштырылган элементларны җибәрә алмыйсыз", "invoke_failed": "🚫 Модуль проблемасы уңышлы булмады! Логларда тулырак", "show_inline_cmds": "📄 Барлык урнаштырылган командаларны күрсәтегез", "no_inline_cmds": "Сезнең inline командаларыгыз юк", "no_inline_cmds_msg": ( "😔 Inline командалар юк яисә аларга керү мөмкинлеге юк" ), "inline_cmds": "ℹ️ Сездә {} уңайлы командалар бар", "inline_cmds_msg": "ℹ️ Inline командалар:\n\n{}", "run_command": "🏌️ Команданы үтәгез", "command_msg": "🌘 Команда «{}»\n\n{}", "command": "🌘 Команда «{}»", "button403": "Сез төймәгә баса алмыйсыз!", "keep_id": "⚠️ ID'ны бетеремэгез {}", } @loader.command( ru_doc="[языки] - Изменить стандартный язык", de_doc="[Sprachen] - Ändere die Standard-Sprache", tr_doc="[Diller] - Varsayılan dili değiştir", uz_doc="[til] - Standart tili o'zgartirish", es_doc="[Idiomas] - Cambiar el idioma predeterminado", kk_doc="[тілдер] - Бастапқы тілді өзгерту", ) async def setlang(self, message: Message): """[languages in the order of priority] - Change default language""" args = utils.get_args_raw(message) if not args or any(len(i) != 2 for i in args.split(" ")): await utils.answer(message, self.strings("incorrect_language")) return self._db.set(translations.__name__, "lang", args.lower()) await self.allmodules.reload_translations() emoji_flags = { "🇬🇧": "🇬🇧", "🇺🇿": " 🇺🇿", "🇷🇺": " 🇷🇺", "🇩🇪": " 🇩🇪", "🇪🇸": " 🇪🇸", "🇹🇷": " 🇹🇷", "🇰🇿": " 🇰🇿", "🥟": "🥟", } lang2country = {"en": "🇬🇧", "tt": "🥟", "kk": "🇰🇿"} await utils.answer( message, self.strings("lang_saved").format( "".join( [ emoji_flags.get(flag, flag) for flag in [ lang2country.get(lang) or utils.get_lang_flag(lang) for lang in args.lower().split(" ") ] ] ) ), ) @loader.command( ru_doc="[ссылка на пак | пустое чтобы удалить] - Изменить внешний пак перевода", de_doc=( "[Link zum Paket | leer um zu entfernen] - Ändere das externe Übersetzungs" " Paket" ), tr_doc=( "[Çeviri paketi bağlantısı | boş bırakmak varsayılan hale getirir] - Harici" " çeviri paketini değiştir" ), uz_doc=( "[tarjima paketi havolasini | bo'sh qoldirish standart holatga qaytaradi] -" " Tashqi tarjima paketini o'zgartirish" ), es_doc="[Enlace al paquete | vacío para eliminar] - Cambiar el paquete de", kk_doc=( "[тілдік пакеттің сілтемесі | бос қалдырып бастапқы қалдыру] - Сыртқы" " тілдік пакетін өзгерту" ), ) async def dllangpackcmd(self, message: Message): """[link to a langpack | empty to remove] - Change Hikka translate pack (external) """ args = utils.get_args_raw(message) if not args: self._db.set(translations.__name__, "pack", False) await self.translator.init() await utils.answer(message, self.strings("lang_removed")) return if not utils.check_url(args): await utils.answer(message, self.strings("check_url")) return self._db.set(translations.__name__, "pack", args) await utils.answer( message, self.strings( "pack_saved" if await self.allmodules.reload_translations() else "check_pack" ), )