{
"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",
"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: ",
"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}",
"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"
}
},
"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"
}
}