diff --git a/fire_bot/modules/translations/English.py b/fire_bot/modules/translations/English.py
new file mode 100644
index 0000000..08200d0
--- /dev/null
+++ b/fire_bot/modules/translations/English.py
@@ -0,0 +1,169 @@
+RUN_STRINGS = (
+ "Where do you think you're going?",
+ "Huh? what? did they get away?",
+ "ZZzzZZzz... Huh? what? oh, just them again, nevermind.",
+ "Get back here!",
+ "Not so fast...",
+ "Look out for the wall!",
+ "Don't leave me alone with them!!",
+ "You run, you die.",
+ "Jokes on you, I'm everywhere",
+ "You're gonna regret that...",
+ "You could also try /kickme, I hear that's fun.",
+ "Go bother someone else, no-one here cares.",
+ "You can run, but you can't hide.",
+ "Is that all you've got?",
+ "I'm behind you...",
+ "You've got company!",
+ "We can do this the easy way, or the hard way.",
+ "You just don't get it, do you?",
+ "Yeah, you better run!",
+ "Please, remind me how much I care?",
+ "I'd run faster if I were you.",
+ "That's definitely the droid we're looking for.",
+ "May the odds be ever in your favour.",
+ "Famous last words.",
+ "And they disappeared forever, never to be seen again.",
+ "\"Oh, look at me! I'm so cool, I can run from a bot!\" - this person",
+ "Yeah yeah, just tap /kickme already.",
+ "Here, take this ring and head to Mordor while you're at it.",
+ "Legend has it, they're still running...",
+ "Unlike Harry Potter, your parents can't protect you from me.",
+ "Fear leads to anger. Anger leads to hate. Hate leads to suffering. If you keep running in fear, you might "
+ "be the next Vader.",
+ "Multiple calculations later, I have decided my interest in your shenanigans is exactly 0.",
+ "Legend has it, they're still running.",
+ "Keep it up, not sure we want you here anyway.",
+ "You're a wiza- Oh. Wait. You're not Harry, keep moving.",
+ "NO RUNNING IN THE HALLWAYS!",
+ "Hasta la vista, baby.",
+ "Who let the dogs out?",
+ "It's funny, because no one cares.",
+ "Ah, what a waste. I liked that one.",
+ "Frankly, my dear, I don't give a damn.",
+ "My milkshake brings all the boys to yard... So run faster!",
+ "You can't HANDLE the truth!",
+ "A long time ago, in a galaxy far far away... Someone would've cared about that. Not anymore though.",
+ "Hey, look at them! They're running from the inevitable banhammer... Cute.",
+ "Han shot first. So will I.",
+ "What are you running after, a white rabbit?",
+ "As The Doctor would say... RUN!",
+)
+
+SLAP_TEMPLATES = (
+ "{user1} {hits} {user2} with a {item}.",
+ "{user1} {hits} {user2} in the face with a {item}.",
+ "{user1} {hits} {user2} around a bit with a {item}.",
+ "{user1} {throws} a {item} at {user2}.",
+ "{user1} grabs a {item} and {throws} it at {user2}'s face.",
+ "{user1} launches a {item} in {user2}'s general direction.",
+ "{user1} starts slapping {user2} silly with a {item}.",
+ "{user1} pins {user2} down and repeatedly {hits} them with a {item}.",
+ "{user1} grabs up a {item} and {hits} {user2} with it.",
+ "{user1} ties {user2} to a chair and {throws} a {item} at them.",
+ "{user1} gave a friendly push to help {user2} learn to swim in lava."
+)
+
+ITEMS = (
+ "cast iron skillet",
+ "large trout",
+ "baseball bat",
+ "cricket bat",
+ "wooden cane",
+ "nail",
+ "printer",
+ "shovel",
+ "CRT monitor",
+ "physics textbook",
+ "toaster",
+ "portrait of Richard Stallman",
+ "television",
+ "five ton truck",
+ "roll of duct tape",
+ "book",
+ "laptop",
+ "old television",
+ "sack of rocks",
+ "rainbow trout",
+ "rubber chicken",
+ "spiked bat",
+ "fire extinguisher",
+ "heavy rock",
+ "chunk of dirt",
+ "beehive",
+ "piece of rotten meat",
+ "bear",
+ "ton of bricks",
+)
+
+THROW = (
+ "throws",
+ "flings",
+ "chucks",
+ "hurls",
+)
+
+HIT = (
+ "hits",
+ "whacks",
+ "slaps",
+ "smacks",
+ "bashes",
+)
+
+MARKDOWN_HELP = """
+Markdown is a very powerful formatting tool supported by telegram. {} has some enhancements, to make sure that \
+saved messages are correctly parsed, and to allow you to create buttons.
+
+- _italic_
: wrapping text with '_' will produce italic text
+- *bold*
: wrapping text with '*' will produce bold text
+- `code`
: wrapping text with '`' will produce monospaced text, also known as 'code'
+- [sometext](someURL)
: this will create a link - the message will just show sometext
, \
+and tapping on it will open the page at someURL
.
+EG: [test](example.com)
+
+- [buttontext](buttonurl:someURL)
: this is a special enhancement to allow users to have telegram \
+buttons in their markdown. buttontext
will be what is displayed on the button, and someurl
\
+will be the url which is opened.
+EG: [This is a button](buttonurl:example.com)
+
+If you want multiple buttons on the same line, use :same, as such:
+[one](buttonurl://example.com)
+[two](buttonurl://google.com:same)
+This will create two buttons on a single line, instead of one button per line.
+"""
+
+EnglishStrings = {
+ "send-help": """*Main commands available*:
+ - /start: start the bot
+ - /help or /help : PM's you info about that module.
+ - /lang: Change bot language
+ - /settings:
+ - in PM: will send you your settings for all supported modules.
+ - in a group: will redirect you to pm, with all that chat's settings.
+ {}
+ """,
+
+ "send-group-settings": """Hi there! There are quite a few settings for *{}* - go ahead and pick what
+you're interested in.""",
+
+#Misc
+"RUNS-K": RUN_STRINGS,
+"SLAP_TEMPLATES-K": SLAP_TEMPLATES,
+"ITEMS-K": ITEMS,
+"HIT-K": HIT,
+"THROW-K": THROW,
+"ITEMP-K": ITEMS,
+"ITEMR-K": ITEMS,
+"MARKDOWN_HELP-K": MARKDOWN_HELP,
+
+#GDPR
+"send-gdpr": """Your personal data has been deleted.\n\nNote that this will not unban \
+you from any chats, as that is telegram data, not YanaBot data.
+Flooding, warns, and gbans are also preserved, as of \
+[this](https://ico.org.uk/for-organisations/guide-to-the-general-data-protection-regulation-gdpr/individual-rights/right-to-erasure/), "
+which clearly states that the right to erasure does not apply \
+\"for the performance of a task carried out in the public interest\", as is \
+the case for the aforementioned pieces of data."""
+
+}
diff --git a/fire_bot/modules/translations/Russian.py b/fire_bot/modules/translations/Russian.py
new file mode 100644
index 0000000..9e94ba2
--- /dev/null
+++ b/fire_bot/modules/translations/Russian.py
@@ -0,0 +1,747 @@
+from tg_bot import dispatcher
+
+RUN_STRINGS = (
+ "Куда ты собрался?",
+ "А? что? они ушли?",
+ "ZZzzZZzz... А? что? о, опять только эти, ничего страшного.",
+ "Вернись сюда!",
+ "Не так быстро...",
+ "Посмотри на стену!",
+ "Не оставляй меня наедине с ними!!",
+ "Ты бежишь, ты умираешь.",
+ "Ты пожалеешь об этом...",
+ "Вы также можете попробовать /kickme, я слышала, что это весело.",
+ "Иди, побеспокой кого-нибудь другого, здесь всем плевать.",
+ "Ты можешь бежать, но ты не можешь спрятаться.",
+ "Это всё, что у тебя есть?",
+ "Я стою за тобой...",
+ "У вас есть компания!",
+ "Мы можем сделать это лёгким или трудным путем.",
+ "Ты просто не понимаешь этого, не так ли?",
+ "Да, тебе лучше бежать!",
+ "Пожалуйста, напомните мне, как меня это волнует?",
+ "На твоем месте я бы бежал быстрее.",
+ "Это определённо тот дроид, которого мы ищем.",
+ "Пусть шансы всегда будут в вашу пользу.",
+ "Знаменитые последние слова.",
+ "И они исчезли навсегда, чтобы их больше не видели.",
+ "\"О, посмотри на меня! Я такой крутой, что могу убежать от бота! \"- это человек",
+ "Да, да, просто нажмите /kickme уже.",
+ "Вот, возьмите это кольцо и отправляйтесь в Мордор, раз уж вам по пути.",
+ "Легенда гласит, что они всё ещё бегут...",
+ "В отличие от Гарри Поттера, твои родители не могут защитить тебя от меня.",
+ "Страх приводит к гневу. Гнев приводит к ненависти. Ненависть приводит к страданиям. Если вы продолжите бежать в страхе, вы можете "
+ "стать следующим Вейдером.",
+ "Несколько вычислений спустя, я решил, что мой интерес к вашим махинациям ровно 0.",
+ "Легенда гласит, что они всё ещё бегут.",
+ "Продолжайте, не уверен, что мы хотим, чтобы вы здесь оставались.",
+ "Ты волше-Ой. Погоди. Ты не Гарри, продолжай двигаться.",
+ "НЕ БЕГАТЬ ПО КОРИДОРАМ!",
+ "Hasta la vista, детка.",
+ "Кто выпустил собак?",
+ "Это смешно, потому что никому нет дела.",
+ "Ах, какая потеря. Он мне нравился.",
+ "Честно говоря, моя дорогая, мне наплевать.",
+ "Мой молочный коктейль приводит всех мальчиков во двор... Так беги быстрее!",
+ "Вы не можете справиться с правдой!",
+ "Давным-давно, в далёкой-далёкой галактике... Кому-то было бы до этого дело. Хотя уже нет.",
+ "Эй, посмотри на них! Они убегают от неизбежного банхаммера... Мило.",
+ "Хан выстрелил первым. Я поступлю так же, как он.",
+ "За чем ты бежишь, за белым кроликом?",
+ "Как сказал бы Доктор... Беги!",
+)
+
+SLAP_TEMPLATES = (
+ "{user1} {hits} {user2} {itemp}.",
+ "{user1} {hits} в лицо {user2} {itemp}.",
+ "{user1} {throws} {itemr} в {user2}.",
+ "{user1} берёт {item} и {throws} им в лицо {user2}.",
+ "{user1} запускает {itemr} в направлении {user2}.",
+ "{user1} начинает безобидно хлопать {user2} {itemp}.",
+ "{user1} придавливает {user2} и несколько раз {hits} его {itemp}.",
+ "{user1} хвататет {itemr} и {hits} {user2}",
+ "{user1} привязывает {user2} к стулу и {throws} {itemr} в него.",
+ "{user1} дружески подтолкнул {user2}, чтобы тот научился плавать в лаве."
+)
+
+ITEMS = (
+ "чугунная сковорода",
+ "большая форель",
+ "бейсбольная бита",
+ "крикетная бита",
+ "деревянная трость",
+ "ноготь",
+ "принтер",
+ "лопата",
+ "ЭЛТ-монитор",
+ "учебник физики ",
+ "тостер",
+ "портрет Ричарда Столмана",
+ "телевизор",
+ "пятитонный грузовик",
+ "рулон клейкой ленты",
+ "книга",
+ "ноутбук",
+ "старый телевизор",
+ "мешок камней",
+ "радужная форель",
+ "резиновый цыпленок",
+ "шипастая летучая мышь",
+ "огнетушитель",
+ "тяжёлый камень",
+ "кусок грязи",
+ "улей",
+ "кусок гнилого мяса",
+ "медведь",
+ "тонна кирпичей",
+)
+
+ITEMSP_RU = (
+ "чугунной сковородой",
+ "большой форелью",
+ "бейсбольной битой",
+ "крикетной битой",
+ "деревянной тростью",
+ "ногтем",
+ "принтером",
+ "лопатой",
+ "ЭЛТ-монитором",
+ "учебником физики ",
+ "тостером",
+ "портретом Ричарда Столмана",
+ "телевизором",
+ "пятитонным грузовиком",
+ "рулоном скотча",
+ "книгой",
+ "ноутбуком",
+ "старым телевизором",
+ "мешком камней",
+ "радужной форелью",
+ "резиновым цыпленоком",
+ "шипастой летучей мышью",
+ "огнетушителем",
+ "тяжёлым камнем",
+ "кусоком грязи",
+ "улеем",
+ "кусоком гнилого мяса",
+ "медведем",
+ "тонной кирпичей",
+ "огромной булкой",
+)
+
+ITEMSR_RU = (
+ "чугунную сковородку",
+ "большкую форель",
+ "бейсбольную биту",
+ "крикетную биту",
+ "деревянную трость",
+ "ноготь",
+ "принтер",
+ "лопата",
+ "ЭЛТ-монитор",
+ "учебник физики ",
+ "тостер",
+ "портрет Ричарда Столмана",
+ "телевизор",
+ "пятитонный грузовик",
+ "рулон клейкой ленты",
+ "книга",
+ "ноутбук",
+ "старый телевизор",
+ "мешок камней",
+ "радужная форель",
+ "резиновый цыпленок",
+ "шипастая летучая мышь",
+ "огнетушитель",
+ "тяжёлый камень",
+ "кусок грязи",
+ "улей",
+ "кусок гнилого мяса",
+ "медведь",
+ "тонну кирпичей",
+)
+
+
+THROW = (
+ "бросает",
+ "швыряет",
+)
+
+HIT = (
+ "бьёт",
+ "молотит",
+ "шлёпает",
+ "хлопает",
+ "колотит",
+ "царапает",
+)
+
+MARKDOWN_HELP = """
+Markdown - очень мощный инструмент для форматирования текста, который поддерживает Telegram. {} имеет некоторые улучшения, чтобы убедиться, что
+сохраненные сообщения правильно написаны , что позволяет создавать кнопки.
+
+- _италик_
: выделение с двух сторон текста с помощью '_' приведет к созданию курсивного текста.
+- *полужирный*
: выделение с двух сторон текста с помощью '*' приведет к получению жирного текста.
+- `код`
: выделение с двух сторон текста с помощью '`' приведет к получению моноширинного текста, также известного как «код»,
+- [ваш_текст](ваша_ссылка)
: это создаст ссылку - сообщение просто покажет ваш_текст
, \
+и нажатие на него откроет страницу в ваша_ссылка
.
+Пример: [test](ваша_ссылка)
+
+- [Текст кнопки](buttonurl:ваша ссылка)
: это специальное расширение, позволяющее пользователям создавать кнопки-ссылки. Текст Кнопки
будет отображаться на кнопке, а ваша ссылка
\
+будет открывать ваш URL-адрес.
+Пример: [Это кнопка](buttonurl:это_ссылка)
+
+Если вам нужно несколько кнопок в одной строке, используйте это:
+[one](buttonurl://ваша_ссылка)
+[two](buttonurl://google.com:same)
+Это создаст две кнопки в одной строке, а не одну кнопку на строку.
+"""
+
+RussianStrings = {
+
+#Connections
+ "Disabled connections to this chat for users": "Отключены соединения к этому чату для пользователей",
+ "Enabled connections to this chat for users": "Включены соединения к этому чату для пользователей",
+ "Please enter on/yes/off/no in group!": "Пожалуйста введите on/yes/off/no в группу!",
+ "Successfully connected to *{}*": "Успешно подключено к *{}*",
+ "Connection failed!": "Подключение не удалось!",
+ "Connections to this chat not allowed!": "Подключение к этому чату не разрешено!",
+ "Write chat ID to connect!": "Напишите ID чата для подключения",
+ "Usage limited to PMs only!": "Использование ограничего в личных сообщениях только!",
+
+#Misc
+ "RUNS-K": RUN_STRINGS,
+ "SLAP_TEMPLATES-K": SLAP_TEMPLATES,
+ "ITEMS-K": ITEMS,
+ "HIT-K": HIT,
+ "THROW-K": THROW,
+ "ITEMP-K": ITEMSP_RU,
+ "ITEMR-K": ITEMSR_RU,
+ "MARKDOWN_HELP-K": MARKDOWN_HELP,
+
+ "The original sender, {}, has an ID of `{}`.\nThe forwarder, {}, has an ID of `{}`.":
+ "Отправитель, {}, имеет ID `{}`.\nПересылающий, {}, имеет ID `{}`.",
+ "{}'s id is `{}`.": "ID {} - `{}`.",
+ "Your id is `{}`.": "Ваш ID - `{}`.",
+ "This group's id is `{}`.": "ID этой группы - `{}`.",
+
+ "I can't extract a user from this.": "Я не могу извлечь ID этого пользователя.",
+ "User info:": "Информация о пользователе:",
+ "\nFirst Name: {}": "\nИмя: {}",
+ "\nLast Name: {}": "\nФамилия: {}",
+ "\nUsername: @{}": "\nНик: @{}",
+ "\nPermanent user link: {}": "\nПостоянная ссылка на пользователя: {}",
+ "\n\nThis person is my owner - I would never do anything against them!":
+ "\n\nЭтот человек - мой хозяин, я бы никогда ничего не сделала против него!",
+ "\nThis person is one of my sudo users! Nearly as powerful as my owner - so watch it.":
+ "\nЭтот человек является одним из моих пользователей sudo! Почти такой же мощный, как мой владелец - так что смотри.",
+ "\nThis person is one of my support users! Not quite a sudo user, but can still gban you off the map.":
+ "\nЭтот человек является одним из моих поддерживающих пользователей! Не совсем пользователь sudo, но он все равно может удалить вас.",
+ "\nThis person has been whitelisted! That means I'm not allowed to ban/kick them.":
+ "\nЭтот человек был включен в белый список! Это означает, что я не могу банить и кикать его.",
+
+ "Its always banhammer time for me!": "Всегда есть время для банхаммера!",
+
+ "It's {} in {}": "Сейчас {} в {}",
+
+ "Please reply to a sticker to get its ID.": "Ответье на стикер чтобы получить его ID.",
+ "Please reply to a sticker for me to upload its PNG.": "Ответье на стикер чтобы получить его изображение.",
+
+ "Write a location to check the weather.": "Напишите место чтобы получить его погоду.",
+ "I will keep an eye on both happy and sad times!": "Я буду следить за счастливыми и печальными временами!",
+ "Today in {} is being {}, around {}°C.\n": "Сегодня в {} {}, примерно {}°C.\n",
+ "Sorry, location not found.": "Простите, местоположение не найдено.",
+
+ "Deleting identifiable data...": "Удаление пользовательских данных...",
+
+ "Try forwarding the following message to me, and you'll see!":
+ "Попробуйте переслать мне следующее сообщение, и вы увидите!",
+ "/save test This is a markdown test. _italics_, *bold*, `code`, [URL](example.com) [button](buttonurl:github.com) [button2](buttonurl://google.com:same)":
+ """/save test Это тест markdown. _италик_, *жирный*, `код`, \
+[ССЫЛКА](example.com)
+[Кнопка](buttonurl:github.com)
+[Кнопка2](buttonurl://google.com:same)""",
+
+#Misc GDPR
+"send-gdpr": """Ваши персональные данные были удалены.\n\nОбратите внимание, что это не разбанит вас \
+из любых чатов, поскольку это данные телеграмма, а не данные YanaBot.
+Флуд, предупреждения и АнтиСпам также сохраняются, начиная с \
+[этого](https://ico.org.uk/for-organisations/guide-to-the-general-data-protection-regulation-gdpr/individual-rights/right-to-erasure/), "
+в котором четко указано, что право на стирание не применяется \
+\"для выполнение задачи, выполняемой в общественных интересах\".""",
+
+#Admin
+"How am I meant to promote someone that's already an admin?": "Как я должна назначить кого-то, кто уже является администратором?",
+"I can't promote myself! Get an admin to do it for me.": "Я не могу назначить себя! Получите администратора, чтобы сделать это для меня.",
+"Successfully promoted in *{}*!": "Успешно назначен в *{}*!",
+
+"This person CREATED the chat, how would I demote them?": "Этот человек СОЗДАЛ чат, как я могу его понизить?",
+"Can't demote what wasn't promoted!": "Как я могу понизить того кто не является админом?",
+"I can't demote myself!": "Я не могу понизить себя!",
+"Successfully demoted in *{}*!": "Успешно понижен в *{}*!",
+"Could not demote. I might not be admin, or the admin status was appointed by another user, so I can't act upon them!":
+"Не могу понизить. Возможно, я не администратор, или статус администратора был назначен другим пользователем, поэтому я не могу понизить его!",
+
+"I don't have access to the invite link, try changing my permissions!": "У меня нет доступа к ссылке приглашения, попробуйте изменить мои права!",
+"I can only give you invite links for supergroups and channels, sorry!": "Я могу дать ссылку для супергрупп и каналов!",
+
+"Admins in": "Админы в",
+"this chat": "этом чате",
+" (Creator)": " (Создатель)",
+
+#AFK
+"{} is now AFK!": "{} сейчас АФК!",
+"{} is no longer AFK!": "{} больше не АФК!",
+"{} is AFK!": "{} сейчас АФК!",
+"{} is AFK! says its because of: \n{}": "{} сейчас АФК! Потому что: \n{}",
+
+#Antiflood
+"I like to leave the flooding to natural disasters. But you, you were just a disappointment. Get out.":
+ "Мне нравится оставлять флуд для стихийных бедствий. Но ты был просто разочарованием. Убирайся!",
+"I can't kick people here, give me permissions first! Until then, I'll disable antiflood.":
+ "Я не могу кикать людей здесь, сначала дайте мне разрешения! Я отключу antiflood.",
+"Antiflood has been disabled.": "Антифлуд был выключен.",
+"Antiflood has to be either 0 (disabled), or a number bigger than 3 (enabled)!":
+ "Antiflood должен быть либо 0 (отключен), либо число больше 3 (включен)!",
+"Antiflood has been updated and set to {}": "Антифлуд был установлен на {}",
+"Unrecognised argument - please use a number, 'off', or 'no'.":
+ "Неизвестный аргумент - используйте число, 'off', или 'no'.",
+"I'm not currently enforcing flood control!": "В настоящее время я не применяю контроль над флудом!",
+"I'm currently banning users if they send more than {} consecutive messages.":
+ "В настоящее время я баню пользователей, если они отправляют более {} последовательных сообщений.",
+
+#Antispam
+"I've enabled antispam security in this group. This will help protect you from spammers, unsavoury characters, and the biggest trolls.":
+ "Я включила защиту от спама в этой группе. Это поможет защитить вас от спамеров, отвратительных людей и самых больших троллей.",
+
+"I've disabled antispam security in this group. GBans wont affect your users anymore. You'll be less protected from any trolls and spammers though!":
+ "Я отключила защиту от спама в этой группе. Антиспам больше не будет влиять на ваших пользователей. Вы не будете защищены от троллей и спамеров!",
+
+"Give me some arguments to choose a setting! on/off, yes/no!\n\nYour current setting is: {}\nWhen True, any gbans that happen will also happen in your group. When False, they won't, leaving you at the possible mercy of spammers.":
+ "Дайте мне несколько аргументов, чтобы выбрать настройку! on/off, yes/no!\n\nВаши текущие параметры: {}\nЕсли True, защита от спаммеров (бан людей) также произойдут в вашей группе. Когда false, они не будут, оставляя вас на возможной милости спамеров.",
+
+"Globally banned: {}": "Глобально забанен: {}",
+"\nGlobally muted: {}": "\nГлобально замучен: {}",
+"\nReason: {}": "\Причина: {}",
+
+#Bans
+ "I really wish I could ban admins...": "Мне так жаль, что я не могу забанить админа...",
+ "I'm not gonna BAN myself, are you crazy?": "Я не собираюсь банить себя, ты с ума сошел?",
+ "Banned!": "Забанен!",
+ "Well damn, I can't ban that user.": "Черт, я не могу запретить этого пользователя.",
+ "You haven't specified a time to ban this user for!":
+ "Вы не указали время, чтобы забанить этого пользователя!",
+ "Banned! User will be banned for {}.": "Забанен! Пользователь забанен на {}.",
+
+#Blacklist
+ "Current blacklisted words in {}:\n": "Текущие заблокированные слова в {}:\n",
+ "There are no blacklisted messages in {}!": "Нет запрещенных сообщений в {}!",
+ "Added {}
to the blacklist in {}!":
+ "Добавлено {}
в черный список в {}!",
+ "Tell me which words you would like to add to the blacklist.":
+ "Скажите, какие слова вы хотели бы добавить в черный список.",
+ "Removed {}
from the blacklist in {}!":
+ "Удалено {}
из черного списка в {}!",
+ "This isn't a blacklisted trigger...!": "Это не тригер черного списка...!",
+ "None of these triggers exist, so they weren't removed.":
+ "Ни один из этих триггеров не существует, поэтому они не были удалены.",
+ "Removed {}
triggers from the blacklist in {}! {} did not exist, so were not removed.":
+ "Удалено {}
тригерра из черного списка в {}! {} из них не существовует, поэтому они не были удалены.",
+ "Tell me which words you would like to remove from the blacklist.":
+ "Скажите, какие слова вы хотите удалить из черного списка.",
+
+ #Filters
+ "*Filters in {}:*\n": "*Фильтры в {}:*\n",
+ "local filters": "локальные фильтры",
+ "*local filters:*\n": "*локальные фильтры:*\n",
+ "No filters in {}!": "Нет фильтров в {}!",
+ "There is no note message - You can't JUST have buttons, you need a message to go with it!":
+ "Вы не можете просто иметь кнопки, вам нужен текст для нормальной работы!",
+ "You didn't specify what to reply with!": "Вы не указали на что мне отвечать!",
+ "Handler '{}' added in *{}*!": "Фильтр '{}' добавлен в *{}*!",
+ "No filters are active in {}!": "Нет фильтров в {}!",
+ "Yep, I'll stop replying to that in *{}*." : "Хорошо, я не буду отвечать на это в *{}*.",
+ "That's not a current filter - run /filters for all active filters.":
+ "Это не текущий фильтр - выполните /filters чтобы увидеть текущие фильтры.",
+
+ #Disable
+ "Disabled the use of `{}` in *{}*": "Использование `{}` выключено в *{}*",
+ "That command can't be disabled": "Эта комманда не может быть выключена",
+ "What should I disable?": "Что я должна отключить?",
+
+ "Enabled the use of `{}` in *{}*": "Использование `{}` включено в *{}*",
+ "Is that even disabled?": "Это было выключено?",
+ "What should I enable?": "Что я должна включить?",
+
+ "The following commands are toggleable:\n{}": "Следующие комманды могут быть выключены:\n{}",
+ "No commands can be disabled.": "Нет отключаемых комманд.",
+ "No commands are disabled in *{}*!": "Нет выключенных комманд в *{}*!",
+ "No commands are disabled!": "Нет выключенных комманд!",
+ "The following commands are currently restricted in *{}*:\n{}":
+ "Следующие комманды выключены в *{}*:\n{}",
+
+#Locks
+ "Locked {} messages for all non-admins!": "Заблокированы {} сообщения для не админов!",
+ "What are you trying to lock...? Try /locktypes for the list of lockables":
+ "Что вы пытаетесь заблокировать...? Посмотрите /locktypes для списка возможных блокировок",
+ "I'm not an administrator, or haven't got delete rights.":
+ "Я не администратор или я не имею права на удаление сообщений.",
+ "Unlocked {} for everyone!": "Разблокированы {} для всех!",
+ "What are you trying to unlock...? Try /locktypes for the list of lockables":
+ "Что вы пытаетесь разблокировать...? Посмотрите /locktypes для списка возможных блокировок",
+ "What are you trying to unlock...?": "Что вы пытаетесь разблокировать...?",
+ "I see a bot, and I've been told to stop them joining... but I'm not admin!":
+ "Я вижу бота, и мне сказали банить их... Но я не админ!",
+ "Only admins are allowed to add bots to this chat! Get outta here.":
+ "Только админам разрешено добавлять ботов в этот чат! Убирайся отсюда.",
+ "There are no current locks in *{}*.": "Нет текущих блокировок в *{}*.",
+ "These are the locks in *{}*:": "Текущие блокировки в *{}*:",
+ "this chat": "этом чате",
+
+#Log channel
+ "Now, forward the /setlog to the group you want to tie this channel to!":
+ "Теперь перешлите /setlog в группу, с которой вы хотите связать этот канал!",
+ "This channel has been set as the log channel for {}.":
+ "Этот канал был установлен как канал логов для {}.",
+ "Successfully set log channel!": "Успешно установлен канал логов!",
+ "*The steps to set a log channel are:*\n • add bot to the desired channel\n • send /setlog to the channel\n • forward the /setlog to the group\n":
+ """*Настройка канала для логирования:*
+ • Добавление бота в канал (Как админа!)
+ • Отправка `/setlog` в канал
+ • Пересылка отправленного сообщения `/setlog` в группе""",
+
+ "Channel has been unlinked from {}": "Канал отключен от {}",
+ "Log channel has been un-set.": "Канал логов не установлен.",
+ "No log channel has been set yet!": "Канал логов еще не установлен!",
+
+#Users
+ "I've seen them in {}
chats in total.":
+ "Я видела его в {}
чатах.",
+ "I've seen them in... Wow. Are they stalking me? They're in all the same places I am... oh. It's me.":
+ "Я видела его в... Стоп. Вау. Вы преследуете меня? Я нахожусь во всех чатах, Ох... Да. Это я.",
+
+#Msg_deleting
+ "Cannot delete all messages. The messages may be too old, I might not have delete rights, or this might not be a supergroup.":
+ "Не удается удалить все сообщения. Сообщения могут быть слишком старыми, или у меня могут не быть прав на удаление, или это может быть не супергруппа.",
+ "Purge complete.": "Чистка завершена.",
+ "Reply to a message to select where to start purging from.":
+ "Ответьте на сообщение, чтобы выбрать, с чего начать чистку.",
+ "Whadya want to delete?": "Что я должна удалить?",
+
+#Muting
+ "You'll need to either give me a username to mute, or reply to someone to be muted.":
+ "Вам нужно либо дать мне имя пользователя, либо ответить на сообщение, чтобы он был замутен.",
+ "I'm not muting myself!": "Я не буду мутить себя!",
+ "Afraid I can't stop an admin from talking!": "Боюсь, я не могу остановить админов от разговора!",
+ "You'll need to either give me a username to unmute, or reply to someone to be unmuted.":
+ "Вам нужно либо дать мне имя пользователя, либо ответить на сообщение, чтобы он был размучен.",
+ "This user already has the right to speak in {}.": "Этот пользователь уже имеет право говорить в {}.",
+ "Yep, {} can start talking again in {}!": "Да, {} может говорить снова в {}!",
+ "This user isn't even in the chat, unmuting them won't make them talk more than they already do!":
+ "Этот пользователь даже не в чате",
+ "I really wish I could mute admins...": "Мне очень жаль, что я не могу мутить админов...",
+ "I'm not gonna MUTE myself, are you crazy?" : "Я не собираюсь себя мутить, ты с ума сошел?",
+ "You haven't specified a time to mute this user for!":
+ "Вы не указали время для мутинга этого пользователя!",
+ "Muted for {} in {}!": "Я заткнула его на {} в {}!",
+ "This user is already muted in {}!": "Этот пользователь и так заткнут.",
+ "Well damn, I can't mute that user.": "Ну, черт побери, я не могу заткнуть этого пользователя.",
+
+ "You'll need to either give me a username to restrict, or reply to someone to be restricted.":
+ "Вам нужно либо указать мне имя пользователя, либо ответить на сообщение чтобы ограничить его.",
+ "I'm not restricting myself!": "Я не буду ограничивать себя!",
+ "Afraid I can't restrict admins!": "Боюсь, я не могу ограничить админов!",
+ "{} is restricted from sending media in {}!": "{} запрещен к отправлению медиа в {}!",
+ "This user is already restricted in {}!": "Этот пользователь и так ограничен в {}!",
+ "This user isn't in the {}!": "Этот пользователь не в {}!",
+
+ "You'll need to either give me a username to unrestrict, or reply to someone to be unrestricted.":
+ "Вам нужно либо дать мне имя пользователя, либо ответить на сообщение, чтобы он мог слать медиа.",
+ "This user already has the rights to send anything in {}.":
+ "У этого пользователя и так есть права отправлять что-либо в {}.",
+ "Yep, {} can send media again in {}!": "Да, {} может отправлять что-либо в {}!",
+ "This user isn't even in the chat, unrestricting them won't make them send anything than they already do!":
+ "Этот пользователь даже не в чате.",
+ "I really wish I could restrict admins...": "Мне очень хотелось бы ограничить админов...",
+ "I'm not gonna RESTRICT myself, are you crazy?": "Я не собираюсь ОГРАНИЧИТЬ себя, ты с ума сошел?",
+ "You haven't specified a time to restrict this user for!":
+ "Вы не указали время, чтобы ограничить этого пользователя!",
+ "Well damn, I can't restrict that user.": "Ну, черт возьми, я не могу ограничить этого пользователя.",
+ "{} is muted in {}!": "{} заткнут в {}!",
+ "Restricted from sending media for {} in {}!": "Ограничен от отправление медиа {} в {}!",
+ "Restricted for {} in {}!": "{} Ограничен от отправки мендиа в {}!",
+
+#Notes
+ "Get rekt": "Нечего давать.",
+
+
+#Multi
+ "Invalid Chat ID provided!": "ID чата недействительный!", #Connections
+ "You don't seem to be referring to a user.": "Кажется, вы не обращаетесь к пользователю.", #Admin, Bans, Muting
+ "I can't seem to find this user": "Я не могу найти этого пользователя", #Bans, Muting
+ "Yes": "Да", #Antispam
+ "No": "Нет", #Antispam
+
+#__main__
+ #Module names
+ "Admin": "Администрирование",
+ "AFK": "Режим АФК",
+ "AntiFlood": "Антифлуд",
+ "Bans": "Баны",
+ "Word Blacklists": "Черные списки",
+ "Filters": "Фильтры",
+ "Command disabling": "Отключение комманд",
+ "Antispam security": "Антиспам Защита",
+ "Locks": "Блокировки",
+ "Log Channels": "Логирование действий",
+ "Misc": "Остальное",
+ "Purges": "Чистка",
+ "Muting & Restricting": "Муты и запреты",
+ "Notes": "Заметки",
+ "Reporting": "Репорты",
+ "RSS Feed": "RSS Лента",
+ "Rules": "Правила",
+ "Connections": "Соединения",
+ "Bios and Abouts": "Подпись человка",
+ "Warnings": "Предупреждения",
+ "Welcomes/Goodbyes": "Приветствие/Прощание",
+
+#Some main stuff
+"Here is the help for the *{}* module:\n{}": "Помощь по модулю *{}*:\n{}",
+"Back": "Назад",
+"send-help":"""Главный комманды:
+ - /start: краткая информация про бота.
+ - /help: Я напишу вам это сообщение.
+ - /help Или же /help <название модуля>: Я расскажу вам про этот модуль.
+ - /lang: Смена языка бота.
+ - /settings: Показать текущие настройки модулей.
+ {}
+ """,
+
+
+"\nAll commands can either be used with `/` or `!`.\n": "\nВсе коммнды могут начинатся с `/` или `!`\n",
+
+#Module helps
+"Admin_help": """- /adminlist | /admins: Список админов в чате.
+
+*Только админы:*
+ - /pin: Безшумно закрепить отвеченое сообщение - добавьте аргумент 'loud' или 'notify' чтобы уведомить пользователей о закреплении.
+ - /unpin: Открепить текущее закрепренное сообщение.
+ - /invitelink: Получить ссылку-приглашение.
+ - /promote: Повысить пользователя.
+ - /demote: Понизить пользователя.""",
+
+"AFK_help": """ - /afk <причина>: пометить себя как АФК.
+ - brb <причина>: тоже самое как и /afk - но не комманда.
+
+Когда вы пометили себя как АФК, на любое упоминаниие вас будет отправлено сообщение о вашей недоступности.""",
+
+"AntiFlood_help": """- /flood: Получить текущие настройки антифлуда.
+
+*Только админы:*
+ - /setflood <число/`no`/`off`>: Включить или выключить антифлуд защиту.""",
+
+"Antispam security_help":"""*Только админы:*
+ - /antispam : Отключить защиту от нежелательного спама в группе, или показать текущие настройки если нет аргумента.
+
+Антиспам используется владельцами ботов для бана спамеров во всех группах. Это помогает защитить \
+вас и ваши группы, удалив спам флудеров как можно быстрее. Это может быть отключено для вашей группы используя \
+`/antispam off`""",
+
+"Locks_help": """ - /locktypes: список возможных типов блокировок.
+
+*Только админы:*
+ - /lock <тип>: заблокировать элемент в этом чате.
+ - /unlock <тип>: разблокировать элемент в этом чате.
+ - /locks: Текущий список блокировок в этом чате.
+
+Блокировки можно использовать для ограничения пользователей группы. Например:
+Блокировка URL-адресов будет автоматически удалять все сообщения с URL-адресами, которые не были в белом списке, блокировка стикеров будут удалены все \
+стикеры и т. д.
+Блокировка ботов остановит не администраторов от добавления ботов в чат.""",
+
+"Command disabling_help":""" - /cmds: Проверка текущего состояния отключенных комманд.
+*Только админы:*
+ - /enable <комманда>: включить эту комманду.
+ - /disable <комманда>: выключить эту комманду.
+ - /listcmds: список всех возможных комманд для отключения.""",
+
+"Filters_help": """ - /filters: список всех активных фильтров в этом чате.
+
+*Только админы:*
+ - /filter <ключевое слово> <ответное сообщение >: Добавить фильтр в этот чат. Бот будет отвечать на это сообщение всякий раз, когда "ключевое слово" \
+будет упомянуто.
+ПРИМЕЧАНИЕ: все фильтры не чуствительны к регистру букв.
+Если вы отвечаете стикером с ключевым словом, то ответьте на стикер сообщением `/filter 'ключевое слово'`.
+Если вы хотите, чтобы ваше ключевое слово было предложением, используйте одинарные кавычки. Например: `/filter 'Привет всем' Как вы?`
+ - /stop <ключевое слово>: Остановить этот фильтр.""",
+
+"Bans_help": """ - /kickme: Удаляет пользователя написавшего это из группы.
+
+*Только админы:*
+ - /ban <пользователь>: Забанить пользователя.
+ - /tban <пользователь> (m/h/d): Забанить пользователя на X время. m = минуты, h = часы, d = дни.
+ - /unban <пользователь>: Разбанить пользователя.
+ - /kick <пользователь>: Удалить пользователя из группы.
+ПРИМЕЧАНИЕ: Вместо конструкции `/комманда <пользователь>` можно ответить коммандой на любое сообщение пользователя.""",
+
+"Connections_help":"""Соединения можно использовать для контролирования группы с лички бота, это удобно чтобы не спамить в чат.
+Доступны действия с соедененными группами:
+ • Просмотр и редактирование заметок.
+ • Просмотр и редактирование фильтров.
+ • Просмотр и редактирование черного списка.
+ • Назначать/понижать пользователей.
+ • Просмотр списка админов, просмотр ссылки-приглашения.
+ • Включать/выключать комманды в чате
+ • Мутить/размутить пользователей в чате
+ • Ограничить пользователей в чате
+ • Больше в будущем!
+
+ - /connection : Подключится к группе.
+ - /disconnect: Отключится от группы.
+ - /allowconnect on/yes/off/no: Разрешить подключение пользователей к этой группе.""",
+
+"RSS Feed_help": """ - /addrss <ссылка>: Добавить ссылку в подписку RSS.
+ - /removerss <ссылка>: Удалить ссылку из подписки.
+ - /rss <ссылка>: Показать последнюю новость из RSS единожды.
+ - /listrss: Показать подписки.
+
+ПРИМЕЧАНИЕ: В группе только админы могут добавлять/удалять RSS ссылки""",
+
+"Sed/Regex_help": """- s/<текст1>/<текст2>(/<флаг>): ответьте на сообщение с этой коммандой чтобы произвести операцию замены текста на ней, будет заменен \
+'текст1' на 'текст2'. Флаг опционален, '`i`' для игнорироваия капса, '`g`' для глобальной замены.
+Разделители могут быть `/`, `_`, `|`, и `:`. Поддерэивается группировка текста. Результат не может быть больше чем 4096 символов.
+
+ПРИМЕЧАНИЕ: Sed использует некоторые специальные символы, такие как: `+*.?\\`
+Если вы хотите использовать эти символы, убедитесь, что вы их экранируете!
+Пример: `\\?`.""",
+
+"Log Channels_help": """*Только админы:*
+- /logchannel: Получить информацию о текущем лог канале
+- /setlog: Установить канал для логирования.
+- /unsetlog: Отключить канал для логирования.
+
+Настройка канала для логирования:
+- Добавление бота в канал (Как админа!)
+- Отправка `/setlog` в канал
+- Пересылка отправленного сообщения `/setlog` в группе
+""",
+
+"Reporting_help": """ - /report <причина>: ответьте на сообщение что бы отправить его админам на проверку.
+ - @admin: Тоже самое как и /report, только без причины.
+ПРИМЕЧАНИЕ: Возможность репорта дана только пользователям, на адмиов не будет реакции
+
+*Только админы:*
+ - /reports : сменить настройки репорта, или посмотреть текущий статус.
+ - Если ввести в личку бота - изменить свои настройки.
+ - Если ввести в чат - изменить настройки чата.""",
+
+"Notes_help": """ - /get <название заметки>: Получить заметку с этим именем.
+ - #<название заметки>: Тоже самое что и /get.
+ - /notes или /saved: Показать все заметки в этой группе.
+
+Если вы хотите получить содержимое заметки без какого-либо форматирования, используйте `/get <название заметки> noformat`. Это \
+полезно при обновлении существующей заметки.
+
+*Только админы:*
+ - /save <название заметки> <данные заметки>: Сохранить заметку
+Кнопка может быть добавлена к заметке с помощью стандартного синтаксиса ссылки на разметку - ссылка должна быть просто добавлена с помощью \
+`buttonurl:` пример: `[Кнопка](buttonurl:example.com)`. Напишите /markdownhelp для получения дополнительной информации.
+ - /save <название заметки>: ответьте на сообщение чтобы сохранить его.
+ - /clear <название заметки>: Удалить заметку с этим именем.""",
+
+"Muting & Restricting_help": """*Только админы:*
+ - /mute <ник>: Замутить пользователя. (Через ник или ответ на сообщеник.)
+ - /tmute <ник> Х(m/h/d): Замутить пользователя на Х время. (Через ник или ответ на сообщеник.) m = минуты, h = часы, d = дни (пример: `60m` или `1h`).
+ - /unmute <ник>: Размутить пользователя. (Через ник или ответ на сообщеник.)
+ - /restrict <ник>: Запретить пользователю отправлять стикеры, гифки, ссылки или медиа.
+ - /trestrict <ник> Х(m/h/d): Запретить пользователю отправлять стикеры, гифки, ссылки или медиа на Х время. (via handle, or reply). m = минуты, h = часы, d = дни (пример: `60m` или `1h`).
+ - /unrestrict <ник>: Разрешить пользователю отправлять стикеры, гифки, ссылки или медиа.""",
+
+"Misc_help": """ - /id: Получить ID группы. Если ответить коммандой на сообщение - выдаст ID пользователя.
+ - /runs: Ответьте случайную строку из массива ответов.
+ - /slap: Ударить пользователя.
+ - /time <место>: Дает местное время в данном месте.
+ - /weather <место>: Получить текущую погоду в этом месте.
+ - /info: Получить информацию о пользователе.
+ - /gdpr: Удаляет вашу информацию из базы данных бота.
+ - /stickerid: Ответьте на стикер чтобы получить его ID.
+ - /getsticker: Ответьте на стикер чтобы получить его как png.
+
+ - /markdownhelp: Краткое изложение того, как работает markdown в Telegram, - можно вызывать только в личке.""",
+
+"Bios and Abouts_help": """ - /setbio <текст>: При ответе, сохранит био другого пользователя.
+ - /bio: Получит био вашего или другого пользователя.
+ - /setme <текст>: Сохранит вашу информацию.
+ - /me: Получить информацию о вас или другом пользователе.""",
+
+"Rules_help": """ - /rules: Получить правила чата.
+
+*Только админы:*
+ - /setrules <правила>: Уставновить правила для чата.
+ - /clearrules: Удалсть правила для группы.""",
+
+"Warnings_help": """ - /warns <ник>: Получить текущие предупреждения пользователя или себя.
+ - /warnlist: Список всех текущих фильтров предупреждения.
+
+*Только админы:*
+ - /warn <ник>: Предупредить пользователя. После 3 предупреждений пользователь будет заблокирован из группы. Можно так же вызвать как ответ.
+ - /resetwarn <ник>: Сбросить предупреждения пользователя. Можно так же вызвать как ответ.
+ - /addwarn <ключевое слово> <предупреждение>: Установить фильтр предупреждения на определенное ключевое слово. Если вы хотите, чтобы ваше ключевое слово \
+было предложением, охватите его кавычками, пример: `/addwarn я сердит 'Это злой пользователь'`.
+ - /nowarn <ключевое слово>: Остановить фильтр предупреждений.
+ - /warnlimit <число>: Установить лимит предупреждений.
+ - /strongwarn : Если значение включено, превышение предела предупреждения приведет к бану. Если выключено, пользователь будет кикнут.""",
+
+"Welcomes/Goodbyes_help": """Сообщения Приветсвия и Прощания могут быть персонализированы многими способами.
+Если вы хотите, чтобы сообщения были индивидуально сгенерированы, например приветственное сообщение по умолчанию, \
+вы можете использовать эти переменные:
+ - `{{first}}`: Имя пользователя.
+ - `{{last}}`: Фамилия пользователя. Если нет фамилии, будет использовано имя.
+ - `{{fullname}}`: Полное имя пользователя. Если нет полного имени, будет использовано имя.
+ - `{{username}}`: Ник пользователя. Если нет полного имени, будет использовано упоминание.
+ - `{{mention}}`: Просто упоминае пользователя с именем.
+ - `{{id}}`: ID пользователя.
+ - `{{count}}`: Счетчик пользователей в группе.
+ - `{{chatname}}`: Имя группы.
+Каждая переменная ДОЛЖНА быть окружена `{{}}` для замены.
+Сообщения Приветсвия и Прощания также поддерживают markdown, поэтому вы можете создавать любые элементы. \
+Кнопки также поддерживаются, поэтому вы можете сделать свои приветствия великолепными с помощью некоторых кнопок с надписью. \
+Чтобы создать кнопку, ссылающуюся на ваши правила, используйте это: `[Правила](buttonurl://t.me/{}?Start=group_id)`.\
+Просто замените `group_id` ID вашей группы, который можно получить через /id. Обратите внимание, что ID группы обычно предшествует знак `-`, он необходим, \
+поэтому, пожалуйста, не удаляйте его. \
+Вы можете даже установить изображения/гифки/видио/голосовые сообщения в качестве приветственного сообщения \
+ответе на нужный элемент и напишите /setwelcome.
+
+*Только админы:*
+ - /welcome : Включить/Выключить приветсвенные сообщения.
+ - /welcome: Показать текущий статус приветсвенных сообщений.
+ - /welcome noformat: Показывает текущие настройки приветствия, без форматирования - полезно при изменении вашого приветственного сообщения!
+ - /goodbye -> такое же использование как и /welcome.
+ - /setwelcome <текст>: Установка пользовательского приветственного сообщение.
+ - /setgoodbye <текст>: Установка пользовательского сообщение прощания.
+ - /resetwelcome: Вернуть приветственное сообщение по умолчанию.
+ - /resetgoodbye: Вернуть прощальное сообщение по умолчанию.
+ - /cleanwelcome : Удаление преведущего приветственного сообщение после отправки нового, что бы избежать спама в группе.
+ - /cleanservice : Удаляет все служебные сообщения; Эти раздражающие \"Х присоединились к группе\", которые вы видите, когда люди присоединяются.
+ - /welcomesecurity : soft - ограничить пользователя отправлять медиафайлы в течение 24 часов, hard - ограничить пользователя отправлять сообщения, пока он не нажимает кнопку \"Я не бот\".""".format(dispatcher.bot.username),
+
+"Word Blacklists_help":"""Черные списки используются, чтобы остановить определенные триггеры в группе. Каждый раз когда триггер будет упоминатся, \
+сообщение будет немедленно удалено. Это хорошо сочетает это с фильтрами предупреждений.
+
+ПРИМЕЧАНИЕ: черные списки не влияют на админов группы.
+
+ - /blacklist: Просмотр текущих тригерров в черных списках.
+
+*Только админы:*
+ - /addblacklist <триггер>: Добавьте триггер в черный список. Каждая строка считается одним триггером, \
+поэтому использование разных строк позволит вам добавить несколько триггеров.
+ - /unblacklist <триггер>: Удалите триггеры из черного списка. Здесь применяется такая же логика новой строки, вы можете удалить \
+несколько триггеров одновременно.
+ - /rmblacklist <триггер>: То же, что и выше.""",
+
+"Purges_help": """*Только админы:*
+ - /del: Удалить сообщение на которое вы ответили.
+ - /purge: Удаляет все сообщения между этим и сообщением на которое вы ответили.
+ - /purge <Число Х>: Удаляет сообщение на которое вы ответили и последующие X-сообщения. """
+}
diff --git a/fire_bot/modules/translations/Ukraine.py b/fire_bot/modules/translations/Ukraine.py
new file mode 100644
index 0000000..707f30f
--- /dev/null
+++ b/fire_bot/modules/translations/Ukraine.py
@@ -0,0 +1,486 @@
+from tg_bot import dispatcher
+
+RUN_STRINGS = (
+ "Куди ти зібрався?",
+ "А? Шо? Вони пішли?"
+ "ZZzzZZzz... А? Шо? о, знову тільки вони, нічого."
+ "Повернися сюди.",
+ "Не так швидко...",
+ "Подивися на стіну!",
+ "Не лишайте мене з ними!!",
+ "Ти біжиш, ти помираєш.",
+ "Ти пошкодуєщ...",
+ "Ви можете спробувати /kickme, я чула, що це цікаво.",
+ "Іди, потурбуй когось іншого, тут всім байдуже.",
+ "Ти біжи, але тобі не сховатися.",
+ "Це все, що в тебе є?",
+ "Я стою позаду...",
+ "У тебе є компанія!",
+ "Ми можемо зробити це легким або складним шляхом.",
+ "Ти просто не розумієщ цього, чи не так?",
+ "Так, тобі краще тікати!",
+ "Будь-ласка, нагадай мені, наскільки мені це важливо?",
+ "На твоєму місці я б біжав швидше.",
+ "Це точно той дроід, якого ми шукаємо.",
+ "Най вдача буде на вашій стороні.",
+ "Усім відомі останні слова.",
+ "Вони зникли назавжди, щоб їх більше не бачили.",
+ "\"О, подивись на мене! Я настільки крутий, що можу втікти від Бога! \"- це людина",
+ "Так, так, просто натисніть /kickme уже.",
+ "Ось, візьміть це кільце й держіть курс на Мордор, вам все одно по дорозі.",
+ "За давніми легендами, вони ще біжать...",
+ "На відміну від Гарі Потера, твоі батьки не зможуть захистити тебе від мене.",
+ "Страх приводить до гніву. Гнів приводить до ненависті. Ненависть приводить до стражданнь. Якщо ви продовжите тікати в страху, ви можете "
+ "стати наступним Вейдером.",
+ "Кілька розрахунків після, я вирішив, що мій інтерес до ваших махінацій рівно 0.",
+ "Продовжуйте, не впевнений, що ми хочемо, щоб ви тут лишались.",
+ "Ти маг-ОЙ. Зажди. Ти не Гарі, продовжуйте рух.",
+ "НЕ БІГАТИ ПО КОРИДОРАМ!",
+ "Hasta la vista, дєтка.",
+ "Хто випустив собаку?",
+ "Це смішно тому, що всім пофіг.",
+ "Ах, яка втрата. Він мені подобався.",
+ "Чесно кажучи, моя дорогенька, мені байдуже.",
+ "Ви не можете йти проти правди!",
+ "Давним-давно, в далкекій-далекій галактиці... Комусь вони були потрібні. Але вже ні.",
+ "Ех, подивись на них! Вони тікають від неминучого банхаммера... Мило.",
+ "Хан стріляв першим. Я зроблю так, як він.",
+ "Навіщо ти біжиш за білим кроликом?",
+ "Як сказав би Доктор... Біжи!",
+)
+
+SLAP_TEMPLATES = (
+ "{user1} {hits} {user2} {itemp}.",
+ "{user1} {hits} в лице {user2} {itemp}.",
+ "{user1} {throws} {itemr} в {user2}.",
+ "{user1} бере {item} та {throws} їм в обличчя {user2}.",
+ "{user1} запускає {itemr} в напрямку {user2}.",
+ "{user1} розпочинає необразливо плескати {user2} {itemp}.",
+ "{user1} притискає {user2} та кілька разів {hits} його {itemp}.",
+ "{user1} хапає {itemr} та {hits} {user2}",
+ "{user1} прив'язує {user2} до стільця й {throws} {itemr} у нього.",
+ "{user1} по дружньому підштовхнув {user2}, щоб той швидше навчився плавати в лаві."
+)
+
+ITEMS = (
+ "чавунна сковорідка",
+ "велика форель",
+ "бейсбольна біта",
+ "крикетна біта",
+ "дерев'яна палиця",
+ "ніготь",
+ "принтер",
+ "лопата",
+ "ЕЛТ-монітор",
+ "книжка з фізики ",
+ "тостер",
+ "портрет Річарда Столмана",
+ "телевізор",
+ "п'ятитонна машина",
+ "рулон клейкої стрічки",
+ "книга",
+ "ноутбук",
+ "старий телевізор",
+ "мішок каменів",
+ "форель",
+ "гумове курчатко",
+ "шипаста летюча миша",
+ "вогнегасник",
+ "важкий камінь",
+ "шматок гімна",
+ "вулик",
+ "шматок гнилого м'яса",
+ "ведмідь",
+ "тонна цеглин",
+)
+
+ITEMSP_UA = (
+ "чавунною сковорідкою",
+ "великою фореллю",
+ "бейсбольною бітою",
+ "крикетною бітой",
+ "дерев'яною палицею",
+ "нігтем",
+ "принтером",
+ "лопатою",
+ "ЕЛТ-монітором",
+ "книжкою з фізики ",
+ "тостером",
+ "портретом Річарда Столмана",
+ "телевізором",
+ "пятитонною машиною",
+ "рулоном скотча",
+ "книгою",
+ "ноутбуком",
+ "старим телевізором",
+ "мішком каменів",
+ "фореллю",
+ "гумовим курчатком",
+ "шипастою летючею мишею",
+ "вогнегасником",
+ "важким каменем",
+ "шматком гімна",
+ "улеєм",
+ "шматком гнилого м'яса",
+ "ведмедем",
+ "тонною цеглин",
+ "гігантським пиріжком",
+)
+
+ITEMSR_UA = (
+ "чавунну сковорідку",
+ "велику форель",
+ "бейсбольну біту",
+ "крикетну біту",
+ "дерев'яну палицю",
+ "ніготь",
+ "принтер",
+ "лопату",
+ "ЕЛТ-монітор",
+ "книжку з фізики",
+ "тостер",
+ "портрет Річарда Столмана",
+ "телевізор",
+ "п'ятитону машинк",
+ "рулон скотчу",
+ "книгу",
+ "ноутбук",
+ "старий телевізор",
+ "мішок каменів",
+ "форель",
+ "гумове курча",
+ "шипасту летучу мишу",
+ "вогнегасник",
+ "важкий камінь",
+ "шматок гімна",
+ "вулик",
+ "шматок гнилого м'яса",
+ "ведмедя",
+ "тонну цеглин",
+)
+
+
+THROW = (
+ "кидає",
+ "швиряє",
+ "роняє",
+)
+
+HIT = (
+ "б'є",
+ "молотить",
+ "шльопає",
+ "хлопає",
+ "колотить",
+ "царапає",
+)
+
+UkrainianStrings = {
+
+#Connections
+ "Disabled connections to this chat for users": "Від'єднані з'єднання в цьому чаті для користувачів",
+ "Enabled connections to this chat for users": "Увімкнені з'єднання в цьому чаті для користувачів",
+ "Please enter on/yes/off/no in group!": "Будь-ласка введіть on/yes/off/no в групу!",
+ "Successfully connected to *{}*": "Успішно під'єднано до *{}*",
+ "Connection failed!": "З'єднання не вдалось!",
+ "Connections to this chat not allowed!": "Під'єднання до цього чату не дозволено!",
+ "Write chat ID to connect!": "Напишіть ID чату для під'єднання",
+ "Usage limited to PMs only!": "Використання лімітовано лише для особистих повідомлень!",
+
+#Admin
+ "How am I meant to promote someone that's already an admin?": "Як я можу призначити адміном того, хто вже ним являється?",
+ "I can't promote myself! Get an admin to do it for me.": "Я не можу призначити себе! Отримайте адміністратора, щоб зробити це для мене.",
+ "Successfully promoted in *{}*!": "Успішно призначений в *{}*!",
+
+ "This person CREATED the chat, how would I demote them?": "Ця людина СТВОРИЛА чат, як я можу її знизити?",
+ "Can't demote what wasn't promoted!": "Як я можу знизити того хто не є адміном?",
+ "I can't demote myself!": "Я не можу знизити себе!",
+ "Successfully demoted in *{}*!": "Успішно знизений в *{}*!",
+ "Could not demote. I might not be admin, or the admin status was appointed by another user, so I can't act upon them!":
+ "Я не можу знизити. Можливо я не адмін, чи статус адміністратора був був призначений іншим користувачем, тому я не можу знизити його!",
+
+ "I don't have access to the invite link, try changing my permissions!": "У мене немає доступу до запрошувального посилання, спробуйте змінити мої права!",
+ "I can only give you invite links for supergroups and channels, sorry!": "Я можу надавати запрошувальні посилання для супергруп та каналів!",
+
+ "Admins in": "Адміністратори в",
+ "this chat": "цьому чаті",
+ " (Creator)": " (Створювач)",
+
+#Multi
+ "Invalid Chat ID provided!": "ID чату не існує!", #Connections
+ "You don't seem to be referring to a user.": "Здається, ви звертаєтесь не до користувача.", #Admin
+
+#Misc
+"RUNS-K": RUN_STRINGS,
+"SLAP_TEMPLATES-K": SLAP_TEMPLATES,
+"ITEMS-K": ITEMS,
+"HIT-K": HIT,
+"THROW-K": THROW,
+"ITEMP-K": ITEMSP_UA,
+"ITEMR-K": ITEMSR_UA,
+"Today in {} is being {}, around {}°C.\n": "Сьогодні в {} {}, приблизно {}°C.\n",
+
+#Multi
+ "Invalid Chat ID provided!": "ID чату не існує!", #Connections
+
+#__main__
+ #Module names
+ "Admin": "Адміністрування",
+ "AFK": "Режим АФК",
+ "AntiFlood": "Антифлуд",
+ "Bans": "Бани",
+ "Word Blacklists": "Чорні списки",
+ "Filters": "Фільтри",
+ "Command disabling": "Відключення команд",
+ "Antispam security": "Антиспам захист",
+ "Locks": "Блокування",
+ "Log Channels": "Логування дій",
+ "Misc": "Інше",
+ "Purges": "Очистка",
+ "Muting & Restricting": "Мути й заборони",
+ "Notes": "Замітки",
+ "Reporting": "Репорти",
+ "RSS Feed": "RSS Лента",
+ "Rules": "Правила",
+ "Connections": "З'єднання",
+ "Bios and Abouts": "Підпис людини",
+ "Warnings": "Попередження",
+ "Welcomes/Goodbyes": "Привітання/Прощання",
+
+#Some main stuff
+"Here is the help for the *{}* module:\n{}": "Допомога по модулю *{}*:\n{}",
+"Back": "Назад",
+"send-help": """Головні команди:
+ - /start: коротка інфа про бота.
+ - /help: Я напишу вам повідомлення.
+ - /help <назва модуля>: Я раскажу вам про цей модуль.
+ - /donate: Інформація про те як вдонатити в мене!
+ - /lang: Змінити мову бота.
+ - /settings: Показати поточні установки бота.
+ {}
+ """,
+
+
+"\nAll commands can either be used with `/` or `!`.\n": "\nУсі команди можуть починатися з `/` або `!`\n",
+
+#Module helps
+"Admin_help": """ - /adminlist | /admins: Список адмінів чату.
+
+*Тільки для адміністраторів:*
+ - /pin: Тихо закріпити отримане повідомлення - додайте аргумент 'loud' або 'notify' щоб повідомити користувачів про закріплення.
+ - /unpin: Відкріпити дане закріплене повідомлення.
+ - /invitelink: Отримати посилання-запрошення.
+ - /promote: Підвищити користівача.
+ - /demote: Знизити користувача.""",
+
+"AFK_help": """ - /afk <причина>: відмітити себе як АФК.
+ - brb <причина>: теж саме як /afk - але не команда.
+
+Якщо ви відмітили себе як АФК, на будь-яке згадування про вас буде відправлене повідомлення про вашу недоступність.""",
+
+"AntiFlood_help": """- /flood: Отримати дані установки антифлуда.
+
+*Тільки адміни:*
+ - /setflood <число/`no`/`off`>: Увімкнути або вимкнути антифлуд захист.""",
+
+"Antispam security_help":"""*Тільки адміни:*
+ - /antispam : Вимкнути захист від небажаного спаму, або показати дані установки якщо немає аргумента.
+
+Антиспам використовується власниками ботів для бану спамерів у всіх групах. Це допомагає захистити \
+вас та ваші групи, видаляючи спам флудерів як можна швидше. Це може бути відключене для вашої групи використовуючи \
+`/antispam off`""",
+
+"Locks_help": """ - /locktypes: список можливих блокувань.
+
+*Тільки адміни:*
+ - /lock <тип>: заблокувати елемент у цьому чаті.
+ - /unlock <тип>: разблокувати елемент у цьому чаті.
+ - /locks: Даний список блокувань у цьому чаті.
+
+Блокування можна використовувати для обмеження користувачів групи. Наприклад:
+Блокування URL-адрес буде автоматично видаляти всі повідомлення з URL-адресами, які не були в білому списці, блокування стикерів буде видаляти всі \
+стикери и т. п.
+Блокування ботів зупине не адміністраторів від додавання ботів у чат.""",
+
+"Command disabling_help":""" - /cmds: Перевірка даного стану відключених команд.
+*Тільки адміни:*
+ - /enable <команда>: увімкнути цю команду.
+ - /disable <команда>: вимкнути цю команду.
+ - /listcmds: список усіх можливих команд для відключення.""",
+
+"Filters_help": """ - /filters: список усіх активних фільтрів у цьому чаті.
+
+*Тільки адміни:*
+ - /filter <ключове слово> <відповідне повідомлення>: Додати фільтр у цей чат. Бот буде відповідати на це повідомлення кожен раз, як "ключове слово" \
+буде згадано.
+ДОДАТОК: усі фільтри не вразливі до регистру букв.
+Якщо ви відповідаєте стикером з ключовим словом, то дайте відповідь на стикер повідленням `/filter 'ключове слово'`.
+Якщо ви хочете, щоб ваше ключове слово було реченням, використовуйте одинарні кавички. Наприклад: `/filter 'Привіт усім' Як ви?`
+ - /stop <ключове слово>: Зувинти цей фільтр.""",
+
+"Bans_help": """ - /kickme: Видаляє користувача написавшего це з групи.
+
+*Тільки адміни:*
+ - /ban <користувач>: забанити користувача.
+ - /tban <користувач> (m/h/d): Забанити користувача на X часу. m = хвилини, h = години, d = дні.
+ - /unban <користувач>: Разбанити користувача.
+ - /kick <користувач>: видалити користувача.
+ДОДАТОК: Замість конструкції `/команда <користувач>` можно відповісти командою на будь-яке повідомлення користувача.""",
+
+"Connections_help":"""З'єднання можно використати для контролювання групи з ОП бота, це зручно щоб не спамити в чат.
+Доступні дії з групами:
+ • Перегляд та змінення нотаток
+ • Перегляд та редагування фільтрів.
+ • Перегляд та редагування нотаток.
+ • Підвищувати/знижувати користувачів.
+ • Перегляд списку адмінів, перегляд посилання для запрошення.
+ • Вмикати/вимикати комманди в чаті
+ • Більше в майбутньому!
+
+ - /connection : Підключитися до групи.
+ - /disconnect: Відключитися від групи.
+ - /allowconnect on/yes/off/no: Дозволити підключення користувачів(юзерів) до цієї групи.""",
+
+"RSS Feed_help": """ - /addrss <посилання>: Додати посилання в підписку RSS.
+ - /removerss <посилання>: Видалити посилання з підпису.
+ - /rss <посилання>: Показати останню новину з RSS один раз.
+ - /listrss: Показати підписки.
+
+ДОДАТОК: В групі тільки адміни можуть додавати/видаляти RSS посилання""",
+
+"Sed/Regex_help": """- s/<текст1>/<текст2>(/<прапор>): дайте відповідь на повідомлення з цією командою щоб замінити текст на ній, буде замінено \
+'текст1' на 'текст2'. Прапор опціональний, '`i`' для ігнорування капсу, '`g`' для глобальної заміни.
+Розділювачі можуть бути `/`, `_`, `|`, та `:`. Підтримується групування тексту. Результат не може бути більше ніж 4096 символів.
+
+ДОДАТОК: Sed використовує деякі спеціальні символи, такі як: `+*.?\\`
+Якщо ви хочете використовувати ці символи, переконайтесь, що ви їх екрануєте!
+Приклад: `\\?`.""",
+
+"Log Channels_help": """*Тільки адміни:*
+- /logchannel: Отримати інформацію про даний лог канал
+- /setlog: Встановити канал для логування.
+- /unsetlog: Вимкнути канал для логування.
+
+Налаштування канала для логування:
+- Додавання бота в канал (Як адміна!)
+- Відправлення `/setlog` в канал
+- Пересилання відправленого повідомлення `/setlog` в групі
+""",
+
+"Reporting_help": """ - /report <причина>: дайте відповідь на повідомлення щоб відправити його адмінам на перевірку.
+ - @admin: теж саме що й /report, тільки без причини.
+ДОДАТОК: Можливість репорта дозволена тільки користувачям, на адмінів не буде реакції
+
+*Тільки адміни:*
+ - /reports : змінити установки репорта, або продивитися даний статус.
+ - Якщо вивести в личку бота - змінити свої установки.
+ - Якщо ввести в чат - Змінити установки чата.""",
+
+"Notes_help": """ - /get <назва нотатки>: Отримати нотатку з цим іменем.
+ - #<назва нотатки>: ткж саме що й /get.
+ - /notes або /saved: Показати усі нотатки в цій групі.
+
+Якщо ви хочете отримати вміст нотатки без ніякого форматування, використайте `/get <назва нотатки> noformat`. Це \
+корисно при оновленні існуючої нотатки.
+
+*Тільки адміни:*
+ - /save <назва нотатки> <данні нотатки>: Збарегти нотатку.
+Кнопка може бути додана до нотатки з допомогою стандартного синтаксиса посилання на рохмітку - посилання повинне бути просто додано з допомогою \
+`buttonurl:` приклад: `[Кнопка](buttonurl:example.com)`. Напишіть /markdownhelp Для отримання розширеної інформації.
+ - /save <назва нотатки>: дайте відповідь на повідомлення щоб зберегти.
+ - /clear <назва нотатки: видалити нотатку з цим іменем.""",
+
+"Muting & Restricting_help": """*Тільки адміни:*
+ - /mute <нік>: Замутити користувача. (Через нік або відповадь на повідомлення.)
+ - /tmute <нік> Х(m/h/d): Замутити користувача на Х часу. (Через нік або відповідь на повідомлення.) m = хвилини, h = години, d = дні (приклад: `60m` або `1h`).
+ - /unmute <нік>: Размутити користувача. (Через нік або відповідь на повідомлення.)
+ - /restrict <нік>: Заборонити користувачу відправляти стікери, гіфки, посилання чи медіа.
+ - /trestrict <нік> Х(m/h/d): Заборонити користувачу відправляти стікери, гіфки, посилання чи медіа на Х часу. (via handle, or reply). m = хвилини, h = години, d = дні (приклад: `60m` або `1h`).
+ - /unrestrict <нік>: Дозволити користувачу відправляти стікери, гіфки, посилання чи медіа.""",
+
+"Misc_help": """ - /id: Отримати ID групи. Якщо відповісти командою на повідомлення - ви отримаєте ID користувача.
+ - /runs: Відповісти рандомною фразою.
+ - /slap: Вдарити користувача.
+ - /time <місце>: Виводить місцевий час.
+ - /info: Отримати інфу про користувача.
+ - /gdpr: Видаляє інфу про вас з бази данних бота.
+ - /stickerid: Дайте відповідь на стікер щоб отримати його ID.
+ - /getsticker: Дайте відповідь на стікер щоб отримати його як png.
+
+ - /markdownhelp: Коротка інформація про те, як працює markdown в Telegram, - можна викликати тільки в личці.""",
+
+"Bios and Abouts_help": """ - /setbio <текст>: При відповаіді, збереже біо іншого користувача.
+ - /bio: Виведе біо вашого чи іншого користувача.
+ - /setme <текст>: Збереже вашу інформацію.
+ - /me: Виведе інформацію про вас, чи про іншого користувача.""",
+
+"Rules_help": """ - /rules: Вивести правила чата.
+
+*Тільки адміни:*
+ - /setrules <правила>: Встановити правила для чата.
+ - /clearrules: Видалити правила для групи.""",
+
+"Warnings_help": """ - /warns <нік>: Вивести дані варни цього користувача чи для себе.
+ - /warnlist: Вивести список фільтрів для варнів.
+
+*Тільки адміни:*
+ - /warn <нік>: Попередити користувача. Після 3 попереджень користувач буде заблокований у групі. Можна також використати як відповідь.
+ - /resetwarn <нік>: Скинути попередження користувача. Можна також використати як відповідь.
+ - /addwarn <ключове слово> <попередження>: Встановити фільтр попередження на ключове слово. Якщо ви хочете, щоб ваше ключове слово \
+було реченням, виділіть його кавичками, наприклад: `/addwarn я розлючений 'Це злий користувач'`.
+ - /nowarn <ключове слово>: Вимкнути фільтр попереджень.
+ - /warnlimit <число>: Встановити ліміт попереджень.
+ - /strongwarn : Якщо увімкнено, то перевищення ліміту попереджень призведе до бану. Якщо вимкнено, користувач буде кікнутий.""",
+
+"Welcomes/Goodbyes_help": """Повідомлення Привітання та Прощання можуть бути персоналізовані багатьма методами.
+Якщо ви хочете, щоб повідомлення були індивідуально сгенеровані, наприклад привітальне повідомлення за умовчанням, \
+аи можете використовувати такі змінні:
+ - `{{first}}`: Ім'я користувача.
+ - `{{last}}`: Прізвище користувача. Якщо нема прізвища, буде використано ім'я.
+ - `{{fullname}}`: Повне ім'я користувача. Якщо нема повного імені, буде використано ім'я.
+ - `{{username}}`: Нік користувача. Якщо нема повного імені, буде використано згадування.
+ - `{{mention}}`: Згадує користувача з іменем.
+ - `{{id}}`: ID користувача.
+ - `{{count}}`: Лічильник користувачів у групі.
+ - `{{chatname}}`: Ім'я групи.
+Кожна змінна ПОВИННА бути виділена `{{}}` для зміни.
+Повідомлення Привітання й Прощання також підтримують markdown, тому ви можете створювати будь-які елементи. \
+Кнопки також підтримуються, тому ви можете створити свої привітання чудовими з лоромогою деяких кнопок з написом. \
+Щоб створити кнопку, що ссилається на ваші правила, використовуйте це: `[Правила](buttonurl://t.me/{}?Start=group_id)`.\
+Просто змініть `group_id` ID вашої групи, який можна отримати через /id. Зверніть увагу, що ID групи зазвичай зазвичай передує `-`, він потрібен, \
+тому, будь-ласка, не видяляйте його. \
+Ви можете також встановити зображення/гіфки/відео/голосові повідомлення в якості привітального повідомлення \
+дайте відповідь на потрібний елемент та напишіть /setwelcome.
+
+*Тільки адміни:*
+ - /welcome : Увімкнути/Вимкнути привітальні повідомлення.
+ - /welcome: Показує даний статус привітальних повідомлень.
+ - /welcome noformat: Показує данні установки привітання, без форматування - корисно при зміненні вашого привітального повідомлення!
+ - /goodbye -> так само як і /welcome.
+ - /setwelcome <текст>: Установка користувацького привітального повідомлення.
+ - /setgoodbye <текст>: Установка користувацького прощального повідомлення.
+ - /resetwelcome: Повернути привітальне повідомлення за умовчанням.
+ - /resetgoodbye: Повернути прощальне повідомлення за умовчанням.
+ - /cleanwelcome : Видалення попереднього привітального повідомлення після відправлення нового, щоб уникнути спаму в групі.
+ - /cleanservice : Видаляє всі службові повідомлення; Ці докучливі \"Х приєдналися до групи\", котрі ви бачите, коли люди приєднуються до групи.
+ - /welcomesecurity : soft - заборонити користувачу відправляти медіафайли протягом 24 годин, hard - заборонити користувачу віправляти повідомлення, поки він не натисне кнопку \"Я не бот\".""".format(dispatcher.bot.username),
+
+"Word Blacklists_help":"""Чорні списки використовуються, щоб зупинити певні трігери в групі. Кожен раз, коли трігер буде згадано, \
+повідомлення буде миттєво видалене. Це добре комбінується з фільтрами попереджень.
+
+ДОДАТОК: чорні списки не діють на адмінів групи.
+
+ - /blacklist: Перегляд поточних трігерів в групі.
+
+*Тільки адміни:*
+ - /addblacklist <трігер>: додайте трігер в чорний список. Кожна строка розпочиняється одним трігером, \
+тому використання різних строк дозволить вам додавати кілька трігерів.
+ - /unblacklist <трігер>: видалення трігера з чорного списку. Тут використовуєьбся така ж логіка нової строки, ви можете видалити \
+кілька трігерів одночасно.
+ - /rmblacklist <трігер>: теж саме, що й вище.""",
+
+"Purges_help": """*Тільки адміни:*
+ - /del: видалити повідомлення, на яке ви відповіли.
+ - /purge: видаляє всі повідомлення між цим та тим на яке ви відповіли.
+ - /purge <Число Х>: видаляє повідомлення на яке ви відповіли й наступні Х-повідомлень. """
+}
diff --git a/fire_bot/modules/translations/list_locale.py b/fire_bot/modules/translations/list_locale.py
new file mode 100644
index 0000000..57bd7b3
--- /dev/null
+++ b/fire_bot/modules/translations/list_locale.py
@@ -0,0 +1,185 @@
+list_locales = { 'ab': 'Abkhaz',
+'aa': 'Afar',
+'af': 'Afrikaans',
+'ak': 'Akan',
+'sq': 'Albanian',
+'am': 'Amharic',
+'ar': 'Arabic',
+'an': 'Aragonese',
+'hy': 'Armenian',
+'as': 'Assamese',
+'av': 'Avaric',
+'ae': 'Avestan',
+'ay': 'Aymara',
+'az': 'Azerbaijani',
+'bm': 'Bambara',
+'ba': 'Bashkir',
+'eu': 'Basque',
+'be': 'Belarusian',
+'bn': 'Bengali',
+'bh': 'Bihari',
+'bi': 'Bislama',
+'bs': 'Bosnian',
+'br': 'Breton',
+'bg': 'Bulgarian',
+'my': 'Burmese',
+'ca': 'Catalan',
+'ch': 'Chamorro',
+'ce': 'Chechen',
+'ny': 'Chichewa',
+'zh': 'Chinese',
+'cv': 'Chuvash',
+'kw': 'Cornish',
+'co': 'Corsican',
+'cr': 'Cree',
+'hr': 'Croatian',
+'cs': 'Czech',
+'da': 'Danish',
+'dv': 'Divehi',
+'nl': 'Nederlands',
+'dz': 'Dzongkha',
+'en': 'English',
+'eo': 'Esperanto',
+'et': 'Estonian',
+'ee': 'Ewe',
+'fo': 'Faroese',
+'fj': 'Fijian',
+'fi': 'Finnish',
+'fr': 'French',
+'ff': 'Fula',
+'gl': 'Galician',
+'ka': 'Georgian',
+'de': 'Deutsch',
+'el': 'Greek',
+'gn': 'Guaraní',
+'gu': 'Gujarati',
+'ht': 'Haitian',
+'ha': 'Hausa',
+'he': 'Hebrew',
+'hz': 'Herero',
+'hi': 'Hindi',
+'ho': 'Hiri Motu',
+'hu': 'Hungarian',
+'ia': 'Interlingua',
+'id': 'Indonesian',
+'ie': 'Interlingue',
+'ga': 'Irish',
+'ig': 'Igbo',
+'ik': 'Inupiaq',
+'io': 'Ido',
+'is': 'Icelandic',
+'it': 'Italian',
+'iu': 'Inuktitut',
+'ja': 'Japanese',
+'jv': 'Javanese',
+'kl': 'Kalaallisut',
+'kn': 'Kannada',
+'kr': 'Kanuri',
+'ks': 'Kashmiri',
+'kk': 'Kazakh',
+'km': 'Khmer',
+'ki': 'Kikuyu',
+'rw': 'Kinyarwanda',
+'ky': 'Kirghiz',
+'kv': 'Komi',
+'kg': 'Kongo',
+'ko': 'Korean',
+'ku': 'Kurdish',
+'kj': 'Kwanyama',
+'la': 'Latin',
+'lb': 'Luxembourgish',
+'lg': 'Luganda',
+'li': 'Limburgish',
+'ln': 'Lingala',
+'lo': 'Lao',
+'lt': 'Lithuanian',
+'lu': 'Luba-Katanga',
+'lv': 'Latvian',
+'gv': 'Manx',
+'mk': 'Macedonian',
+'mg': 'Malagasy',
+'ms': 'Malay',
+'ml': 'Malayalam',
+'mt': 'Maltese',
+'mi': 'Māori',
+'mr': 'Marathi',
+'mh': 'Marshallese',
+'mn': 'Mongolian',
+'na': 'Nauru',
+'nv': 'Navajo',
+'nb': 'Norwegian Bokmål',
+'nd': 'North Ndebele',
+'ne': 'Nepali',
+'ng': 'Ndonga',
+'nn': 'Norwegian Nynorsk',
+'no': 'Norwegian',
+'ii': 'Nuosu',
+'nr': 'South Ndebele',
+'oc': 'Occitan',
+'oj': 'Ojibwe',
+'cu': 'Old Church Slavonic',
+'om': 'Oromo',
+'or': 'Oriya',
+'os': 'Ossetian',
+'pj': 'Punjabi',
+'pi': 'Pāli',
+'fa': 'Persian',
+'pl': 'Polish',
+'ps': 'Pashto',
+'pt': 'Portuguese',
+'pt-br' : 'Brazilian Portuguese',
+'qu': 'Quechua',
+'rm': 'Romansh',
+'rn': 'Kirundi',
+'ro': 'Moldavan',
+'ru': 'Russian',
+'sa': 'Sanskrit',
+'sc': 'Sardinian',
+'sd': 'Sindhi',
+'se': 'Northern Sami',
+'sm': 'Samoan',
+'sg': 'Sango',
+'sr': 'Serbian',
+'gd': 'Scottish Gaelic',
+'sn': 'Shona',
+'si': 'Sinhalese',
+'sk': 'Slovak',
+'sl': 'Slovene',
+'so': 'Somali',
+'st': 'Southern Sotho',
+'es': 'Castilian',
+'su': 'Sundanese',
+'sw': 'Swahili',
+'ss': 'Swati',
+'sv': 'Swedish',
+'ta': 'Tamil',
+'te': 'Telugu',
+'tg': 'Tajik',
+'th': 'Thai',
+'ti': 'Tigrinya',
+'bo': 'Tibetan',
+'tk': 'Turkmen',
+'tl': 'Tagalog',
+'tn': 'Tswana',
+'to': 'Tonga',
+'tr': 'Turkish',
+'ts': 'Tsonga',
+'tt': 'Tatar',
+'tw': 'Twi',
+'ty': 'Tahitian',
+'ug': 'Uyghur',
+'uk': 'Ukrainian',
+'ur': 'Urdu',
+'uz': 'Uzbek',
+'ve': 'Venda',
+'vi': 'Vietnamese',
+'vo': 'Volapük',
+'wa': 'Walloon',
+'cy': 'Welsh',
+'wo': 'Wolof',
+'fy': 'Western Frisian',
+'xh': 'Xhosa',
+'yi': 'Yiddish',
+'yo': 'Yoruba',
+'za': 'Chuang',
+'zu': 'Zulu'}
diff --git a/fire_bot/modules/translations/strings.py b/fire_bot/modules/translations/strings.py
new file mode 100644
index 0000000..bcc62d1
--- /dev/null
+++ b/fire_bot/modules/translations/strings.py
@@ -0,0 +1,45 @@
+from tg_bot.modules.sql.translation import prev_locale
+from tg_bot.modules.translations.English import EnglishStrings
+from tg_bot.modules.translations.Russian import RussianStrings
+from tg_bot.modules.translations.Ukraine import UkrainianStrings
+
+def tld(chat_id, t, show_none=True):
+ LANGUAGE = prev_locale(chat_id)
+ print(chat_id, t)
+ if LANGUAGE:
+ LOCALE = LANGUAGE.locale_name
+ if LOCALE in ('ru') and t in RussianStrings:
+ return RussianStrings[t]
+ elif LOCALE in ('uk') and t in UkrainianStrings:
+ return UkrainianStrings[t]
+ else:
+ if t in EnglishStrings:
+ return EnglishStrings[t]
+ else:
+ return t
+ elif show_none:
+ if t in EnglishStrings:
+ return EnglishStrings[t]
+ else:
+ return t
+
+
+
+def tld_help(chat_id, t):
+ LANGUAGE = prev_locale(chat_id)
+ print("tld_help ", chat_id, t)
+ if LANGUAGE:
+ LOCALE = LANGUAGE.locale_name
+
+ t = t + "_help"
+
+ print("Test2", t)
+
+ if LOCALE in ('ru') and t in RussianStrings:
+ return RussianStrings[t]
+ elif LOCALE in ('uk') and t in UkrainianStrings:
+ return UkrainianStrings[t]
+ else:
+ return False
+ else:
+ return False