Files
mamonov.ep adc8a6bf8e feat: мини-игры, premium подписка, улучшенные контексты
Мини-игры (/games):
- Speed Round: 10 раундов, 10 секунд на ответ, очки за скорость
- Match Pairs: 5 слов + 5 переводов, соединить пары

Premium-функции:
- Поля is_premium и premium_until для пользователей
- AI режим проверки ответов (учитывает синонимы)
- Batch проверка всех ответов одним запросом

Улучшения:
- Примеры использования для всех добавляемых слов
- Разбиение переводов по запятой на отдельные записи
- Полные предложения в контекстах (без ___)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-10 19:42:10 +03:00

492 lines
35 KiB
JSON
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"menu": {
"wordofday": "🌅 Слово дня",
"add": " Добавить слово",
"vocab": "📚 Словарь",
"task": "🧠 Задание",
"practice": "💬 Практика",
"exercises": "📖 Упражнения",
"games": "🎮 Мини-игры",
"words": "🎯 Тематические слова",
"import": "📖 Импорт",
"stats": "📊 Статистика",
"settings": "⚙️ Настройки",
"below": "Главное меню доступно ниже ⤵️"
},
"practice_menu": {
"title": "Практика",
"choose": "Выбери режим практики:",
"stories": "Мини-истории",
"ai_chat": "Диалог с AI"
},
"wod": {
"title": "Слово дня",
"generating": "🔄 Генерирую слово дня...",
"failed": "❌ Не удалось сгенерировать слово дня. Попробуй позже.",
"not_available": "🕐 Слово дня ещё не готово.\n\nСлова генерируются ежедневно в 00:00 UTC.\nПопробуй позже!",
"examples": "Примеры",
"synonyms": "Синонимы",
"add_btn": " Добавить в словарь",
"added": "Добавлено в словарь!",
"not_found": "Слово не найдено"
},
"add_menu": {
"title": " <b>Добавление слов</b>\n\nВыберите способ:",
"manual": "📝 Вручную",
"thematic": "🎯 Тематические слова",
"import": "📖 Импорт"
},
"import_menu": {
"title": "📖 <b>Импорт слов</b>\n\nВыберите способ импорта:",
"from_text": "📝 Из текста",
"from_file": "📄 Из файла (.txt, .md)",
"file_hint": "📄 <b>Импорт из файла</b>\n\nОтправьте файл .txt или .md с вашими словами.\n\n<b>Форматы:</b>\n• По одному слову на строку (AI переведёт)\n• <code>слово - перевод</code>\n• <code>слово : перевод</code>"
},
"common": {
"start_first": "Сначала запусти бота командой /start",
"translation": "Перевод"
},
"lang": {
"ru": "русский",
"en": "английский",
"ja": "японский"
},
"import": {
"title": "📖 <b>Импорт слов из текста</b>",
"desc": "Отправь мне текст на выбранном языке обучения, и я извлеку из него полезные слова для изучения.",
"can_send": "Можно отправить:\n• Отрывок из книги или статьи\n• Текст песни\n• Описание чего-либо\n• Любой интересный текст",
"cancel_hint": "Отправь /cancel для отмены.",
"too_short": "⚠️ Текст слишком короткий. Отправь текст минимум из 50 символов.\nИли используй /cancel для отмены.",
"too_long": "⚠️ Текст слишком длинный (максимум 3000 символов).\nОтправь текст покороче или используй /cancel для отмены.",
"processing": "🔄 Анализирую текст и извлекаю слова...",
"failed": "❌ Не удалось извлечь слова из текста. Попробуй другой текст или повтори позже.",
"found_header": "📚 <b>Найдено слов: {n}</b>",
"added_single": "✅ Слово '{word}' добавлено в словарь",
"added_count": "✅ Добавлено слов: <b>{n}</b>",
"skipped_count": "⚠️ Пропущено (уже в словаре): {n}"
},
"start": {
"new_intro": "👋 Привет, {first_name}!\n\nЯ бот для изучения английского языка. Помогу тебе:\n📚 Пополнять словарный запас (ручное/тематическое/из текста)\n✍ Выполнять интерактивные задания\n💬 Практиковать язык в диалоге с AI\n📊 Отслеживать свой прогресс\n\n<b>Команды:</b>\n• /add [слово] - добавить слово\n• /words [тема] - тематическая подборка\n• /import - импорт из текста\n• /vocabulary - мой словарь\n• /task - задания\n• /practice - диалог с AI\n• /stats - статистика\n• /settings - настройки\n• /reminder - напоминания\n• /help - полная справка",
"offer_test": "🎯 <b>Определим твой уровень?</b>\n\nКороткий тест (7 вопросов) поможет подобрать задания под твой уровень.\nЭто займёт 2-3 минуты.\n\nИли можешь пропустить и установить уровень вручную позже в /settings",
"return": "С возвращением, {first_name}! 👋\n\nГотов продолжить обучение?\n\n<b>Быстрый доступ:</b>\n• /vocabulary - посмотреть словарь\n• /task - получить задание\n• /practice - практика диалога\n• /words [тема] - тематическая подборка\n• /stats - статистика\n• /help - все команды",
"help": "<b>📖 Справка по командам:</b>\n\n<b>Управление словарём:</b>\n• /add [слово] - добавить слово в словарь\n• /vocabulary - просмотр словаря\n• /words [тема] - тематическая подборка слов\n• /import - импортировать слова из текста\n\n<b>Обучение:</b>\n• /task - задание (перевод, заполнение пропусков)\n• /practice - диалог с ИИ (6 сценариев)\n• /level_test - тест определения уровня\n\n<b>Статистика:</b>\n• /stats - твой прогресс\n\n<b>Настройки:</b>\n• /settings - уровень и язык\n• /reminder - ежедневные напоминания\n\n💡 Ты также можешь просто отправить мне слово, и я предложу добавить его в словарь!",
"offer_btn": "📊 Пройти тест уровня",
"skip_btn": "➡️ Пропустить",
"skip_msg": "✅ Хорошо!\n\nТы можешь пройти тест позже командой /level_test\nили установить уровень вручную в /settings\n\nДавай начнём! Попробуй:\n• /words travel - тематическая подборка\n• /practice - диалог с AI\n• /add hello - добавить слово"
},
"add": {
"prompt": "Отправь слово, которое хочешь добавить:\n• Одно слово: <code>/add elephant</code>\n• Несколько: <code>/add apple, banana, orange</code>\n\nИли просто отправь слово без команды!",
"searching": "⏳ Ищу перевод и примеры...",
"examples_header": "<b>Примеры:</b>",
"translations_header": "<b>Переводы:</b>",
"translation_label": "Перевод",
"category_label": "Категория",
"level_label": "Уровень",
"confirm_question": "Добавить это слово в словарь?",
"btn_add": "✅ Добавить",
"btn_cancel": "❌ Отмена",
"exists": "Слово '<b>{word}</b>' уже есть в твоём словаре!\nПеревод: {translation}",
"added_success": "✅ Слово '<b>{word}</b>' добавлено!\n\nВсего слов в словаре: {count}\n\nПродолжай добавлять новые слова или используй /task для практики!",
"cancelled": "Отменено. Можешь добавить другое слово командой /add"
},
"add_batch": {
"header": "📝 <b>Слова для добавления ({n}):</b>",
"translating": "⏳ Перевожу {n} слов...",
"choose": "Выбери слова для добавления или добавь все сразу:",
"truncated": "⚠️ Слишком много слов. Показаны первые {n}.",
"failed": "❌ Не удалось получить переводы. Попробуй позже."
},
"vocab": {
"empty": "📚 Твой словарь пока пуст!\n\nДобавь первое слово командой /add или просто отправь мне слово.",
"header": "<b>📚 Твой словарь:</b>",
"accuracy_inline": "({n}% точность)",
"shown_last": "<i>Показаны последние 10 из {n} слов</i>",
"total": "<i>Всего слов: {n}</i>",
"page_info": "\n📖 Страница {page} из {total} • Всего слов: {count}",
"close_btn": "❌ Закрыть"
},
"practice": {
"start_text": "💬 <b>Диалоговая практика с AI</b>\n\nВыбери сценарий для разговора:\n\n• AI будет играть роль собеседника\n• Ты можешь общаться на английском\n• AI будет исправлять твои ошибки\n• Используй /stop для завершения диалога\n\nВыбери сценарий:",
"hints": "💡 <b>Подсказки:</b>",
"write_or_stop": "\n📝 Напиши свой ответ на английском или используй /stop для завершения",
"show_translation_btn": "👁️ Показать перевод",
"stop_btn": "🔚 Завершить диалог",
"scenario": {
"restaurant": "🍽️ Ресторан",
"shopping": "🛍️ Магазин",
"travel": "✈️ Путешествие",
"work": "💼 Работа",
"doctor": "🏥 Врач",
"casual": "💬 Общение"
},
"thinking_prepare": "🤔 AI готовится к диалогу...",
"empty_prompt": "Напиши что-нибудь на языке обучения или используй /stop для завершения",
"thinking": "🤔 AI думает...",
"corrections": "<b>Исправления:</b>",
"end_title": "✅ <b>Диалог завершён!</b>",
"end_exchanged": "Сообщений обменено: <b>{n}</b>",
"end_keep": "Отличная работа! Продолжай практиковаться.",
"end_hint": "Используй /practice для нового диалога.",
"translation_unavailable": "Перевод недоступен",
"translation_already": "Перевод уже показан",
"custom_scenario_btn": "✏️ Свой сценарий",
"custom_scenario_prompt": "✏️ <b>Опиши свой сценарий</b>\n\nНапиши тему или ситуацию для разговора.\n\nПримеры:\n• Собеседование на работу программистом\n• Заказ пиццы по телефону\n• Обсуждение фильма с другом\n• Планирование путешествия в Японию",
"custom_scenario_too_short": "⚠️ Слишком короткое описание. Напиши хотя бы несколько слов о сценарии.",
"new_practice_btn": "🔄 Новый диалог",
"to_tasks_btn": "🧠 Задания",
"to_words_btn": "🎯 Слова",
"go_tasks_hint": "Используй /task для тренировки слов",
"go_words_hint": "Используй /words [тема] для подборки слов"
},
"tasks": {
"choose_mode": "🧠 <b>Выбери режим заданий:</b>",
"mode_vocabulary": "📚 Слова из словаря",
"mode_new_words": "✨ Новые слова",
"choose_type": "📋 <b>Выбери тип заданий:</b>",
"type_mix": "🎲 Микс (все типы)",
"type_word_translate": "📝 Перевод слов",
"type_fill_blank": "✏️ Подстановка слова",
"type_sentence_translate": "📖 Перевод предложений",
"generating_new": "🔄 Генерирую новые слова...",
"generate_failed": "❌ Не удалось сгенерировать слова. Попробуй позже.",
"translate_to": "Переведи на {lang_name}",
"no_words": "📚 У тебя пока нет слов для практики!\n\nДобавь несколько слов командой /add, а затем возвращайся.",
"stopped": "Задания остановлены. Используй /task, чтобы начать заново.",
"finished": "Задания завершены. Используй /task, чтобы начать заново.",
"header": "📝 <b>Задание {i} из {n}</b>",
"write_answer": "\n💡 Напиши свой ответ:",
"checking": "⏳ Проверяю ответ...",
"correct": "✅ <b>Правильно!</b>",
"incorrect": "❌ <b>Неправильно</b>",
"your_answer": "Твой ответ",
"right_answer": "Правильный ответ",
"next_btn": "➡️ Следующее задание",
"stop_btn": "🔚 Завершить",
"add_word_btn": " Добавить слово",
"word_added": "✅ Слово '{word}' добавлено в словарь!",
"word_already_exists": "Слово '{word}' уже в словаре",
"example_label": "Пример",
"cancelled": "Отменено. Можешь вернуться к заданиям командой /task.",
"finish_title": "{emoji} <b>Задание завершено!</b>",
"correct_of": "Правильных ответов: <b>{correct}</b> из {total}",
"accuracy": "Точность: <b>{accuracy}%</b>",
"use_task": "Используй /task для нового задания",
"use_stats": "Используй /stats для просмотра статистики",
"comment": {
"excellent": "Отличный результат!",
"good": "Хорошая работа!",
"average": "Неплохо, продолжай практиковаться!",
"poor": "Повтори эти слова еще раз!"
}
},
"reminder": {
"title": "⏰ <b>Напоминания</b>",
"status_on": "✅ Включены",
"status_off": "❌ Выключены",
"time_not_set": "Не установлено",
"status_line": "Статус: {status}",
"time_line": "Время: {time} UTC",
"desc1": "Напоминания помогут не забывать о ежедневной практике.",
"desc2": "Бот будет присылать сообщение в выбранное время каждый день.",
"btn_enable": "✅ Включить",
"btn_disable": "❌ Выключить",
"btn_change_time": "⏰ Изменить время",
"set_time_first": "Сначала установи время напоминаний!",
"enabled_toast": "✅ Напоминания включены!",
"enabled_title": "✅ <b>Напоминания включены!</b>",
"enabled_desc": "Ты будешь получать ежедневные напоминания о практике.",
"disabled_toast": "❌ Напоминания выключены",
"disabled_title": "❌ <b>Напоминания выключены</b>",
"disabled_desc": "Используй /reminder чтобы включить их снова.",
"set_title": "⏰ <b>Установка времени напоминаний</b>",
"set_desc": "Отправь время в формате <b>HH:MM</b> (UTC)",
"set_examples": "Примеры:\n• <code>09:00</code> - 9 утра по UTC\n• <code>18:30</code> - 18:30 по UTC\n• <code>20:00</code> - 8 вечера по UTC",
"set_utc_hint": "💡 UTC = МСК - 3 часа\n(если хочешь 12:00 по МСК, введи 09:00)",
"cancel_hint": "Отправь /cancel для отмены",
"cancelled": "❌ Установка времени отменена",
"invalid_format": "❌ Неверный формат времени!\n\nИспользуй формат <b>HH:MM</b> (например, 09:00 или 18:30)\nИли отправь /cancel для отмены",
"time_set_title": "✅ <b>Время установлено!</b>",
"status_on_line": "Статус: <b>Включены</b>",
"use_settings": "Используй /reminder для изменения настроек.",
"daily_title": "⏰ <b>Время для практики!</b>",
"daily_wod": "🌅 <b>Слово дня:</b>",
"daily_tips": "Не забудь потренироваться сегодня:\n• /task - выполни задания\n• /practice - попрактикуй диалог\n• /words - добавь новые слова",
"daily_motivation": "💪 Регулярная практика - ключ к успеху!"
},
"story": {
"title": "Мини-истории",
"choose_genre": "Выбери жанр истории:",
"genre": {
"dialogue": "Диалоги",
"news": "Новости",
"story": "Рассказы",
"letter": "Письма",
"recipe": "Рецепты"
},
"generating": "🔄 Генерирую историю...",
"failed": "❌ Не удалось сгенерировать историю. Попробуй ещё раз.",
"try_again": "Попробовать снова",
"level": "Уровень",
"words": "слов",
"questions_btn": "Вопросы",
"vocab_btn": "Словарь",
"new_btn": "Новая история",
"back": "Назад",
"not_found": "История не найдена",
"no_vocab": "Нет слов для изучения",
"no_questions": "Нет вопросов",
"vocabulary": "Словарь истории",
"add_all": "Добавить все",
"word_added": "✅ Слово '{word}' добавлено!",
"words_added": "✅ Добавлено слов: {n}",
"word_not_found": "Слово не найдено",
"question": "Вопрос",
"question_not_found": "Вопрос не найден",
"correct": "✅ Правильно!",
"incorrect": "❌ Неправильно",
"next_question": "Следующий вопрос",
"show_results": "Результаты",
"results_title": "Результаты",
"correct_answers": "Правильных ответов",
"accuracy": "Точность",
"result_excellent": "Отличный результат! Ты хорошо понял текст.",
"result_good": "Хорошо! Большую часть текста ты понял.",
"result_practice": "Попробуй перечитать историю внимательнее.",
"translation": "Перевод",
"show_translation": "Показать перевод",
"hide_translation": "Скрыть перевод"
},
"stats": {
"header": "📊 <b>Твоя статистика</b>",
"total_words": "📚 Слов в словаре: <b>{n}</b>",
"studied_words": "📖 Слов изучено: <b>{n}</b>",
"total_tasks": "✍️ Заданий выполнено: <b>{n}</b>",
"correct_tasks": "✅ Правильных ответов: <b>{n}</b>",
"accuracy": "🎯 Точность: <b>{n}%</b>",
"hint_add_words": "Добавь слова командой /add чтобы начать обучение!",
"hint_first_task": "Выполни первое задание командой /task!",
"hint_keep_practice": "Продолжай практиковаться! 💪",
"word_of_day_btn": "🌅 Слово дня"
},
"level_test": {
"show_translation_btn": "👁️ Показать перевод вопроса",
"intro": "📊 <b>Тест определения уровня</b>\n\nЭтот короткий тест поможет определить твой уровень английского.\n\n📋 Тест включает 7 вопросов:\n• Грамматика\n• Лексика\n• Понимание\n\n⏱ Займёт около 2-3 минут\n\nГотов начать?",
"start_btn": "✅ Начать тест",
"cancel_btn": "❌ Отмена",
"press_button": "Нажми кнопку когда будешь готов:",
"cancelled": "❌ Тест отменён",
"q_header": "❓ <b>Вопрос {i} из {n}</b>"
},
"settings": {
"title": "⚙️ <b>Настройки</b>\n\n",
"level_prefix": "📊 Уровень: ",
"learning_prefix": "🎯 Язык изучения: ",
"interface_prefix": "🌐 Язык интерфейса: ",
"translation_prefix": "💬 Язык перевода: ",
"choose": "Выбери, что хочешь изменить:",
"close": "❌ Закрыть",
"back": "⬅️ Назад",
"back_to_settings": "⬅️ К настройкам",
"level_title": "📊 <b>Выбери свой уровень:</b>\n\n",
"level_groups": "<b>A1-A2</b> - Начинающий\n<b>B1-B2</b> - Средний\n<b>C1-C2</b> - Продвинутый\n\n",
"level_hint": "Это влияет на сложность предлагаемых слов и заданий.",
"level": {
"a1": "A1 - Начальный",
"a2": "A2 - Элементарный",
"b1": "B1 - Средний",
"b2": "B2 - Выше среднего",
"c1": "C1 - Продвинутый",
"c2": "C2 - Профессиональный"
},
"jlpt": {
"n5": "N5 - Базовый",
"n4": "N4 - Начальный",
"n3": "N3 - Средний",
"n2": "N2 - Продвинутый",
"n1": "N1 - Свободный"
},
"jlpt_groups": "<b>N5-N4</b> - Начинающий\n<b>N3</b> - Средний\n<b>N2-N1</b> - Продвинутый\n\n",
"level_changed": "✅ Уровень изменен на <b>{level}</b>\n\n",
"level_changed_hint": "Теперь ты будешь получать слова и задания, соответствующие твоему уровню!",
"lang_title": "🌐 <b>Выбери язык интерфейса:</b>\n\n",
"lang_desc": "Это изменит язык всех сообщений бота.",
"lang_changed": "✅ Язык интерфейса: <b>Русский</b>",
"learning_title": "🎯 <b>Выбери язык изучения:</b>\n\n",
"learning_changed": "✅ Язык изучения: <b>{code}</b>",
"translation_title": "💬 <b>Выбери язык перевода:</b>\n\n",
"translation_desc": "На этот язык будут переводиться слова.\nЭто может отличаться от языка интерфейса.",
"translation_changed": "✅ Язык перевода: <b>{lang_name}</b>",
"tasks_count_prefix": "🔢 Заданий: ",
"tasks_count_title": "🔢 <b>Количество заданий:</b>\n\n",
"tasks_count_desc": "Сколько заданий генерировать за один раз.\nМинимум 5, максимум 15.",
"tasks_count_changed": "✅ Количество заданий: <b>{count}</b>",
"menu_updated": "Клавиатура обновлена ⤵️",
"lang_name": {
"ru": "🇷🇺 Русский",
"en": "🇬🇧 English",
"ja": "🇯🇵 日本語"
},
"learning_lang": {
"en": "🇬🇧 Английский",
"es": "🇪🇸 Испанский",
"de": "🇩🇪 Немецкий",
"fr": "🇫🇷 Французский",
"ja": "🇯🇵 Японский"
}
},
"import_extra": {
"cancelled": "❌ Импорт отменён."
},
"import_file": {
"unsupported_format": "❌ Неподдерживаемый формат файла.\n\nПоддерживаются: .txt, .md\n\nФормат файла:\n<code>слово - перевод</code>\n<code>слово : перевод</code>",
"too_large": "❌ Файл слишком большой (макс. 1 МБ)",
"encoding_error": "❌ Ошибка кодировки. Убедитесь, что файл в UTF-8",
"download_error": "❌ Не удалось загрузить файл. Попробуйте ещё раз",
"no_words_found": "❌ Не найдено слов в файле.\n\nУбедитесь, что формат правильный:\n<code>слово - перевод</code>\n<code>слово : перевод</code>",
"truncated": "⚠️ Файл содержит больше {n} слов. Импортируем первые {n}.",
"found_header": "📄 <b>Найдено слов в файле: {n}</b>",
"choose_action": "Выберите действие:",
"add_all_btn": "✅ Добавить все ({n})",
"translating": "🔄 Перевожу слова через AI..."
},
"level_test_extra": {
"generating": "🔄 Генерирую вопросы...",
"generate_failed": "❌ Не удалось сгенерировать тест. Попробуй позже или используй /settings для ручной установки уровня.",
"translation_unavailable": "Перевод недоступен",
"translation_marker": "Перевод вопроса:",
"translation_already": "Перевод уже показан",
"correct": "✅ Правильно!",
"incorrect": "❌ Неправильно",
"correct_answer": "Правильный ответ: <b>{answer}</b>",
"result_title": "🎉 <b>Тест завершён!</b>\n\n",
"results_header": "📊 Результаты:\n",
"correct_count": "Правильных ответов: <b>{correct}</b> из {total}\n",
"accuracy": "Точность: <b>{accuracy}%</b>\n\n",
"your_level": "🎯 Твой уровень: <b>{level}</b>\n",
"level_set_hint": "Теперь задания и материалы будут подбираться под твой уровень!\nТы можешь изменить уровень в любое время через /settings",
"level_desc": {
"A1": "Начальный - понимаешь основные фразы и можешь представиться",
"A2": "Элементарный - можешь общаться на простые темы",
"B1": "Средний - можешь поддержать беседу на знакомые темы",
"B2": "Выше среднего - свободно общаешься в большинстве ситуаций",
"C1": "Продвинутый - используешь язык гибко и эффективно",
"C2": "Профессиональный - владеешь языком на уровне носителя",
"N5": "Базовый - понимаешь хирагану, катакану и базовые кандзи",
"N4": "Начальный - понимаешь повседневные разговоры",
"N3": "Средний - понимаешь обычные тексты и разговоры",
"N2": "Продвинутый - понимаешь большинство контента",
"N1": "Свободный - полное владение японским языком"
}
},
"onboarding": {
"step2_title": "🎯 Какой язык хочешь изучать?",
"step3_title": "💬 На какой язык переводить слова?",
"complete": "✅ Настройки сохранены!",
"lang_en": "🇬🇧 Английский",
"lang_ja": "🇯🇵 Японский"
},
"words": {
"generating": "🔄 Генерирую подборку слов по теме '{theme}'...",
"generate_failed": "❌ Не удалось сгенерировать подборку. Попробуй позже.",
"header": "📚 <b>Подборка слов: {theme}</b>",
"choose": "Выбери слова, которые хочешь добавить в словарь:",
"add_all_btn": "✅ Добавить все",
"close_btn": "❌ Закрыть",
"help_title": "📚 <b>Тематические подборки слов</b>",
"help_usage": "Используй: <code>/words [тема]</code>",
"help_examples": "Примеры:\n• <code>/words travel</code> - путешествия\n• <code>/words food</code> - еда\n• <code>/words work</code> - работа\n• <code>/words nature</code> - природа\n• <code>/words technology</code> - технологии",
"help_note": "Я сгенерирую 10 слов по теме, подходящих для твоего уровня!",
"popular": "Популярные темы:",
"topic_travel": "✈️ Путешествия",
"topic_food": "🍔 Еда",
"topic_work": "💼 Работа",
"topic_nature": "🌿 Природа",
"topic_technology": "💻 Технологии",
"err_not_found": "❌ Ошибка: слово не найдено",
"already_exists": "Слово '{word}' уже в словаре",
"added_single": "✅ Слово '{word}' добавлено в словарь"
},
"exercises": {
"title": "📖 <b>Грамматические упражнения</b>",
"choose_topic": "Выбери тему для упражнения:",
"your_level": "Твой уровень: <b>{level}</b>",
"generating_rule": "🔄 Генерирую объяснение правила...",
"generating": "🔄 Генерирую упражнения...",
"generate_failed": "❌ Не удалось сгенерировать упражнение. Попробуй позже.",
"start_btn": "▶️ Начать упражнения",
"task_header": "📝 <b>Упражнение: {topic}</b>",
"instruction": "Заполни пропуски правильной формой:",
"check_btn": "✅ Проверить",
"next_btn": "➡️ Следующее",
"results_btn": "📊 Результаты",
"back_btn": "⬅️ К темам",
"close_btn": "❌ Закрыть",
"correct": "✅ <b>Правильно!</b>",
"incorrect": "❌ <b>Неправильно</b>",
"your_answer": "Твой ответ: {answer}",
"right_answer": "Правильный ответ: {answer}",
"explanation": "💡 {text}",
"score": "Результат: {correct} из {total}",
"no_topics": "Для твоего уровня пока нет доступных тем.",
"write_answer": "Напиши свой ответ:"
},
"minigames": {
"menu_title": "🎮 <b>Мини-игры</b>\n\nВыбери игру:",
"start_btn": "Начать",
"back_btn": "Назад",
"play_again": "Играть ещё",
"speed_round": {
"name": "Быстрый перевод",
"rules": "📋 <b>Правила:</b>\n\n• Появляется слово из твоего словаря\n• У тебя {time} секунд на ответ\n• Напиши перевод как можно быстрее\n• Чем быстрее — тем больше очков!\n\n🎯 Раундов: {count}",
"mode_ai": "С проверкой AI",
"mode_simple": "Простой режим",
"premium_hint": "У тебя есть подписка! Выбери режим проверки ответов.",
"ai_mode_warning": "⚠️ <b>Режим AI проверки</b>\n\nВ этом режиме AI проверит все ответы <b>после окончания игры</b>.\nВо время игры ответы проверяются по словарю.\n\nAI учитывает синонимы и вариации перевода.",
"ai_checking": "AI проверяет ответы",
"not_enough_words": "❌ Недостаточно слов в словаре\n\nМинимум: {min} слов\nУ тебя: {current}\n\nДобавь слова через /add или /words",
"round": "Раунд {current}/{total}",
"seconds": "сек",
"score": "Очки",
"points": "очков",
"time_up": "Время вышло!",
"correct": "Правильно!",
"wrong": "Неправильно!",
"correct_was": "Правильный ответ",
"finished": "Игра окончена!",
"final_score": "Итоговый счёт",
"correct_answers": "Правильных ответов",
"accuracy": "Точность",
"answers_list": "Ответы",
"result": {
"excellent": "🔥 Превосходно! Ты настоящий мастер!",
"good": "👏 Отличный результат! Так держать!",
"average": "📚 Неплохо! Продолжай практиковаться.",
"practice": "💪 Не сдавайся! Повторение — мать учения."
}
},
"match_game": {
"name": "Найди пару",
"rules": "📋 <b>Правила:</b>\n\n• Появятся {count} слов и {count} переводов вперемешку\n• Нужно правильно соединить пары\n• Введи ответ в формате: 1A, 2B, 3C...\n• Засекается время прохождения",
"title": "Соедини пары",
"words_col": "Слова",
"translations_col": "Переводы",
"hint": "Введи пары (например: 1C, 2A, 3B, 4D, 5E)",
"cancel": "Отмена",
"cancelled": "❌ Игра отменена",
"not_enough_words": "❌ Недостаточно слов в словаре\n\nМинимум: {min} слов\nУ тебя: {current}\n\nДобавь слова через /add или /words",
"not_all_pairs": "⚠️ Введи все пары!\n\nВведено: {entered}\nНужно: {needed}",
"finished": "Игра окончена!",
"score": "Очки",
"correct_pairs": "Правильных пар",
"time": "Время",
"results": "Результаты",
"result": {
"perfect": "🎯 Идеально! Все пары верны!",
"excellent": "🔥 Превосходно! Почти без ошибок!",
"good": "👍 Хороший результат!",
"practice": "💪 Продолжай практиковаться!"
}
}
}
}