# █ █ ▀ █▄▀ ▄▀█ █▀█ ▀
# █▀█ █ █ █ █▀█ █▀▄ █
# © 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"
),
)