feat: мини-истории, слово дня, меню практики
- Добавлены мини-истории для чтения с выбором жанра и вопросами - Кнопка показа/скрытия перевода истории - Количество вопросов берётся из настроек пользователя - Слово дня генерируется глобально в 00:00 UTC - Кнопка "Практика" открывает меню выбора режима - Убран автоматический create_all при запуске (только миграции) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
101
locales/ru.json
101
locales/ru.json
@@ -1,15 +1,34 @@
|
||||
{
|
||||
"menu": {
|
||||
"wordofday": "🌅 Слово дня",
|
||||
"add": "➕ Добавить слово",
|
||||
"vocab": "📚 Словарь",
|
||||
"task": "🧠 Задание",
|
||||
"practice": "💬 Практика",
|
||||
"exercises": "📖 Упражнения",
|
||||
"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": "📝 Вручную",
|
||||
@@ -55,7 +74,7 @@
|
||||
"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\nИли просто отправь слово без команды!",
|
||||
"prompt": "Отправь слово, которое хочешь добавить:\n• Одно слово: <code>/add elephant</code>\n• Несколько: <code>/add apple, banana, orange</code>\n\nИли просто отправь слово без команды!",
|
||||
"searching": "⏳ Ищу перевод и примеры...",
|
||||
"examples_header": "<b>Примеры:</b>",
|
||||
"translations_header": "<b>Переводы:</b>",
|
||||
@@ -69,6 +88,13 @@
|
||||
"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>",
|
||||
@@ -180,7 +206,54 @@
|
||||
"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 для изменения настроек."
|
||||
"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>",
|
||||
@@ -330,5 +403,29 @@
|
||||
"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": "Напиши свой ответ:"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user