diff --git a/locales/ru-RU/admin.json b/locales/ru-RU/admin.json
new file mode 100644
index 0000000000..27f48d3b2e
--- /dev/null
+++ b/locales/ru-RU/admin.json
@@ -0,0 +1,68 @@
+{
+ "no_admin_error": "Вы должны быть администратором, чтобы воспользоваться этой командой.",
+ "no_permission_error": "К сожалению у Вас нет необходимых прав для выполнения команды. Отсутствующие права: {permissions}",
+ "private_not_allowed": "Данную команду невозможно использовать в приватном чате. Если Вам нужна помощь, пожалуйста, воспользуйтесь командой /help.",
+ "purge_no_reply": "Ответьте На Сообщение, Чтобы Очистить Его.",
+ "delete_no_reply": "Ответьте На Сообщение, Чтобы Удалить Его.",
+ "pin_no_reply": "Ответьте На Сообщение, Чтобы Закрепить/Открепить Его.",
+ "report_no_reply": "Ответьте На Сообщение, Для Жалобы на Пользователя.",
+ "no_delete_perm": "Пожалуйста, предоставьте мне доступ на удаление сообщений.",
+ "purge_success": "Успешно удалено {del_total} сообщений..",
+ "user_not_found": "Я не могу найти такого пользователя.",
+ "invalid_id_uname": "⚠️ Неправильный userid/username",
+ "kick_self_err": "Я не могу выгнать себя, я могу уйти если вы хотите.",
+ "ban_self_err": "Я не могу заблокировать себя, я могу уйти если вы хотите.",
+ "report_self_err": "Зачем вы жалуетесь на себя?",
+ "demote_self_err": "Я не могу понизить себя.",
+ "warn_self_err": "Я не могу дать предупреждение себе.",
+ "mute_self_err": "Я не могу дать мут себе.",
+ "kick_sudo_err": "Ого, ты хочешь выгнать моего хозяина?",
+ "ban_sudo_err": "Ого, ты хочешь заблокировать моего хозяина?",
+ "demote_sudo_err": "Ого, ты хочешь понизить моего хозяина?",
+ "warn_sudo_err": "Ого, ты хочешь дать предупреждение моему хозяину?",
+ "mute_sudo_err": "Ого, ты хочешь дать мут моему хозяину?",
+ "kick_admin_err": "Лол, это безумие если я выгоню администратора.",
+ "ban_admin_err": "Лол, это безумие если я заблокирую администратора.",
+ "mute_admin_err": "Лол, это безумие если я дам мут администратору.",
+ "warn_admin_err": "Лол, это безумие если я дам предупреждение администратору.",
+ "kick_msg": "**Выгнан Пользователь:** {mention} [`{id}`]\n**Выгнал:** {kicker}\n**Причина:** {reasonmsg}",
+ "ban_msg": "**Заблокирован Пользователь:** {mention} [`{id}`]\n**Выгнал:** {banner}\n",
+ "unban_msg": "__Блокировка убрана с {mention}__",
+ "no_ban_permission": "Пожалуйста, предоставьте мне доступ на блокировку пользователей.",
+ "no_more_99": "Вы не можете использовать более 99.",
+ "banned_time": "**Заблокирован на:** {val}\n",
+ "muted_time": "**Дан мут на:** {val}\n",
+ "banned_reason": "**Причина:** {reas}",
+ "unban_channel_err": "Вы не можете разблокировать канал.",
+ "give_unban_user": "Укажите имя пользователя или ответьте на сообщение, чтобы разблокировать пользователя.",
+ "unban_success": "Успешно разблокирован {umention}!",
+ "give_idban_with_msg_link": "Укажите userid/username вместе с ссылкой на сообщением и причиной для внесения в список блокировки.",
+ "give_idunban_with_msg_link": "Укажите userid/username вместе с ссылкой на сообщением и причиной для внесения в список разблокировки.",
+ "give_reason_list_ban": "Вы должны указать причину для внесения в список блокировки",
+ "Invalid_tg_link": "Введена неверная ссылка на сообщение.",
+ "multiple_ban_progress": "`Блокировка пользователя к нескольким группам. Это может занять некоторое время.`",
+ "multiple_unban_progress": "`Разблокировка пользователя к нескольким группам. Это может занять некоторое время.`",
+ "failed_get_uname": "Не удалось получить username пользователей групп.",
+ "listban_msg": "**Блокировка пользователя по списку:** {mention}\n**ID заблокированного пользователя:** `{uid}`\n**Администратор:** {frus}\n**Затронутые чаты:** `{ct}`\n**Причина:** {reas}",
+ "listunban_msg": "**Разблокировка пользователя по списку:** {mention}\n**ID разблокированного пользователя:** `{uid}`\n**Администратор:** {frus}\n**Затронутые чаты:** `{ct}`\n**Причина:** {reas}",
+ "promote_self_err": "Я не могу понизить себя.",
+ "no_promote_perm": "К сожалению, у меня нет прав для повышения прав пользователей.",
+ "full_promote": "Полностью повышен {umention}!",
+ "normal_promote": "Повышен {umention}!",
+ "pin_success": "**Закреплено [Это]({link}) сообщение.**",
+ "unpin_success": "**Откреплено [Это]({link}) сообщение.**",
+ "pin_no_perm": "Пожалуйста, дайте мне права на закрепления сообщения, чтобы воспользоваться командой!.",
+ "report_msg": "Сообщил {user_mention} администраторам!",
+ "reported_is_admin": "Вы же знаете, что этот пользователь Администратор?",
+ "user_no_warn": "У пользователя {mention} нет предупреждений.",
+ "ch_warn_msg": "У пользователя {mention} есть {warns}/3 предупреждений.",
+ "warn_msg": "**Предуждение Пользователю:** {mention}\n**Дал предупреждение:** {warner}\n**Причина:** {reas}\n**Предупреждений:** {twarn}/3",
+ "rmwarn_msg": "Предупрждения сняты с {mention}.",
+ "unwarn_msg": "Предупрждения сняты {mention}.",
+ "rmmute_msg": "__Мут снят с {mention}__",
+ "unmute_msg": "Размучен! {umention}",
+ "reply_to_rm_warn": "Ответьте на сообщение, чтобы убрать с пользователя предупрждения.",
+ "exceed_warn_msg": "Лимит предупреждений у {mention} достигнуто, ЗАБЛОКИРОВАН!",
+ "mute_msg": "**Замучен пользователь:** {mention}\n**Дал мут:** {muter}\n",
+ "rm_warn_btn": "🚨 Предупреждение удалено 🚨"
+}
diff --git a/locales/ru-RU/afk.json b/locales/ru-RU/afk.json
new file mode 100644
index 0000000000..77e59f47ae
--- /dev/null
+++ b/locales/ru-RU/afk.json
@@ -0,0 +1,13 @@
+{
+ "no_channel": "Эта функция недоступна каналам.",
+ "on_afk_msg_no_r": "**{usr}** [{id}
] вернулся в онлайн и отсуствовал в течении {tm}\n\n",
+ "on_afk_msg_with_r": "**{usr}** [{id}
] вернулся в онлайн и отсуствовал в течении {tm}\n\n**Причина:** `{reas}`\n\n",
+ "is_afk_msg_no_r": "**{usr}** [{id}
] в АФК на протяжении {tm}.\n\n",
+ "is_afk_msg_with_r": "**{usr}** [{id}
] В АФК на протяжении {tm}.\n\n**Причина:** {reas}\n\n",
+ "is_online": "**{usr}** [{id}
] вернулся в онлайн",
+ "now_afk": "{usr} [{id}
] ушёл в АФК!.",
+ "afkdel_help": "**Использование:**\n/{cmd} [ENABLE|DISABLE] чтобы Включить/Выключить автоудаление сообщений.",
+ "afkdel_disable": "Автоудаление АФК сообщений сообщение Отключено.",
+ "afkdel_enable": "Автоудаление АФК сообщений сообщение в этом чате Включено.",
+ "is_afk": "{usr} [{id}
] в АФК!"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/chatbot_ai.json b/locales/ru-RU/chatbot_ai.json
new file mode 100644
index 0000000000..fa9a89f94b
--- /dev/null
+++ b/locales/ru-RU/chatbot_ai.json
@@ -0,0 +1,6 @@
+{
+ "no_question": "Пожалуйста, используйте команду /{cmd} [Вопрос]
чтобы задать Ваш вопрос ИИ.",
+ "find_answers_str": "Секундочку, ожидайте ответа..",
+ "dont_spam": "Не спамьте, пожалуйста, подождите {tm} секунд или я заблокирую Вам доступ к боту.",
+ "answers_too_long": "Ответ на Ваш вопрос слишком длинный, откройте ссылку, чтобы посмотреть.\n\n{answerlink}"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/dev.json b/locales/ru-RU/dev.json
new file mode 100644
index 0000000000..2bca7bcb7a
--- /dev/null
+++ b/locales/ru-RU/dev.json
@@ -0,0 +1,12 @@
+{
+ "already_up": "Уже обновлен!",
+ "up_and_rest": "Обновлен с веткой по умолчанию, идёт перезапуск.",
+ "cl_btn": "❌ Закрыть",
+ "no_eval": "__Нет eval сообщения!__",
+ "privacy_policy": "Политика Конфидециальности Для {botname}\n\nДата Вступления в Силу: 02 Августа 2024\nЭта Политика Конфидециальности объясняет Как мы собираем, используем, и защищаем Вашу информацию, когда Вы взаимодействуете с Нашим Телеграм ботом, предназначенного для управления группами.\n\n1. Информация что мы собираем\n\nКогда Вы используете Нашего Телеграм бота, мы можем собирать следующие типы информации:\n- Информация о Пользователе: Основная информация, такая как: Телеграм Айди, Ваш юзернейм, и любая другая информация, что Вы решите предоставить.\n- Информация о Группе: Информация относящаяся к группам, которыми Вы управляете, включая Айди группы, имя группы, и информацию по участникам.\n\n2. Как Мы Используем Вашу Информацию\n\nМы используем собранную информацию ждя:\n- Управления и поддержки функциональных возможностей группы.\n- Оказание поддержки и улучшения Наших услуг.\n- Сообщение о Важных Обновления или Изменениях, связанных с ботом.\n\n3. Как Мы Защищаем Ваши Данные\n\nМы применяем разоичные меры безопасности для защиты Вашей информации от несакционированного доступа, изменения, раскрытия или уничтожения. Однако, пожалуйста, имейте в виду, что ни один способ передачи через интернет или электронное хранилище не предоставляет 100% безопасность.\n\n4. Обмен Вашей Информацией\n\nМы не производим обмен Вашей информации с третьими лицами, за исключением случаев, предусмотренных законом, или необходимых для предоставления описанных услуг.\n\n5. Ваши Права\n\nУ Вас есть право на доступ, корректирование, или удаления Ваших персональных данных. Если вы хотите воспользоваться любым из этих прав, свяжитесь с нами напрямую через бот.\n\n6. Изменения в Политике конфиденциальности\n\nМы можем время от времени обновлять настоящую Политику конфиденциальности. Мы будем уведомлять вас о любых существенных изменениях путем обновления политики в боте. Вы обязаны периодически просматривать эту политику.\n\n7. Связь с Нами\n\nЕсли у вас есть вопросы или сомнения по поводу данной Политики конфиденциальности или наших действий, пожалуйста, свяжитесь с моим владельцем.",
+ "run_eval": "Производим eval в pyrogram..",
+ "run_exec": "Производим exec в pyrogram..",
+ "no_cmd": "Не было дано ни одной команды для выполнения.",
+ "success": "Успешно",
+ "no_reply": "Без ответа"
+}
diff --git a/locales/ru-RU/fun.json b/locales/ru-RU/fun.json
new file mode 100644
index 0000000000..6b8bea8b62
--- /dev/null
+++ b/locales/ru-RU/fun.json
@@ -0,0 +1,3 @@
+{
+ "result": "🎲 Кубик остановился на номере: {number}"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/general.json b/locales/ru-RU/general.json
new file mode 100644
index 0000000000..e6ee75226d
--- /dev/null
+++ b/locales/ru-RU/general.json
@@ -0,0 +1,6 @@
+{
+ "back_btn": "« Вернуться",
+ "no_results": "Нет Результатов.",
+ "unknown_id": "К сожалению, я не могу распознать этого Пользователя. Возможно я никогда не виделся с ним.",
+ "exp_task": "😶🌫️ Время истекло. Задача была остановлена!"
+ }
\ No newline at end of file
diff --git a/locales/ru-RU/genss.json b/locales/ru-RU/genss.json
new file mode 100644
index 0000000000..89c01b7c8b
--- /dev/null
+++ b/locales/ru-RU/genss.json
@@ -0,0 +1,13 @@
+{
+ "wait_msg": "Дайте мне немного времени, чтобы обработать Ваш запрос!! 😴",
+ "wait_dl": "Обработка, пожалуйста, подождите..
",
+ "dl_progress": "Пытаюсь скачать, пожалуйста, подождите..",
+ "up_progress": "Пытаюсь загрузить...",
+ "success_dl_msg": "Файл был скачан в {path}
.",
+ "fail_open": "😟 Простите! Я не могу открыть этот файл.",
+ "limit_dl": "К сожалению, Загрузка ограничена до 2 ГБ, чтобы уменьшить количество флуда. Вы можете конвертировать Ваши файлы в ссылки.",
+ "err_ssgen": "Не удалось сгенерировать скриншот.\n\n{exc}",
+ "up_msg": "☑️ Успешно сгенерирован скриншот.\n\n{namma} ({id}
)\n#️⃣ #ssgen #айди{id}\n\nСкрин сгенерирован с помощью @{bot_uname}",
+ "no_reply": "Ответьте на видео или документ в Телеграм, или используйте прямую ссылку после команды, чтобы создать скриншот из медиафайла!",
+ "choose_no_ss": "Выберите количество результатов для скриншота? 🥳.\n\nОбщая продолжительность: `{td}` (`{dur} секунд`)"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/grup_tools.json b/locales/ru-RU/grup_tools.json
new file mode 100644
index 0000000000..5b60d1b2b0
--- /dev/null
+++ b/locales/ru-RU/grup_tools.json
@@ -0,0 +1,13 @@
+{
+ "sudo_join_msg": "Ого, мой крутой владелец добавил меня в группу!",
+ "log_bot_added": "#Новая Группа\nГруппа = {ttl}({cid}
)\nКол-во Участников = {tot}
\nДобавил - {r_j}",
+ "support_btn": "Поддержка",
+ "help_btn": "ℹ️ Помощь",
+ "update_btn": "📢 Обновления",
+ "chat_not_allowed": "ЧАТ НЕДОСТУПЕН 🐞\n\nМой владелец заблокировал меня от работы здесь! Вы можете связаться с владельцем бота..",
+ "welcome_thanks": "Спасибочки, что добавили меня в {ttl} ❣️\n\nЕсли у Вас будут какие-нибудь проблемы или предложения, Вы можете написать мне.",
+ "capt_welc": "Приветик {umention} [{uid}
], Добро пожаловать в группу {ttl}.",
+ "combot_msg": "#CAS Federation Ban\nПользователь {umention} [{uid}
] был замечен за спамботом и быль заблокирован. Работает на основе Combot AntiSpam.",
+ "spamwatch_msg": "#SpamWatch Federation Ban\nПользователь {umention} [{uid}
] был заблокирован за {reas}
.\n" ,
+ "welcpic_msg": "Добро пожаловать {userr} [{id}]"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/help_menu.json b/locales/ru-RU/help_menu.json
new file mode 100644
index 0000000000..9e26dfeeb6
--- /dev/null
+++ b/locales/ru-RU/help_menu.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/locales/ru-RU/lang_setting.json b/locales/ru-RU/lang_setting.json
new file mode 100644
index 0000000000..400c74ca68
--- /dev/null
+++ b/locales/ru-RU/lang_setting.json
@@ -0,0 +1,5 @@
+{
+ "language_changed_successfully": "Язык был успешно изменен.",
+ "language_changer_chat": "Здесь Вы можете изменить язык, используемый ботов в чате.\nЕсли Вашего языка нет в этом списке, и Вы хотите внести свой вклад, Вы можете открыть вопрос в моем репозитории в гитхабе.",
+ "language_changer_private": "Здесь Вы можете изменить язык, используемый ботов в приватном чате.\n\nЕсли Вы хотите поменять язык, пожалуйста, воспользуйтесь командой /setchatlang
on it.\nЕсли Вашего языка нет в этом списке, и Вы хотите внести свой вклад, Вы можете открыть вопрос в моем репозитории в гитхабе."
+ }
\ No newline at end of file
diff --git a/locales/ru-RU/main.json b/locales/ru-RU/main.json
new file mode 100644
index 0000000000..19bc5869cc
--- /dev/null
+++ b/locales/ru-RU/main.json
@@ -0,0 +1,4 @@
+{
+ "language_name": "Russian",
+ "language_flag": "🇷🇺"
+}
diff --git a/locales/ru-RU/media_extractor.json b/locales/ru-RU/media_extractor.json
new file mode 100644
index 0000000000..73c8336d8e
--- /dev/null
+++ b/locales/ru-RU/media_extractor.json
@@ -0,0 +1,15 @@
+{
+ "sub_extr_help": "Пожалуйста, воспользуйтесь командой /{cmd} [Ссылка] чтобы посмотреть субтитры или аудио в видео-файле.",
+ "conv_sub_help": "Используйте команду /{cmd} ответом на .ass или .vtt файл, чтобы конвертировать файлы .ass или .vtt в srt.",
+ "progress_str": "⏳ Обработка запроса..",
+ "convert_str": "⏳ Конвертация...",
+ "unauth_cb": "⚠️ Отказано в доступе!",
+ "cancel_btn": "❌ Отмена",
+ "invalid_cb": "⚠️ НЕ УДАЛЯЙТЕ ВАШЕ СООБЩЕНИЕ!",
+ "up_str": "Загрузка файлов..",
+ "press_btn_msg": "Нажмите на кнопку, чтобы конвертировать субтитры/аудио. В данный момент поддерживаются только ссылки.\nОбработано за {timelog}",
+ "fail_extr_media": "Не удалось извлечь носитель, убедитесь, что ваша ссылка не защищена WAF или может быть недоступна для бота.",
+ "fail_extr_sub": "Не удалось извлечь суб-файл, возможно, это неподдерживаемый формат.\n\nСсылка: {link}\nОшибка: {e}",
+ "capt_extr_sub": "Файл: {nf}
\n\nИзвлечено с помощью @{bot} за {timelog}",
+ "capt_conv_sub": "{nf}.srt
\n\nКонвертирован с помощью @{bot}"
+}
diff --git a/locales/ru-RU/mediainfo.json b/locales/ru-RU/mediainfo.json
new file mode 100644
index 0000000000..e9c6aa3dda
--- /dev/null
+++ b/locales/ru-RU/mediainfo.json
@@ -0,0 +1,11 @@
+{
+ "processing_text": "`Обработка. Общее время зависит от размера Ваших файлов...`",
+ "wait_msg": "`Пожалуйста, подождите немного...`",
+ "err_link": "Похоже, что отправленная Вами ссылка недействительна, убедитесь, что это прямая ссылка и ее можно скачать.",
+ "media_invalid": "Пожалуйста, ответьте на действительный медиа-файл.",
+ "dl_limit_exceeded": "К сожалению, загрузка ограничена до 2GB для уменьшения флуда. Вы можете конвертировать Ваши файлы в ссылку.",
+ "dl_args_text": "Пытаюсь скачать..",
+ "mediainfo_help": "Используйте команду /{cmd} [ссылка], или ответьте на сообщение с медиа командой /{cmd}.",
+ "capt_media": "ℹ️ Ваши результаты медаинфо..\n\n**Запрос от:** {ment}",
+ "viweb": "💬 Открыть ссылку"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/nightmodev2.json b/locales/ru-RU/nightmodev2.json
new file mode 100644
index 0000000000..77a327fc7c
--- /dev/null
+++ b/locales/ru-RU/nightmodev2.json
@@ -0,0 +1,16 @@
+{
+ "nmd_disabled": "Ночной режим выключен.",
+ "nmd_not_enabled": "Ночной режим не включен в этом чате.",
+ "invalid_time_format": "Неверный формат времени. Используйте формат HH:MM.",
+ "invalid_lockdur": "Неверная продолжительность. Используйте правильный формат.\nНапример: 6h (для 6 часов), 10m для 10 минут.",
+ "schedule_already_on": "Задание уже запущено в этом чате. Для отключения используйте аргумент `-d`.",
+ "nmd_enable_success": "Успешно запущен Ночной режим в этом чате.\nГруппа будет закрыта на {st} и будет открываться в {lockdur} каждый день.",
+ "nmd_off_not_admin": "#Ночной_режим_ОШИБКА\nНе удалось выключить Ночной режим aв `{chat_id}`, поскольку {bname} не администратор в чате `{chat_id}`",
+ "nmd_off_not_present": "#Ночной_режим_ОШИБКА\nНе удалось выключить Ночной режим в `{chat_id}`, поскольку {bname} не присутствует в чате `{chat_id}`. Группа удалена из списка.",
+ "nmd_off_err": "#Ночной_режим_ОШИБКА\nНе удалось выключить Ночной режим в `{chat_id}`\nОШИБКА: `{e}`",
+ "nmd_off_success": "#Ночной_режим_ОБРАБОТЧИК\n📆 {dt}\n\n☀️ Группа открыта.\nЗакроется в {close_at}",
+ "nmd_on_not_admin": "#Ночной_режим_ОШИБКА\nНе удалось включить Ночной режим в `{chat_id}`, поскольку {bname} не администратор в чате `{chat_id}`",
+ "nmd_on_not_present": "#Ночной_режим_ОШИБКА\nНе удалось включить Ночной режим в `{chat_id}`, поскольку {bname} не присутствует в чате `{chat_id}`. Группа удалена из списка.",
+ "nmd_on_err": "#Ночной_режим_ОШИБКА\nНе удалось включить Ночной режим в `{chat_id}`\nОШИБКА: `{e}`",
+ "nmd_on_success": "#Ночной_режим_ОБРАБОТЧИК\n📆 {dt}\n\n🌗 Группа закрывается.\nБудет открыта в {open_at}"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/ocr.json b/locales/ru-RU/ocr.json
new file mode 100644
index 0000000000..bab4b2e52d
--- /dev/null
+++ b/locales/ru-RU/ocr.json
@@ -0,0 +1,6 @@
+{
+ "no_photo": "Ответьте на Изображение командой /{cmd} чтобы прочитать текст.",
+ "read_ocr": "Читаю изображение..",
+ "result_ocr": "Распознано:\n{result}
",
+ "ocr_helper": "/ocr [Ответом на Изображение] - Прочесть Текст с Изображения"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/sangmata.json b/locales/ru-RU/sangmata.json
new file mode 100644
index 0000000000..c73661dfe6
--- /dev/null
+++ b/locales/ru-RU/sangmata.json
@@ -0,0 +1,13 @@
+{
+ "no_uname": "Нет Юзернейма
",
+ "no_last_name": "Нет Фамилии
",
+ "uname_change_msg": "✨ Изменил Юзернейм: {bef} ➡️ {aft}.\n",
+ "lastname_change_msg": "✨ Изменил Фамилию: {bef} ➡️ {aft}.\n",
+ "firstname_change_msg": "✨ Изменил Имя: {bef} ➡️ {aft}.\n",
+ "set_sangmata_help": "Используйте /{cmd} on
, чтобы включить СангМату. Если Вы хотите выключить, используйте параметр off.",
+ "sangmata_already_on": "СангМата уже включена в Ваших группах.",
+ "sangmata_enabled": "СангМата включена в Ваших группах.",
+ "sangmata_already_off": "СангМата уже выключена в Ваших группах.",
+ "sangmata_disabled": "СангМата выключена в Ваших группах.",
+ "wrong_param": "Неизвестный параметр, используйте только параметры on/off."
+}
\ No newline at end of file
diff --git a/locales/ru-RU/start_help.json b/locales/ru-RU/start_help.json
new file mode 100644
index 0000000000..b006feb50d
--- /dev/null
+++ b/locales/ru-RU/start_help.json
@@ -0,0 +1,11 @@
+{
+ "newgroup_log": "#НоваяГруппа\nГруппа = {jdl}({id}
)\nКол-во Участников = {c}
",
+ "newuser_log": "#НовыйПользователь\nАйди - {id}
\nИмя - {nm}",
+ "help_name": "Здесь помощь по **{mod}**:\n",
+ "help_txt": "Привет {kamuh}, Меня зовут {bot}.\nЯ бот, разработанный на pyrogram с некоторыми полезными функциями.\nТы можешь ознакомиться, кликнув по кнопке ниже.\n\nОсновные команды:\n - /start: Запустить бота\n - /help: получить это сообщение\n - /setlang: Изменить язык бота [БЕТА]",
+ "click_me": "Кликни",
+ "back_btn": "Назад",
+ "click_btn": "Кликни на кнопку ниже, чтобы получить помощь по {nm}",
+ "pm_detail": "Напиши мне в ЛС для получения Подробной Информации.",
+ "start_msg": "Привет {kamuh}, Напиши мне в ЛС, чтобы получить информацио о моих функциях. Ты можешь изменить язык бота, используя команду /setlang, но она всё ещё на стадии бета."
+}
\ No newline at end of file
diff --git a/locales/ru-RU/stickers.json b/locales/ru-RU/stickers.json
new file mode 100644
index 0000000000..d1baf6c2d3
--- /dev/null
+++ b/locales/ru-RU/stickers.json
@@ -0,0 +1,19 @@
+{
+ "no_anim_stick": "Анимационные стикеры не поддерживаются!",
+ "not_sticker": "Это не стикер!",
+ "unkang_msg": "Попытка убрать с пака..",
+ "unkang_success": "Стикер был убран с Вашего пака",
+ "unkang_error": "Не удалось убрать стикер из пака.\n\nОШИБКА: {e}",
+ "unkang_help": "Пожалуйста, ответьте на стикерпак, созданный {c}, чтобы удалить стикер из пака.",
+ "anon_warn": "Вы анон-админ, создайте стикеры в ЛС со мной.",
+ "kang_msg": "Пытается украсть Ваш стикер...",
+ "stick_no_name": "У стикера нет названия.",
+ "kang_help": "Хотите чтобы я угадал стикер? Пожалуйста, отметьте стикер.",
+ "exist_pack": "Используем существующий стикерпак...
",
+ "new_packs": "Создаем новый стикерпак...",
+ "please_start_msg": "Похоже, Вы никогда не общались со мной в личном чате, Вам нужно сделать это первым...",
+ "click_me": "Кликни",
+ "pack_full": "Ваш набор стикеров полон, если Ваш набор не находится в v1 Напишите /kang 1\nЕсли он не находится в v2 Напиши /kang 2\nи так далее..",
+ "viewpack": "👀 Посмотреть Ваш пак",
+ "kang_success": "Стикеры успешно украдены!\nЭмодзи: {emot}"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/web_scraper.json b/locales/ru-RU/web_scraper.json
new file mode 100644
index 0000000000..bdfc9c8c1a
--- /dev/null
+++ b/locales/ru-RU/web_scraper.json
@@ -0,0 +1,20 @@
+{
+ "no_result": "К сожалению, не удалось найти никаких результатов!",
+ "no_result_w_query": "К сожалению, нет результатов по запросу: {kueri}",
+ "get_data": "⏳ Пожалуйста, подождите, получаю данные..",
+ "cl_btn": "❌ Закрыть",
+ "back_btn": "↩️ Вернуться",
+ "dl_text": "⬇️ Скачать",
+ "cat_text": "Категория",
+ "quality": "Качество",
+ "ex_data": "👇 Вытащить данные ",
+ "unauth": "Эта кнопка не для Вас..",
+ "invalid_cb": "Неверные данные обратного вызова, отправьте команду еще раз..",
+ "res_scrape": "Собранная информация с {link}
:\n\n{kl}",
+ "header_with_query": "#{web} Результаты Для: {kueri}
\n\n",
+ "header_no_query": "#{web} Последнее:\n🌀 Используйте /{cmd} [заголовок] чтобы начать поиск по заголовку.\n\n",
+ "invalid_cmd_scrape": "Используйте команду /{cmd} [link] для поиска ссылки на скачивание.",
+ "err_getweb": "ОШИБКА: Не удалось получить данные с интернета из-за {err}.",
+ "err_getapi": "ОШИБКА: Не удалось получить данные с АПИ",
+ "unsupport_dl_btn": "Некоторые результаты не отображаются в кнопке извлечения из-за неподдерживаемой ссылки."
+}
\ No newline at end of file
diff --git a/locales/ru-RU/webss.json b/locales/ru-RU/webss.json
new file mode 100644
index 0000000000..1e2c7f23c7
--- /dev/null
+++ b/locales/ru-RU/webss.json
@@ -0,0 +1,6 @@
+{
+ "no_url": "Отправьте ссылку, чтобы сделать скриншот.",
+ "wait_str": "Делаю скрин...",
+ "str_credit": "🌞 Скриншот сгенерирован при помощи Puppeteer",
+ "ss_failed_str": "Не удалось сделать скриншот.\nОшибка: {err}"
+}
\ No newline at end of file
diff --git a/locales/ru-RU/ytdl_plugins.json b/locales/ru-RU/ytdl_plugins.json
new file mode 100644
index 0000000000..87316b481f
--- /dev/null
+++ b/locales/ru-RU/ytdl_plugins.json
@@ -0,0 +1,14 @@
+{
+ "no_channel": "Эта команда недоступна для группы или анонимного пользователя.",
+ "no_query": "Пожалуйста, введите запрос..!",
+ "no_res": "Нет результатов по `{kweri}`",
+ "dl_btn": "Скачать",
+ "back": "Вернуться",
+ "yts_msg": "Опубликовано {pub}\n\n❯ Длительность: {dur}\n❯ Просмотров: {vi}\n❯ Загрузил: {cname}\n\n",
+ "invalid_link": "Пожалуйста, введите корректную ссылку для YT-DLP",
+ "err_parse": "Не удалось обработать ссылку, смотрите логи..",
+ "wait": "Пожалуйста, подождите..",
+ "unauth": "Это не Ваша задача..",
+ "endlist": "Она в конце списка",
+ "vip-btn": "Поскольку некоторые пользователи злоупотребляют функцией, а мой сервер не может справиться с этим, лучшее видео теперь доступно только для владельцу бота."
+}
\ No newline at end of file
diff --git a/misskaty/helper/localization.py b/misskaty/helper/localization.py
index 7e09898e27..7cc0ae8e93 100644
--- a/misskaty/helper/localization.py
+++ b/misskaty/helper/localization.py
@@ -15,6 +15,7 @@
"en-US", # English (United States)
"id-ID", # Indonesian
"id-JW", # Javanese
+ "ru-RU", # Russian
]
default_language: str = "en-US"