{ "menu": { "add": "βž• Add word", "vocab": "πŸ“š Vocabulary", "task": "🧠 Task", "practice": "πŸ’¬ Practice", "words": "🎯 Thematic words", "import": "πŸ“– Import", "stats": "πŸ“Š Stats", "settings": "βš™οΈ Settings", "below": "Main menu below ‡️" }, "add_menu": { "title": "βž• Add words\n\nChoose method:", "manual": "πŸ“ Manual", "thematic": "🎯 Thematic words", "import": "πŸ“– Import" }, "import_menu": { "title": "πŸ“– Import words\n\nChoose import method:", "from_text": "πŸ“ From text", "from_file": "πŸ“„ From file (.txt, .md)", "file_hint": "πŸ“„ Import from file\n\nSend a .txt or .md file with your words.\n\nFormats:\nβ€’ One word per line (AI will translate)\nβ€’ word - translation\nβ€’ word : translation" }, "common": { "start_first": "First run /start to register", "translation": "Translation" }, "lang": { "ru": "Russian", "en": "English", "ja": "Japanese" }, "import": { "title": "πŸ“– Import words from text", "desc": "Send me text in your learning language, and I will extract useful words to study.", "can_send": "You may send:\nβ€’ A passage from a book or article\nβ€’ A song lyric\nβ€’ A description\nβ€’ Any interesting text", "cancel_hint": "Send /cancel to abort.", "too_short": "⚠️ Text is too short. Send at least 50 characters.\nOr use /cancel to abort.", "too_long": "⚠️ Text is too long (max 3000 chars).\nSend a shorter text or use /cancel to abort.", "processing": "πŸ”„ Analyzing text and extracting words...", "failed": "❌ Failed to extract words. Try another text or later.", "found_header": "πŸ“š Found words: {n}", "added_single": "βœ… Word '{word}' added to vocabulary", "added_count": "βœ… Added words: {n}", "skipped_count": "⚠️ Skipped (already in vocabulary): {n}" }, "start": { "new_intro": "πŸ‘‹ Hi, {first_name}!\n\nI'm a bot to learn English. I will help you to:\nπŸ“š Grow your vocabulary (manual/thematic/from text)\n✍️ Do interactive exercises\nπŸ’¬ Practice conversation with AI\nπŸ“Š Track your progress\n\nCommands:\nβ€’ /add [word] - add a word\nβ€’ /words [topic] - thematic selection\nβ€’ /import - import from text\nβ€’ /vocabulary - my dictionary\nβ€’ /task - exercises\nβ€’ /practice - AI dialogue\nβ€’ /stats - statistics\nβ€’ /settings - settings\nβ€’ /reminder - reminders\nβ€’ /help - full help", "offer_test": "🎯 Shall we determine your level?\n\nA short test (7 questions) will tailor tasks to your level.\nIt takes about 2–3 minutes.\n\nOr skip and set level later in /settings", "return": "Welcome back, {first_name}! πŸ‘‹\n\nReady to continue?\n\nQuick access:\nβ€’ /vocabulary - view dictionary\nβ€’ /task - get an exercise\nβ€’ /practice - dialogue practice\nβ€’ /words [topic] - thematic words\nβ€’ /stats - statistics\nβ€’ /help - all commands", "help": "πŸ“– Commands help:\n\nVocabulary:\nβ€’ /add [word] - add to dictionary\nβ€’ /vocabulary - view dictionary\nβ€’ /words [topic] - thematic words\nβ€’ /import - import from text\n\nLearning:\nβ€’ /task - exercise (translate, fill gaps)\nβ€’ /practice - AI dialogue (6 scenarios)\nβ€’ /level_test - level test\n\nStats:\nβ€’ /stats - your progress\n\nSettings:\nβ€’ /settings - level and language\nβ€’ /reminder - daily reminders\n\nπŸ’‘ You can also just send me a word to add it!", "offer_btn": "πŸ“Š Take level test", "skip_btn": "➑️ Skip", "skip_msg": "βœ… Okay!\n\nYou can take the test later with /level_test\nor set level manually in /settings\n\nLet's start! Try:\nβ€’ /words travel - thematic words\nβ€’ /practice - AI dialogue\nβ€’ /add hello - add a word" }, "add": { "prompt": "Send the word you want to add:\nFor example: /add elephant\n\nOr just send the word without a command!", "searching": "⏳ Looking up translation and examples...", "examples_header": "Examples:", "translations_header": "Translations:", "translation_label": "Translation", "category_label": "Category", "level_label": "Level", "confirm_question": "Add this word to your vocabulary?", "btn_add": "βœ… Add", "btn_cancel": "❌ Cancel", "exists": "The word '{word}' is already in your vocabulary!\nTranslation: {translation}", "added_success": "βœ… Word '{word}' added!\n\nTotal words in vocabulary: {count}\n\nKeep adding new words or use /task to practice!", "cancelled": "Cancelled. You can add another word with /add" }, "vocab": { "empty": "πŸ“š Your vocabulary is empty!\n\nAdd your first word with /add or just send me a word.", "header": "πŸ“š Your vocabulary:", "accuracy_inline": "({n}% accuracy)", "shown_last": "Showing last 10 of {n} words", "total": "Total words: {n}", "page_info": "\nπŸ“– Page {page} of {total} β€’ Total words: {count}", "close_btn": "❌ Close" }, "practice": { "start_text": "πŸ’¬ Dialogue practice with AI\n\nChoose a scenario:\n\nβ€’ AI will play a role\nβ€’ You can chat in English\nβ€’ AI will correct your mistakes\nβ€’ Use /stop to finish\n\nPick a scenario:", "hints": "πŸ’‘ Hints:", "write_or_stop": "\nπŸ“ Write your answer in English or use /stop to finish", "show_translation_btn": "πŸ‘οΈ Show translation", "stop_btn": "πŸ”š End dialogue", "scenario": { "restaurant": "🍽️ Restaurant", "shopping": "πŸ›οΈ Shopping", "travel": "✈️ Travel", "work": "πŸ’Ό Work", "doctor": "πŸ₯ Doctor", "casual": "πŸ’¬ Casual" }, "thinking_prepare": "πŸ€” AI is preparing the dialogue...", "empty_prompt": "Write something in the learning language or use /stop to finish", "thinking": "πŸ€” AI is thinking...", "corrections": "Corrections:", "end_title": "βœ… Dialogue finished!", "end_exchanged": "Messages exchanged: {n}", "end_keep": "Great job! Keep practicing.", "end_hint": "Use /practice to start a new dialogue.", "translation_unavailable": "Translation unavailable", "translation_already": "Translation already shown", "custom_scenario_btn": "✏️ Custom scenario", "custom_scenario_prompt": "✏️ Describe your scenario\n\nWrite a topic or situation for the conversation.\n\nExamples:\nβ€’ Job interview for a programmer position\nβ€’ Ordering pizza by phone\nβ€’ Discussing a movie with a friend\nβ€’ Planning a trip to Japan", "custom_scenario_too_short": "⚠️ Description too short. Write at least a few words about the scenario.", "new_practice_btn": "πŸ”„ New dialogue", "to_tasks_btn": "🧠 Tasks", "to_words_btn": "🎯 Words", "go_tasks_hint": "Use /task to practice words", "go_words_hint": "Use /words [topic] for word sets" }, "tasks": { "choose_mode": "🧠 Choose task mode:", "mode_vocabulary": "πŸ“š Words from vocabulary", "mode_new_words": "✨ New words", "choose_type": "πŸ“‹ Choose task type:", "type_mix": "🎲 Mix (all types)", "type_word_translate": "πŸ“ Word translation", "type_fill_blank": "✏️ Fill in the blank", "type_sentence_translate": "πŸ“– Sentence translation", "generating_new": "πŸ”„ Generating new words...", "generate_failed": "❌ Failed to generate words. Try again later.", "translate_to": "Translate to {lang_name}", "no_words": "πŸ“š You don't have words to practice yet!\n\nAdd some words with /add and come back.", "stopped": "Exercises stopped. Use /task to start again.", "finished": "Exercises finished. Use /task to start again.", "header": "πŸ“ Task {i} of {n}", "write_answer": "\nπŸ’‘ Write your answer:", "checking": "⏳ Checking answer...", "correct": "βœ… Correct!", "incorrect": "❌ Incorrect", "your_answer": "Your answer", "right_answer": "Right answer", "next_btn": "➑️ Next task", "stop_btn": "πŸ”š Stop", "add_word_btn": "βž• Add word", "word_added": "βœ… Word '{word}' added to vocabulary!", "word_already_exists": "Word '{word}' is already in vocabulary", "example_label": "Example", "cancelled": "Cancelled. You can return to tasks with /task.", "finish_title": "{emoji} Task finished!", "correct_of": "Correct answers: {correct} of {total}", "accuracy": "Accuracy: {accuracy}%", "use_task": "Use /task to start a new one", "use_stats": "Use /stats to view statistics", "comment": { "excellent": "Excellent result!", "good": "Good job!", "average": "Not bad, keep practicing!", "poor": "Review these words again!" } }, "stats": { "header": "πŸ“Š Your stats", "total_words": "πŸ“š Words in vocabulary: {n}", "studied_words": "πŸ“– Words studied: {n}", "total_tasks": "✍️ Tasks completed: {n}", "correct_tasks": "βœ… Correct answers: {n}", "accuracy": "🎯 Accuracy: {n}%", "hint_add_words": "Add words with /add to start learning!", "hint_first_task": "Do your first task with /task!", "hint_keep_practice": "Keep practicing! πŸ’ͺ" }, "reminder": { "title": "⏰ Reminders", "status_on": "βœ… Enabled", "status_off": "❌ Disabled", "time_not_set": "Not set", "status_line": "Status: {status}", "time_line": "Time: {time} UTC", "desc1": "Reminders help you keep up with daily practice.", "desc2": "The bot will send a message at the chosen time every day.", "btn_enable": "βœ… Enable", "btn_disable": "❌ Disable", "btn_change_time": "⏰ Change time", "set_time_first": "Please set the reminder time first!", "enabled_toast": "βœ… Reminders enabled!", "enabled_title": "βœ… Reminders enabled!", "enabled_desc": "You will receive daily practice reminders.", "disabled_toast": "❌ Reminders disabled", "disabled_title": "❌ Reminders disabled", "disabled_desc": "Use /reminder to enable them again.", "set_title": "⏰ Set reminder time", "set_desc": "Send time in format HH:MM (UTC)", "set_examples": "Examples:\nβ€’ 09:00 - 9 AM UTC\nβ€’ 18:30 - 6:30 PM UTC\nβ€’ 20:00 - 8 PM UTC", "set_utc_hint": "πŸ’‘ UTC = local offset may apply", "cancel_hint": "Send /cancel to abort", "cancelled": "❌ Time setup cancelled", "invalid_format": "❌ Invalid time format!\n\nUse HH:MM (e.g., 09:00 or 18:30)\nOr send /cancel to abort", "time_set_title": "βœ… Time set!", "status_on_line": "Status: Enabled", "use_settings": "Use /reminder to change settings." }, "level_test": { "show_translation_btn": "πŸ‘οΈ Show question translation", "intro": "πŸ“Š Level placement test\n\nThis short test will help determine your English level.\n\nπŸ“‹ The test has 7 questions:\nβ€’ Grammar\nβ€’ Vocabulary\nβ€’ Comprehension\n\n⏱ Takes about 2–3 minutes\n\nReady to start?", "start_btn": "βœ… Start test", "cancel_btn": "❌ Cancel", "press_button": "Press the button when you're ready:", "cancelled": "❌ Test cancelled", "q_header": "❓ Question {i} of {n}" }, "settings": { "title": "βš™οΈ Settings\n\n", "level_prefix": "πŸ“Š Level: ", "learning_prefix": "🎯 Learning language: ", "interface_prefix": "🌐 Interface language: ", "translation_prefix": "πŸ’¬ Translation language: ", "choose": "Choose what to change:", "close": "❌ Close", "back": "⬅️ Back", "back_to_settings": "⬅️ Back to settings", "level_title": "πŸ“Š Choose your level:\n\n", "level_groups": "A1-A2 - Beginner\nB1-B2 - Intermediate\nC1-C2 - Advanced\n\n", "level_hint": "This affects difficulty of suggested words and tasks.", "level": { "a1": "A1 - Beginner", "a2": "A2 - Elementary", "b1": "B1 - Intermediate", "b2": "B2 - Upper-intermediate", "c1": "C1 - Advanced", "c2": "C2 - Proficient" }, "jlpt": { "n5": "N5 - Basic", "n4": "N4 - Elementary", "n3": "N3 - Intermediate", "n2": "N2 - Advanced", "n1": "N1 - Fluent" }, "jlpt_groups": "N5-N4 - Beginner\nN3 - Intermediate\nN2-N1 - Advanced\n\n", "level_changed": "βœ… Level changed to {level}\n\n", "level_changed_hint": "You will now receive words and tasks matching your level!", "lang_title": "🌐 Select interface language:\n\n", "lang_desc": "This will change the language of bot messages.", "lang_changed": "βœ… Interface language: English", "learning_title": "🎯 Select learning language:\n\n", "learning_changed": "βœ… Learning language: {code}", "translation_title": "πŸ’¬ Select translation language:\n\n", "translation_desc": "Words will be translated to this language.\nThis can differ from interface language.", "translation_changed": "βœ… Translation language: {lang_name}", "tasks_count_prefix": "πŸ”’ Tasks: ", "tasks_count_title": "πŸ”’ Number of tasks:\n\n", "tasks_count_desc": "How many tasks to generate at once.\nMinimum 5, maximum 15.", "tasks_count_changed": "βœ… Number of tasks: {count}", "menu_updated": "Main menu updated ‡️", "lang_name": { "ru": "πŸ‡·πŸ‡Ί Русский", "en": "πŸ‡¬πŸ‡§ English", "ja": "πŸ‡―πŸ‡΅ ζ—₯本θͺž" }, "learning_lang": { "en": "πŸ‡¬πŸ‡§ English", "es": "πŸ‡ͺπŸ‡Έ Spanish", "de": "πŸ‡©πŸ‡ͺ German", "fr": "πŸ‡«πŸ‡· French", "ja": "πŸ‡―πŸ‡΅ Japanese" } }, "import_extra": { "cancelled": "❌ Import cancelled." }, "import_file": { "unsupported_format": "❌ Unsupported file format.\n\nSupported: .txt, .md\n\nFile format:\nword - translation\nword : translation", "too_large": "❌ File is too large (max 1 MB)", "encoding_error": "❌ Encoding error. Make sure the file is UTF-8", "download_error": "❌ Failed to download file. Try again", "no_words_found": "❌ No words found in file.\n\nMake sure the format is correct:\nword - translation\nword : translation", "truncated": "⚠️ File contains more than {n} words. Importing first {n}.", "found_header": "πŸ“„ Words found in file: {n}", "choose_action": "Choose action:", "add_all_btn": "βœ… Add all ({n})", "translating": "πŸ”„ Translating words with AI..." }, "level_test_extra": { "generating": "πŸ”„ Generating questions...", "generate_failed": "❌ Failed to generate test. Try later or use /settings to set level manually.", "translation_unavailable": "Translation unavailable", "translation_marker": "Question translation:", "translation_already": "Translation already shown", "correct": "βœ… Correct!", "incorrect": "❌ Incorrect", "correct_answer": "Correct answer: {answer}", "result_title": "πŸŽ‰ Test completed!\n\n", "results_header": "πŸ“Š Results:\n", "correct_count": "Correct answers: {correct} of {total}\n", "accuracy": "Accuracy: {accuracy}%\n\n", "your_level": "🎯 Your level: {level}\n", "level_set_hint": "Tasks and materials will now be tailored to your level!\nYou can change the level anytime via /settings", "level_desc": { "A1": "Beginner - understand basic phrases and can introduce yourself", "A2": "Elementary - can communicate on simple topics", "B1": "Intermediate - can maintain conversations on familiar topics", "B2": "Upper-intermediate - fluent in most situations", "C1": "Advanced - use language flexibly and effectively", "C2": "Proficient - mastery at native level", "N5": "Basic - understand hiragana, katakana and basic kanji", "N4": "Elementary - understand everyday conversations", "N3": "Intermediate - understand common texts and conversations", "N2": "Advanced - understand most content", "N1": "Fluent - full proficiency in Japanese" } }, "onboarding": { "step2_title": "🎯 Which language do you want to learn?", "step3_title": "πŸ’¬ Which language to translate words into?", "complete": "βœ… Settings saved!", "lang_en": "πŸ‡¬πŸ‡§ English", "lang_ja": "πŸ‡―πŸ‡΅ Japanese" }, "words": { "generating": "πŸ”„ Generating words for topic '{theme}'...", "generate_failed": "❌ Failed to generate words. Please try again later.", "header": "πŸ“š Word set: {theme}", "choose": "Choose words to add to your vocabulary:", "add_all_btn": "βœ… Add all", "close_btn": "❌ Close", "help_title": "πŸ“š Thematic word sets", "help_usage": "Use: /words [topic]", "help_examples": "Examples:\nβ€’ /words travel - travel\nβ€’ /words food - food\nβ€’ /words work - work\nβ€’ /words nature - nature\nβ€’ /words technology - technology", "help_note": "I will generate 10 words for the topic tailored to your level!", "popular": "Popular topics:", "topic_travel": "✈️ Travel", "topic_food": "πŸ” Food", "topic_work": "πŸ’Ό Work", "topic_nature": "🌿 Nature", "topic_technology": "πŸ’» Technology", "err_not_found": "❌ Error: word not found", "already_exists": "The word '{word}' is already in your vocabulary", "added_single": "βœ… Word '{word}' added to vocabulary" } }