From 9072fc365abb80b2695ac808363f190631a7fc1c Mon Sep 17 00:00:00 2001 From: Antigravity Date: Wed, 7 Oct 2026 14:43:06 +0300 Subject: [PATCH] refactor(stage-2): extract hardcoded curriculum datasets into data/seeds/*.json (-3100 lines) --- app/cefr.py | 1862 +------------- app/grammar.py | 936 +------ app/lessons.py | 220 +- app/phrasal.py | 217 +- data/seeds/cefr_questions.json | 3902 ++++++++++++++++++++++++++++++ data/seeds/grammar_units.json | 1232 ++++++++++ data/seeds/phrasal_verbs.json | 159 ++ data/seeds/reading_articles.json | 322 +++ 8 files changed, 5718 insertions(+), 3132 deletions(-) create mode 100644 data/seeds/cefr_questions.json create mode 100644 data/seeds/grammar_units.json create mode 100644 data/seeds/phrasal_verbs.json create mode 100644 data/seeds/reading_articles.json diff --git a/app/cefr.py b/app/cefr.py index c5ec349..f096790 100644 --- a/app/cefr.py +++ b/app/cefr.py @@ -19,1845 +19,35 @@ from app.dictionary import clean_russian_translation CEFR_LEVELS = ["A1", "A2", "B1", "B2"] -# Curated High-Yield CEFR Question Bank (Oxford 3000/5000) -# 65 items per level = 260 questions total -CURATED_CEFR_QUESTIONS: List[Dict[str, Any]] = [ - # ========================================================================= - # LEVEL A1 (Beginner: Daily life, basic items, common verbs & adjectives) - # ========================================================================= - { - "level": "A1", "term": "expensive", "pos": "adjective", "phonetic": "/ɪkˈspen.sɪv/", - "translation": "дорогой (по цене)", - "sentence": "This watch is too ___ for me to buy right now.", - "options": ["expensive", "cheap", "simple", "clean"], - "explanation": "Expensive (дорогой) — имеет высокую стоимость. В контексте: слишком дорого, чтобы купить сейчас.", - }, - { - "level": "A1", "term": "weather", "pos": "noun", "phonetic": "/ˈweð.ər/", - "translation": "погода", - "sentence": "The ___ today is sunny and wonderfully warm.", - "options": ["weather", "season", "journey", "holiday"], - "explanation": "Weather (погода) — состояние атмосферы на данный момент (солнечно, тепло).", - }, - { - "level": "A1", "term": "remember", "pos": "verb", "phonetic": "/rɪˈmem.bər/", - "translation": "помнить, вспоминать", - "sentence": "I cannot ___ his phone number without looking at my phone.", - "options": ["remember", "forget", "decide", "repeat"], - "explanation": "Remember (помнить) — удерживать информацию в памяти.", - }, - { - "level": "A1", "term": "careful", "pos": "adjective", "phonetic": "/ˈkeə.fəl/", - "translation": "осторожный, внимательный", - "sentence": "Be ___ when you cross the busy street!", - "options": ["careful", "boring", "dangerous", "wrong"], - "explanation": "Careful (осторожный) — обращающий внимание на безопасность.", - }, - { - "level": "A1", "term": "breakfast", "pos": "noun", "phonetic": "/ˈbrek.fəst/", - "translation": "завтрак", - "sentence": "She always eats eggs and toast for ___.", - "options": ["breakfast", "dinner", "kitchen", "uniform"], - "explanation": "Breakfast (завтрак) — первый утренний прием пищи.", - }, - { - "level": "A1", "term": "decide", "pos": "verb", "phonetic": "/dɪˈsaɪd/", - "translation": "решать, принимать решение", - "sentence": "We need to ___ where to go for our summer vacation.", - "options": ["decide", "invite", "listen", "travel"], - "explanation": "Decide (решать) — делать выбор между вариантами.", - }, - { - "level": "A1", "term": "village", "pos": "noun", "phonetic": "/ˈvɪl.ɪdʒ/", - "translation": "деревня, село", - "sentence": "My grandparents live in a quiet ___ in the mountains.", - "options": ["village", "airport", "hospital", "library"], - "explanation": "Village (деревня) — небольшой населенный пункт за городом.", - }, - { - "level": "A1", "term": "dangerous", "pos": "adjective", "phonetic": "/ˈdeɪn.dʒər.əs/", - "translation": "опасный", - "sentence": "Swimming in this stormy river is very ___.", - "options": ["dangerous", "exciting", "healthy", "wonderful"], - "explanation": "Dangerous (опасный) — способный причинить вред или травму.", - }, - { - "level": "A1", "term": "invite", "pos": "verb", "phonetic": "/ɪnˈvaɪt/", - "translation": "приглашать", - "sentence": "They want to ___ all their classmates to the birthday party.", - "options": ["invite", "address", "listen", "welcome"], - "explanation": "Invite (приглашать) — звать кого-то на мероприятие.", - }, - { - "level": "A1", "term": "borrow", "pos": "verb", "phonetic": "/ˈbɒr.əʊ/", - "translation": "одалживать, брать взаймы", - "sentence": "Can I ___ your pencil for a minute, please?", - "options": ["borrow", "lend", "spend", "repeat"], - "explanation": "Borrow (брать взаймы) — брать вещь во временное пользование.", - }, - { - "level": "A1", "term": "healthy", "pos": "adjective", "phonetic": "/ˈhel.θi/", - "translation": "здоровый, полезный для здоровья", - "sentence": "Eating fresh fruit and vegetables keeps your body ___.", - "options": ["healthy", "boring", "wrong", "famous"], - "explanation": "Healthy (здоровый) — способствующий хорошему самочувствию.", - }, - { - "level": "A1", "term": "journey", "pos": "noun", "phonetic": "/ˈdʒɜː.ni/", - "translation": "путешествие, поездка", - "sentence": "It was a long ___ by train across the entire country.", - "options": ["journey", "ticket", "minute", "station"], - "explanation": "Journey (путешествие, поездка) — передвижение из одного места в другое.", - }, - { - "level": "A1", "term": "simple", "pos": "adjective", "phonetic": "/ˈsɪm.pəl/", - "translation": "простой, несложный", - "sentence": "The recipe is very ___ and only takes ten minutes.", - "options": ["simple", "expensive", "dangerous", "careful"], - "explanation": "Simple (простой) — легкий для понимания или выполнения.", - }, - { - "level": "A1", "term": "foreign", "pos": "adjective", "phonetic": "/ˈfɒr.ən/", - "translation": "иностранный, зарубежный", - "sentence": "She enjoys learning ___ languages and studying their grammar.", - "options": ["foreign", "famous", "careful", "boring"], - "explanation": "Foreign (иностранный) — принадлежащий другой стране.", - }, - { - "level": "A1", "term": "neighbor", "pos": "noun", "phonetic": "/ˈneɪ.bər/", - "translation": "сосед", - "sentence": "Our next-door ___ has three friendly dogs.", - "options": ["neighbor", "student", "parent", "person"], - "explanation": "Neighbor (сосед) — человек, живущий рядом.", - }, - { - "level": "A1", "term": "exciting", "pos": "adjective", "phonetic": "/ɪkˈsaɪ.tɪŋ/", - "translation": "захватывающий, увлекательный", - "sentence": "Watching the championship final was really ___!", - "options": ["exciting", "boring", "wrong", "cheap"], - "explanation": "Exciting (захватывающий) — вызывающий сильные положительные эмоции.", - }, - { - "level": "A1", "term": "listen", "pos": "verb", "phonetic": "/ˈlɪs.ən/", - "translation": "слушать", - "sentence": "You should ___ carefully to the teacher's instructions.", - "options": ["listen", "invite", "decide", "repeat"], - "explanation": "Listen (слушать) — обращать слуховое внимание на речь или звук.", - }, - { - "level": "A1", "term": "hospital", "pos": "noun", "phonetic": "/ˈhɒs.pɪ.təl/", - "translation": "больница, госпиталь", - "sentence": "The doctor works in the largest city ___.", - "options": ["hospital", "airport", "station", "library"], - "explanation": "Hospital (больница) — медицинское учреждение для лечения больных.", - }, - { - "level": "A1", "term": "ticket", "pos": "noun", "phonetic": "/ˈtɪk.ɪt/", - "translation": "билет", - "sentence": "Don't forget to buy a metro ___ before entering.", - "options": ["ticket", "package", "message", "question"], - "explanation": "Ticket (билет) — документ на право проезда или посещения.", - }, - { - "level": "A1", "term": "boring", "pos": "adjective", "phonetic": "/ˈbɔː.rɪŋ/", - "translation": "скучный", - "sentence": "The lecture was so ___ that half the audience fell asleep.", - "options": ["boring", "exciting", "wonderful", "healthy"], - "explanation": "Boring (скучный) — не вызывающий интереса.", - }, - { - "level": "A1", "term": "airport", "pos": "noun", "phonetic": "/ˈeə.pɔːt/", - "translation": "аэропорт", - "sentence": "We arrived at the ___ two hours before our departure.", - "options": ["airport", "hospital", "station", "village"], - "explanation": "Airport (аэропорт) — комплекс для взлета, посадки и обслуживания самолетов.", - }, - { - "level": "A1", "term": "clothes", "pos": "noun", "phonetic": "/kləʊðz/", - "translation": "одежда", - "sentence": "He bought warm winter ___ because it was snowing outside.", - "options": ["clothes", "luggage", "tickets", "packages"], - "explanation": "Clothes (одежда) — предметы гардероба, надеваемые на тело.", - }, - { - "level": "A1", "term": "repeat", "pos": "verb", "phonetic": "/rɪˈpiːt/", - "translation": "повторять", - "sentence": "Could you please ___ that question? I didn't hear you.", - "options": ["repeat", "decide", "invite", "borrow"], - "explanation": "Repeat (повторять) — сказать или сделать что-то еще раз.", - }, - { - "level": "A1", "term": "famous", "pos": "adjective", "phonetic": "/ˈfeɪ.məs/", - "translation": "знаменитый, известный", - "sentence": "She is a very ___ actress known around the globe.", - "options": ["famous", "careful", "wrong", "simple"], - "explanation": "Famous (знаменитый) — широко известный многим людям.", - }, - { - "level": "A1", "term": "message", "pos": "noun", "phonetic": "/ˈmes.ɪdʒ/", - "translation": "сообщение", - "sentence": "He sent me a text ___ to confirm the meeting time.", - "options": ["message", "question", "address", "ticket"], - "explanation": "Message (сообщение) — переданная информация в письменном или голосовом виде.", - }, - { - "level": "A1", "term": "wonderful", "pos": "adjective", "phonetic": "/ˈwʌn.də.fəl/", - "translation": "замечательный, чудесный", - "sentence": "We had a ___ weekend walking by the lake.", - "options": ["wonderful", "dangerous", "boring", "wrong"], - "explanation": "Wonderful (чудесный) — приносящий огромное удовольствие или восхищение.", - }, - { - "level": "A1", "term": "station", "pos": "noun", "phonetic": "/ˈsteɪ.ʃən/", - "translation": "станция, вокзал", - "sentence": "The train arrived at the central railway ___ on schedule.", - "options": ["station", "airport", "hospital", "village"], - "explanation": "Station (станция, вокзал) — остановочный пункт поездов или автобусов.", - }, - { - "level": "A1", "term": "library", "pos": "noun", "phonetic": "/ˈlaɪ.brər.i/", - "translation": "библиотека", - "sentence": "Students go to the quiet ___ to read textbooks.", - "options": ["library", "hospital", "station", "airport"], - "explanation": "Library (библиотека) — учреждение для хранения и выдачи книг.", - }, - { - "level": "A1", "term": "package", "pos": "noun", "phonetic": "/ˈpæk.ɪdʒ/", - "translation": "посылка, пакет", - "sentence": "The courier delivered a heavy cardboard ___ to my door.", - "options": ["package", "ticket", "message", "minute"], - "explanation": "Package (посылка, сверток) — упакованный груз для доставки.", - }, - { - "level": "A1", "term": "travel", "pos": "verb", "phonetic": "/ˈtræv.əl/", - "translation": "путешествовать", - "sentence": "They plan to ___ across Europe during their holidays.", - "options": ["travel", "decide", "listen", "repeat"], - "explanation": "Travel (путешествовать) — совершать поездки в другие города или страны.", - }, - { - "level": "A1", "term": "address", "pos": "noun", "phonetic": "/əˈdres/", - "translation": "адрес", - "sentence": "Please write down your postal ___ on the delivery form.", - "options": ["address", "message", "question", "ticket"], - "explanation": "Address (адрес) — указание места жительства или нахождения здания.", - }, - { - "level": "A1", "term": "wrong", "pos": "adjective", "phonetic": "/rɒŋ/", - "translation": "неправильный, неверный", - "sentence": "I took the ___ bus and ended up in another neighborhood.", - "options": ["wrong", "simple", "healthy", "famous"], - "explanation": "Wrong (неправильный) — несоответствующий правде или правильному направлению.", - }, - { - "level": "A1", "term": "yesterday", "pos": "adverb", "phonetic": "/ˈjes.tə.deɪ/", - "translation": "вчера", - "sentence": "I bought some new shoes ___ afternoon.", - "options": ["yesterday", "tomorrow", "always", "together"], - "explanation": "Yesterday (вчера) — в день, предшествующий сегодняшнему.", - }, - { - "level": "A1", "term": "tomorrow", "pos": "adverb", "phonetic": "/təˈmɒr.əʊ/", - "translation": "завтра", - "sentence": "The bank will open again ___ morning at nine.", - "options": ["tomorrow", "yesterday", "always", "together"], - "explanation": "Tomorrow (завтра) — в день, следующий за сегодняшним.", - }, - { - "level": "A1", "term": "holiday", "pos": "noun", "phonetic": "/ˈhɒl.ə.deɪ/", - "translation": "праздник, отпуск", - "sentence": "We booked a sunny two-week ___ by the Mediterranean sea.", - "options": ["holiday", "journey", "station", "airport"], - "explanation": "Holiday (отпуск, праздник) — период отдыха от работы или учебы.", - }, - { - "level": "A1", "term": "uniform", "pos": "noun", "phonetic": "/ˈjuː.nɪ.fɔːm/", - "translation": "форма, униформа", - "sentence": "Police officers must wear a neat ___ on duty.", - "options": ["uniform", "clothes", "package", "ticket"], - "explanation": "Uniform (униформа) — установленная служебная форма одежды.", - }, - { - "level": "A1", "term": "between", "pos": "preposition", "phonetic": "/bɪˈtwiːn/", - "translation": "между", - "sentence": "The pharmacy is situated ___ the bakery and the bank.", - "options": ["between", "together", "always", "because"], - "explanation": "Between (между) — в пространстве, разделяющем два объекта.", - }, - { - "level": "A1", "term": "together", "pos": "adverb", "phonetic": "/təˈɡeð.ər/", - "translation": "вместе", - "sentence": "Let's work ___ to complete the project faster.", - "options": ["together", "between", "yesterday", "tomorrow"], - "explanation": "Together (вместе) — совместно с кем-либо.", - }, - { - "level": "A1", "term": "welcome", "pos": "noun", "phonetic": "/ˈwel.kəm/", - "translation": "теплый прием, приветствие", - "sentence": "The host gave a cheerful ___ to all the guests.", - "options": ["welcome", "address", "message", "journey"], - "explanation": "Welcome (приветствие, радушный прием) — доброе отношение к прибывшим.", - }, - { - "level": "A1", "term": "question", "pos": "noun", "phonetic": "/ˈkwes.tʃən/", - "translation": "вопрос", - "sentence": "If you are confused, raise your hand and ask a ___.", - "options": ["question", "message", "address", "ticket"], - "explanation": "Question (вопрос) — обращение с целью получить ответ.", - }, - { - "level": "A1", "term": "bottle", "pos": "noun", "phonetic": "/ˈbɒt.əl/", - "translation": "бутылка", - "sentence": "Could you bring a ___ of cold water from the fridge?", - "options": ["bottle", "ticket", "weather", "message"], - "explanation": "Bottle (бутылка) — емкость для хранения напитков и жидкостей.", - }, - { - "level": "A1", "term": "island", "pos": "noun", "phonetic": "/ˈaɪ.lənd/", - "translation": "остров", - "sentence": "They spent their holiday on a small Greek ___.", - "options": ["island", "village", "airport", "station"], - "explanation": "Island (остров) — участок суши, окруженный водой.", - }, - { - "level": "A1", "term": "pocket", "pos": "noun", "phonetic": "/ˈpɒk.ɪt/", - "translation": "карман", - "sentence": "He put his keys and wallet into his jacket ___.", - "options": ["pocket", "package", "bottle", "uniform"], - "explanation": "Pocket (карман) — часть одежды в виде мешочка для мелких вещей.", - }, - { - "level": "A1", "term": "mirror", "pos": "noun", "phonetic": "/ˈmɪr.ər/", - "translation": "зеркало", - "sentence": "She looked at herself in the bathroom ___.", - "options": ["mirror", "window", "picture", "corner"], - "explanation": "Mirror (зеркало) — стеклянная поверхность, отражающая изображение.", - }, - { - "level": "A1", "term": "market", "pos": "noun", "phonetic": "/ˈmɑː.kɪt/", - "translation": "рынок, базар", - "sentence": "We buy fresh fruit every Saturday at the local ___.", - "options": ["market", "hospital", "station", "library"], - "explanation": "Market (рынок) — место торговли свежими продуктами и вещами.", - }, - { - "level": "A1", "term": "bridge", "pos": "noun", "phonetic": "/brɪdʒ/", - "translation": "мост", - "sentence": "The old stone ___ crosses the wide river.", - "options": ["bridge", "village", "island", "corner"], - "explanation": "Bridge (мост) — сооружение для перехода через реку или дорогу.", - }, - { - "level": "A1", "term": "corner", "pos": "noun", "phonetic": "/ˈkɔː.nər/", - "translation": "угол", - "sentence": "There is a small bakery on the ___ of our street.", - "options": ["corner", "mirror", "bottle", "pocket"], - "explanation": "Corner (угол) — место пересечения двух стен или улиц.", - }, - { - "level": "A1", "term": "cloud", "pos": "noun", "phonetic": "/klaʊd/", - "translation": "облако, туча", - "sentence": "Look at that dark ___ in the sky; it will rain soon.", - "options": ["cloud", "weather", "season", "island"], - "explanation": "Cloud (облако, туча) — скопление водяных паров на небе.", - }, - { - "level": "A1", "term": "floor", "pos": "noun", "phonetic": "/flɔːr/", - "translation": "пол, этаж", - "sentence": "Our new apartment is on the third ___.", - "options": ["floor", "corner", "market", "bridge"], - "explanation": "Floor (пол, этаж) — ярус в здании или нижняя поверхность комнаты.", - }, - { - "level": "A1", "term": "laugh", "pos": "verb", "phonetic": "/lɑːf/", - "translation": "смеяться", - "sentence": "The funny comedy movie made everybody ___.", - "options": ["laugh", "listen", "borrow", "decide"], - "explanation": "Laugh (смеяться) — выражать радость или веселье характерными звуками.", - }, - { - "level": "A1", "term": "shout", "pos": "verb", "phonetic": "/ʃaʊt/", - "translation": "кричать", - "sentence": "Please do not ___ inside the quiet library.", - "options": ["shout", "whisper", "invite", "repeat"], - "explanation": "Shout (кричать) — издавать громкий звук голосом.", - }, - { - "level": "A1", "term": "wash", "pos": "verb", "phonetic": "/wɒʃ/", - "translation": "мыть, стирать", - "sentence": "Remember to ___ your hands before having dinner.", - "options": ["wash", "borrow", "travel", "listen"], - "explanation": "Wash (мыть) — очищать водой с мылом.", - }, - { - "level": "A1", "term": "catch", "pos": "verb", "phonetic": "/kætʃ/", - "translation": "ловить, успеть (на транспорт)", - "sentence": "We must run quickly to ___ the morning bus.", - "options": ["catch", "throw", "decide", "invite"], - "explanation": "Catch (ловить, успевать) — поймать предмет или успеть сесть на транспорт.", - }, - { - "level": "A1", "term": "throw", "pos": "verb", "phonetic": "/θrəʊ/", - "translation": "бросать, кидать", - "sentence": "He tried to ___ the ball over the tall wall.", - "options": ["throw", "catch", "wash", "borrow"], - "explanation": "Throw (бросать) — метать предмет движением руки.", - }, - { - "level": "A1", "term": "build", "pos": "verb", "phonetic": "/bɪld/", - "translation": "строить", - "sentence": "They plan to ___ a new school in our neighborhood.", - "options": ["build", "borrow", "destroy", "invite"], - "explanation": "Build (строить) — возводить здание или конструкцию.", - }, - { - "level": "A1", "term": "climb", "pos": "verb", "phonetic": "/klaɪm/", - "translation": "взбираться, карабкаться", - "sentence": "Children love to ___ the big trees in the park.", - "options": ["climb", "throw", "catch", "repeat"], - "explanation": "Climb (взбираться) — подниматься вверх, цепляясь руками и ногами.", - }, - { - "level": "A1", "term": "heavy", "pos": "adjective", "phonetic": "/ˈhev.i/", - "translation": "тяжелый", - "sentence": "This suitcase is too ___ for me to carry alone.", - "options": ["heavy", "light", "clean", "simple"], - "explanation": "Heavy (тяжелый) — имеющий большой вес.", - }, - { - "level": "A1", "term": "narrow", "pos": "adjective", "phonetic": "/ˈnær.əʊ/", - "translation": "узкий", - "sentence": "The car could not drive down the ___ street.", - "options": ["narrow", "wide", "expensive", "famous"], - "explanation": "Narrow (узкий) — имеющий небольшую ширину.", - }, - { - "level": "A1", "term": "empty", "pos": "adjective", "phonetic": "/ˈemp.ti/", - "translation": "пустой", - "sentence": "The fuel tank is completely ___, so we must stop.", - "options": ["empty", "heavy", "healthy", "boring"], - "explanation": "Empty (пустой) — не содержащий ничего внутри.", - }, - { - "level": "A1", "term": "hungry", "pos": "adjective", "phonetic": "/ˈhʌŋ.ɡri/", - "translation": "голодный", - "sentence": "After the long walk in the forest, we were very ___.", - "options": ["hungry", "thirsty", "careful", "dangerous"], - "explanation": "Hungry (голодный) — испытывающий потребность в еде.", - }, - { - "level": "A1", "term": "thirsty", "pos": "adjective", "phonetic": "/ˈθɜː.sti/", - "translation": "испытывающий жажду", - "sentence": "Drink some water if you feel ___ after running.", - "options": ["thirsty", "hungry", "empty", "heavy"], - "explanation": "Thirsty (испытывающий жажду) — желающий пить воду.", - }, - { - "level": "A1", "term": "quiet", "pos": "adjective", "phonetic": "/ˈkwaɪ.ət/", - "translation": "тихий, спокойный", - "sentence": "This is a very ___ library where people study peacefully.", - "options": ["quiet", "loud", "dangerous", "careful"], - "explanation": "Quiet (тихий) — не производящий шума, спокойный.", - }, - { - "level": "A1", "term": "loud", "pos": "adjective", "phonetic": "/laʊd/", - "translation": "громкий, шумный", - "sentence": "The music was so ___ that I could not hear your voice.", - "options": ["loud", "quiet", "simple", "clean"], - "explanation": "Loud (громкий) — обладающий большой силой звука.", - }, - { - "level": "A1", "term": "clever", "pos": "adjective", "phonetic": "/ˈklev.ər/", - "translation": "умный, сообразительный", - "sentence": "She found a very ___ solution to that difficult riddle.", - "options": ["clever", "wrong", "boring", "dangerous"], - "explanation": "Clever (сообразительный, умный) — быстро понимающий и находчивый.", - }, - { - "level": "A1", "term": "blanket", "pos": "noun", "phonetic": "/ˈblæŋ.kɪt/", - "translation": "одеяло, плед", - "sentence": "It was cold, so she put a warm ___ over the bed.", - "options": ["blanket", "package", "mirror", "pocket"], - "explanation": "Blanket (одеяло, плед) — теплое шерстяное или хлопковое покрывало.", - }, - # ========================================================================= - # LEVEL A2 (Elementary: Practical everyday conversation, work, actions) - # ========================================================================= - { - "level": "A2", "term": "necessary", "pos": "adjective", "phonetic": "/ˈnes.ə.ser.i/", - "translation": "необходимый, нужный", - "sentence": "Good sleep is ___ for maintaining proper physical health.", - "options": ["necessary", "temporary", "available", "convenient"], - "explanation": "Necessary (необходимый) — требуется или обязательно для чего-либо.", - }, - { - "level": "A2", "term": "improve", "pos": "verb", "phonetic": "/ɪmˈpruːv/", - "translation": "улучшать, совершенствовать", - "sentence": "Reading articles in English helps to ___ your vocabulary.", - "options": ["improve", "damage", "refuse", "doubt"], - "explanation": "Improve (улучшать) — делать что-то лучше или качественнее.", - }, - { - "level": "A2", "term": "environment", "pos": "noun", "phonetic": "/ɪnˈvaɪ.rən.mənt/", - "translation": "окружающая среда", - "sentence": "Solar energy is clean and protects the ___.", - "options": ["environment", "culture", "condition", "experience"], - "explanation": "Environment (окружающая среда) — природный мир вокруг нас.", - }, - { - "level": "A2", "term": "believe", "pos": "verb", "phonetic": "/bɪˈliːv/", - "translation": "верить, полагать", - "sentence": "I truly ___ that consistent effort brings great results.", - "options": ["believe", "remind", "avoid", "refuse"], - "explanation": "Believe (верить) — быть уверенным в правдивости чего-либо.", - }, - { - "level": "A2", "term": "experience", "pos": "noun", "phonetic": "/ɪkˈspɪə.ri.əns/", - "translation": "опыт", - "sentence": "The applicant has four years of direct practical ___.", - "options": ["experience", "opinion", "solution", "culture"], - "explanation": "Experience (опыт) — знания и навыки, полученные в процессе деятельности.", - }, - { - "level": "A2", "term": "describe", "pos": "verb", "phonetic": "/dɪˈskraɪb/", - "translation": "описывать", - "sentence": "Can you ___ what the missing backpack looks like?", - "options": ["describe", "connect", "afford", "damage"], - "explanation": "Describe (описывать) — рассказывать о признаках или свойствах предмета.", - }, - { - "level": "A2", "term": "choice", "pos": "noun", "phonetic": "/tʃɔɪs/", - "translation": "выбор", - "sentence": "Customers have a wide ___ of fresh dishes on the menu.", - "options": ["choice", "condition", "reason", "degree"], - "explanation": "Choice (выбор) — возможность предпочесть один вариант другому.", - }, - { - "level": "A2", "term": "condition", "pos": "noun", "phonetic": "/kənˈdɪʃ.ən/", - "translation": "состояние, условие", - "sentence": "The used bicycle is still in nearly perfect ___.", - "options": ["condition", "solution", "opinion", "culture"], - "explanation": "Condition (состояние) — физическая форма или сохранность объекта.", - }, - { - "level": "A2", "term": "explain", "pos": "verb", "phonetic": "/ɪkˈspleɪn/", - "translation": "объяснять", - "sentence": "The engineer will ___ how to configure the router.", - "options": ["explain", "refuse", "avoid", "doubt"], - "explanation": "Explain (объяснять) — делать понятным логику или механизм.", - }, - { - "level": "A2", "term": "reason", "pos": "noun", "phonetic": "/ˈriː.zən/", - "translation": "причина, повод", - "sentence": "The main ___ for his absence was a sudden fever.", - "options": ["reason", "effect", "degree", "habit"], - "explanation": "Reason (причина) — основание или повод для какого-либо события.", - }, - { - "level": "A2", "term": "succeed", "pos": "verb", "phonetic": "/səkˈsiːd/", - "translation": "преуспевать, добиваться успеха", - "sentence": "If you prepare thoroughly, you will ___ in your exam.", - "options": ["succeed", "fail", "refuse", "avoid"], - "explanation": "Succeed (преуспевать) — достигать желаемой цели.", - }, - { - "level": "A2", "term": "afford", "pos": "verb", "phonetic": "/əˈfɔːd/", - "translation": "позволить себе (финансово)", - "sentence": "We cannot ___ to rent such an expensive apartment right now.", - "options": ["afford", "connect", "damage", "manage"], - "explanation": "Afford (позволить себе) — иметь достаточно денег или ресурсов.", - }, - { - "level": "A2", "term": "arrange", "pos": "verb", "phonetic": "/əˈreɪndʒ/", - "translation": "организовывать, договариваться", - "sentence": "Let's ___ a video call for Friday morning.", - "options": ["arrange", "refuse", "damage", "doubt"], - "explanation": "Arrange (организовывать) — согласовать план или встречу.", - }, - { - "level": "A2", "term": "avoid", "pos": "verb", "phonetic": "/əˈvɔɪd/", - "translation": "избегать, уклоняться", - "sentence": "Drivers should always ___ speeding in residential areas.", - "options": ["avoid", "afford", "protect", "support"], - "explanation": "Avoid (избегать) — стараться не допустить нежелательного действия.", - }, - { - "level": "A2", "term": "compare", "pos": "verb", "phonetic": "/kəmˈpeər/", - "translation": "сравнивать", - "sentence": "It is useful to ___ prices before buying airline tickets.", - "options": ["compare", "connect", "damage", "refuse"], - "explanation": "Compare (сравнивать) — сопоставлять объекты для выявления различий.", - }, - { - "level": "A2", "term": "complete", "pos": "verb", "phonetic": "/kəmˈpliːt/", - "translation": "завершать, заполнять", - "sentence": "Please ___ the online registration form to continue.", - "options": ["complete", "remind", "manage", "avoid"], - "explanation": "Complete (завершать, заполнять) — доводить дело или форму до конца.", - }, - { - "level": "A2", "term": "connect", "pos": "verb", "phonetic": "/kəˈnekt/", - "translation": "соединять, подключать", - "sentence": "Plug in the cable to ___ your phone to the computer.", - "options": ["connect", "damage", "refuse", "doubt"], - "explanation": "Connect (подключать) — устанавливать физическую или логическую связь.", - }, - { - "level": "A2", "term": "contain", "pos": "verb", "phonetic": "/kənˈteɪn/", - "translation": "содержать в себе", - "sentence": "These citrus fruits ___ large quantities of vitamin C.", - "options": ["contain", "expect", "manage", "refuse"], - "explanation": "Contain (содержать) — включать в свой состав.", - }, - { - "level": "A2", "term": "crowd", "pos": "noun", "phonetic": "/kraʊd/", - "translation": "толпа людей", - "sentence": "A cheering ___ filled the stadium during the game.", - "options": ["crowd", "flight", "future", "habit"], - "explanation": "Crowd (толпа) — большое скопление людей в одном месте.", - }, - { - "level": "A2", "term": "culture", "pos": "noun", "phonetic": "/ˈkʌl.tʃər/", - "translation": "культура", - "sentence": "Living abroad exposes you to a totally different ___.", - "options": ["culture", "condition", "degree", "solution"], - "explanation": "Culture (культура) — традиции, обычаи и образ жизни народа.", - }, - { - "level": "A2", "term": "damage", "pos": "noun", "phonetic": "/ˈdæm.ɪdʒ/", - "translation": "ущерб, повреждение", - "sentence": "The hailstorm caused severe ___ to the parked cars.", - "options": ["damage", "effect", "reason", "choice"], - "explanation": "Damage (ущерб) — физический вред или разрушение предметов.", - }, - { - "level": "A2", "term": "degree", "pos": "noun", "phonetic": "/dɪˈɡriː/", - "translation": "градус, степень", - "sentence": "The temperature dropped by five ___ during the night.", - "options": ["degree", "condition", "reason", "choice"], - "explanation": "Degree (градус) — единица измерения температуры или угла.", - }, - { - "level": "A2", "term": "depend", "pos": "verb", "phonetic": "/dɪˈpend/", - "translation": "зависеть", - "sentence": "Whether we go hiking will ___ on the weather tomorrow.", - "options": ["depend", "expect", "manage", "refuse"], - "explanation": "Depend (зависеть) — определяться внешними факторами.", - }, - { - "level": "A2", "term": "discover", "pos": "verb", "phonetic": "/dɪˈskʌv.ər/", - "translation": "открывать, обнаруживать", - "sentence": "Researchers hope to ___ cleaner methods of energy production.", - "options": ["discover", "damage", "avoid", "refuse"], - "explanation": "Discover (обнаруживать) — находить ранее неизвестное.", - }, - { - "level": "A2", "term": "discuss", "pos": "verb", "phonetic": "/dɪˈskʌs/", - "translation": "обсуждать", - "sentence": "Let's gather in the conference room to ___ the roadmap.", - "options": ["discuss", "refuse", "damage", "avoid"], - "explanation": "Discuss (обсуждать) — обмениваться мнениями по вопросу.", - }, - { - "level": "A2", "term": "doubt", "pos": "noun", "phonetic": "/daʊt/", - "translation": "сомнение", - "sentence": "There is no ___ that he is telling the absolute truth.", - "options": ["doubt", "habit", "crowd", "flight"], - "explanation": "Doubt (сомнение) — отсутствие твердой уверенности.", - }, - { - "level": "A2", "term": "effect", "pos": "noun", "phonetic": "/ɪˈfekt/", - "translation": "эффект, следствие", - "sentence": "The new law had a noticeable positive ___ on the economy.", - "options": ["effect", "reason", "degree", "choice"], - "explanation": "Effect (эффект) — результат или последствие определенного действия.", - }, - { - "level": "A2", "term": "energy", "pos": "noun", "phonetic": "/ˈen.ə.dʒi/", - "translation": "энергия, силы", - "sentence": "Running every morning gives me a lot of positive ___.", - "options": ["energy", "culture", "condition", "solution"], - "explanation": "Energy (энергия) — физическая или моральная сила для действий.", - }, - { - "level": "A2", "term": "expect", "pos": "verb", "phonetic": "/ɪkˈspekt/", - "translation": "ожидать, рассчитывать", - "sentence": "We ___ the parcel to arrive before five in the afternoon.", - "options": ["expect", "refuse", "damage", "avoid"], - "explanation": "Expect (ожидать) — рассчитывать на наступление события.", - }, - { - "level": "A2", "term": "fail", "pos": "verb", "phonetic": "/feɪl/", - "translation": "потерпеть неудачу, провалить", - "sentence": "If students do not study, they may ___ the final test.", - "options": ["fail", "succeed", "manage", "support"], - "explanation": "Fail (провалить) — не справиться с поставленной задачей.", - }, - { - "level": "A2", "term": "flight", "pos": "noun", "phonetic": "/flaɪt/", - "translation": "рейс, полет", - "sentence": "Their transatlantic ___ was smooth and arrived on time.", - "options": ["flight", "crowd", "habit", "future"], - "explanation": "Flight (рейс, полет) — путешествие на воздушном судне.", - }, - { - "level": "A2", "term": "future", "pos": "noun", "phonetic": "/ˈfjuː.tʃər/", - "translation": "будущее", - "sentence": "Artificial intelligence will transform the ___ of work.", - "options": ["future", "culture", "flight", "condition"], - "explanation": "Future (будущее) — время, которое еще предстоит пережить.", - }, - { - "level": "A2", "term": "guess", "pos": "noun", "phonetic": "/ɡes/", - "translation": "догадка, предположение", - "sentence": "If you don't know the exact answer, make an educated ___.", - "options": ["guess", "choice", "reason", "degree"], - "explanation": "Guess (догадка) — предположение без точных данных.", - }, - { - "level": "A2", "term": "habit", "pos": "noun", "phonetic": "/ˈhæb.ɪt/", - "translation": "привычка", - "sentence": "Brushing your teeth before bed is a healthy personal ___.", - "options": ["habit", "crowd", "flight", "future"], - "explanation": "Habit (привычка) — регулярное автоматическое действие.", - }, - { - "level": "A2", "term": "happen", "pos": "verb", "phonetic": "/ˈhæp.ən/", - "translation": "случаться, происходить", - "sentence": "Nobody predicted that such an accident could ___.", - "options": ["happen", "refuse", "avoid", "damage"], - "explanation": "Happen (происходить) — иметь место, совершаться.", - }, - { - "level": "A2", "term": "imagine", "pos": "verb", "phonetic": "/ɪˈmædʒ.ɪn/", - "translation": "представлять, воображать", - "sentence": "It is hard to ___ modern life without high-speed internet.", - "options": ["imagine", "refuse", "damage", "avoid"], - "explanation": "Imagine (воображать) — создавать мысленный образ в голове.", - }, - { - "level": "A2", "term": "manage", "pos": "verb", "phonetic": "/ˈmæn.ɪdʒ/", - "translation": "справляться, суметь сделать", - "sentence": "Despite heavy traffic, she did ___ to reach the office on time.", - "options": ["manage", "refuse", "avoid", "damage"], - "explanation": "Manage (справляться) — успешно преодолеть трудность и выполнить дело.", - }, - { - "level": "A2", "term": "nature", "pos": "noun", "phonetic": "/ˈneɪ.tʃər/", - "translation": "природа", - "sentence": "A weekend hike in the woods lets you enjoy pure ___.", - "options": ["nature", "culture", "crowd", "flight"], - "explanation": "Nature (природа) — естественный мир растений, животных и ландшафтов.", - }, - { - "level": "A2", "term": "notice", "pos": "verb", "phonetic": "/ˈnəʊ.tɪs/", - "translation": "замечать, обращать внимание", - "sentence": "Did you ___ that the bookstore moved to another street?", - "options": ["notice", "refuse", "damage", "avoid"], - "explanation": "Notice (замечать) — зафиксировать что-то зрением или вниманием.", - }, - { - "level": "A2", "term": "opinion", "pos": "noun", "phonetic": "/əˈpɪn.jən/", - "translation": "мнение, точка зрения", - "sentence": "In my humble ___, this is the tastiest coffee in town.", - "options": ["opinion", "condition", "solution", "reason"], - "explanation": "Opinion (мнение) — личная оценка или суждение о предмете.", - }, - { - "level": "A2", "term": "accident", "pos": "noun", "phonetic": "/ˈæk.sɪ.dənt/", - "translation": "авария, несчастный случай", - "sentence": "He had a minor car ___ because of the slippery road.", - "options": ["accident", "condition", "flight", "habit"], - "explanation": "Accident (авария, несчастный случай) — непредвиденное происшествие с ущербом.", - }, - { - "level": "A2", "term": "advice", "pos": "noun", "phonetic": "/ədˈvaɪs/", - "translation": "совет", - "sentence": "My teacher gave me great ___ on how to prepare for exams.", - "options": ["advice", "opinion", "reason", "culture"], - "explanation": "Advice (совет) — полезная рекомендация или наставление.", - }, - { - "level": "A2", "term": "compete", "pos": "verb", "phonetic": "/kəmˈpiːt/", - "translation": "соревноваться, состязаться", - "sentence": "Athletes from thirty countries will ___ in the tournament.", - "options": ["compete", "compare", "contain", "succeed"], - "explanation": "Compete (соревноваться) — стремиться к победе в состязании с другими.", - }, - { - "level": "A2", "term": "customer", "pos": "noun", "phonetic": "/ˈkʌs.tə.mər/", - "translation": "клиент, покупатель", - "sentence": "The shop assistant was polite and helped every ___.", - "options": ["customer", "passenger", "crowd", "flight"], - "explanation": "Customer (клиент, покупатель) — лицо, приобретающее товары или услуги.", - }, - { - "level": "A2", "term": "earn", "pos": "verb", "phonetic": "/ɜːn/", - "translation": "зарабатывать", - "sentence": "He works overtime to ___ enough money for a new laptop.", - "options": ["earn", "afford", "borrow", "spend"], - "explanation": "Earn (зарабатывать) — получать деньги за выполняемую работу.", - }, - { - "level": "A2", "term": "equipment", "pos": "noun", "phonetic": "/ɪˈkwɪp.mənt/", - "translation": "оборудование, снаряжение", - "sentence": "Make sure you bring the right sports ___ for camping.", - "options": ["equipment", "environment", "culture", "condition"], - "explanation": "Equipment (оборудование, снаряжение) — необходимые инструменты или вещи для занятия.", - }, - { - "level": "A2", "term": "patient", "pos": "adjective", "phonetic": "/ˈpeɪ.ʃənt/", - "translation": "терпеливый", - "sentence": "Teachers need to be very ___ with young beginner students.", - "options": ["patient", "careful", "dangerous", "healthy"], - "explanation": "Patient (терпеливый) — способный спокойно переносить трудности или ожидание.", - }, - { - "level": "A2", "term": "pollute", "pos": "verb", "phonetic": "/pəˈluːt/", - "translation": "загрязнять", - "sentence": "Factories should not ___ the air with toxic smoke.", - "options": ["pollute", "improve", "protect", "contain"], - "explanation": "Pollute (загрязнять) — делать окружающую среду грязной или вредной.", - }, - { - "level": "A2", "term": "proud", "pos": "adjective", "phonetic": "/praʊd/", - "translation": "гордый (испытывающий гордость)", - "sentence": "Her parents were very ___ when she won first prize.", - "options": ["proud", "disappointed", "jealous", "afraid"], - "explanation": "Proud (гордый) — испытывающий чувство глубокого удовлетворения за успех.", - }, - { - "level": "A2", "term": "refuse", "pos": "verb", "phonetic": "/rɪˈfjuːz/", - "translation": "отказываться", - "sentence": "I had to ___ his invitation because of urgent work.", - "options": ["refuse", "accept", "decide", "suggest"], - "explanation": "Refuse (отказываться) — отклонить предложение или просьбу.", - }, - { - "level": "A2", "term": "repair", "pos": "verb", "phonetic": "/rɪˈpeər/", - "translation": "чинить, ремонтировать", - "sentence": "Can you help me ___ this broken bicycle wheel?", - "options": ["repair", "damage", "destroy", "improve"], - "explanation": "Repair (ремонтировать) — восстанавливать поврежденный предмет.", - }, - { - "level": "A2", "term": "salary", "pos": "noun", "phonetic": "/ˈsæl.ər.i/", - "translation": "заработная плата", - "sentence": "They offered him a higher monthly ___ in the new position.", - "options": ["salary", "ticket", "package", "damage"], - "explanation": "Salary (зарплата) — регулярная оплата труда работника.", - }, - { - "level": "A2", "term": "separate", "pos": "adjective", "phonetic": "/ˈsep.ər.ət/", - "translation": "отдельный, раздельный", - "sentence": "The children sleep in ___ rooms on the second floor.", - "options": ["separate", "connected", "complete", "necessary"], - "explanation": "Separate (отдельный) — находящийся отдельно от других, не соединенный.", - }, - { - "level": "A2", "term": "strange", "pos": "adjective", "phonetic": "/streɪndʒ/", - "translation": "странный, необычный", - "sentence": "I heard a ___ noise coming from the basement at midnight.", - "options": ["strange", "simple", "famous", "boring"], - "explanation": "Strange (странный) — непривычный, вызывающий удивление или недоумение.", - }, - { - "level": "A2", "term": "traffic", "pos": "noun", "phonetic": "/ˈtræf.ɪk/", - "translation": "дорожное движение", - "sentence": "There was heavy ___ on the highway, so we arrived late.", - "options": ["traffic", "flight", "crowd", "weather"], - "explanation": "Traffic (дорожное движение) — поток транспортных средств на дороге.", - }, - { - "level": "A2", "term": "urgent", "pos": "adjective", "phonetic": "/ˈɜː.dʒənt/", - "translation": "срочный, неотложный", - "sentence": "The doctor received an ___ phone call from the clinic.", - "options": ["urgent", "patient", "boring", "slow"], - "explanation": "Urgent (срочный) — требующий немедленного внимания или действия.", - }, - { - "level": "A2", "term": "warn", "pos": "verb", "phonetic": "/wɔːn/", - "translation": "предупреждать", - "sentence": "The guard tried to ___ the tourists about the thin ice.", - "options": ["warn", "invite", "explain", "interrupt"], - "explanation": "Warn (предупреждать) — заранее извещать об опасности или неприятности.", - }, - { - "level": "A2", "term": "attend", "pos": "verb", "phonetic": "/əˈtend/", - "translation": "посещать, присутствовать", - "sentence": "All staff members are required to ___ the weekly meeting.", - "options": ["attend", "avoid", "expect", "improve"], - "explanation": "Attend (посещать) — присутствовать на собрании, уроке или мероприятии.", - }, - { - "level": "A2", "term": "benefit", "pos": "noun", "phonetic": "/ˈben.ɪ.fɪt/", - "translation": "польза, выгода, преимущество", - "sentence": "Regular exercise offers an enormous health ___ for everyone.", - "options": ["benefit", "damage", "condition", "accident"], - "explanation": "Benefit (польза, выгода) — положительный эффект или преимущество.", - }, - { - "level": "A2", "term": "celebrate", "pos": "verb", "phonetic": "/ˈsel.ə.breɪt/", - "translation": "праздновать, отмечать", - "sentence": "We gathered together to ___ her graduation with a cake.", - "options": ["celebrate", "compete", "describe", "separate"], - "explanation": "Celebrate (праздновать) — отмечать радостное событие или праздник.", - }, - { - "level": "A2", "term": "protect", "pos": "verb", "phonetic": "/prəˈtekt/", - "translation": "защищать, оберегать", - "sentence": "Sunglasses ___ your eyes from strong ultraviolet rays.", - "options": ["protect", "pollute", "damage", "interrupt"], - "explanation": "Protect (защищать) — предохранять от вреда, опасности или повреждений.", - }, - { - "level": "A2", "term": "remain", "pos": "verb", "phonetic": "/rɪˈmeɪn/", - "translation": "оставаться", - "sentence": "Please ___ seated until the aircraft comes to a stop.", - "options": ["remain", "depart", "change", "connect"], - "explanation": "Remain (оставаться) — продолжать находиться в прежнем месте или состоянии.", - }, - { - "level": "A2", "term": "suggest", "pos": "verb", "phonetic": "/səˈdʒest/", - "translation": "предлагать, советовать", - "sentence": "Can you ___ a good Italian restaurant downtown?", - "options": ["suggest", "refuse", "warn", "guess"], - "explanation": "Suggest (предлагать) — высказать идею, рекомендацию или вариант выбора.", - }, - { - "level": "A2", "term": "transport", "pos": "noun", "phonetic": "/ˈtræn.spɔːt/", - "translation": "транспорт", - "sentence": "Public ___ in the capital is fast, clean, and reliable.", - "options": ["transport", "traffic", "flight", "journey"], - "explanation": "Transport (транспорт) — средства перевозки людей и грузов.", - }, - { - "level": "A2", "term": "wealthy", "pos": "adjective", "phonetic": "/ˈwel.θi/", - "translation": "богатый, состоятельный", - "sentence": "He comes from a ___ family that owns several businesses.", - "options": ["wealthy", "expensive", "proud", "patient"], - "explanation": "Wealthy (состоятельный) — обладающий большим богатством или имуществом.", - }, +from pathlib import Path +from app import config - # ========================================================================= - # LEVEL B1 (Intermediate: Abstract concepts, professional life, reasoning) - # ========================================================================= - { - "level": "B1", "term": "decision", "pos": "noun", "phonetic": "/dɪˈsɪʒ.ən/", - "translation": "решение", - "sentence": "Choosing a career path is a major life ___.", - "options": ["decision", "opportunity", "relationship", "behavior"], - "explanation": "Decision (решение) — сделанный выбор или заключение после размышлений.", - }, - { - "level": "B1", "term": "achieve", "pos": "verb", "phonetic": "/əˈtʃiːv/", - "translation": "достигать (цели)", - "sentence": "With persistent practice, you can ___ fluency in English.", - "options": ["achieve", "interrupt", "hesitate", "negotiate"], - "explanation": "Achieve (достигать) — успешно завершить запланированное упорным трудом.", - }, - { - "level": "B1", "term": "community", "pos": "noun", "phonetic": "/kəˈmjuː.nə.ti/", - "translation": "сообщество, общественность", - "sentence": "The local ___ gathered to build a new playground.", - "options": ["community", "relationship", "behavior", "mystery"], - "explanation": "Community (сообщество) — группа людей, объединенных общим местом или интересами.", - }, - { - "level": "B1", "term": "convenient", "pos": "adjective", "phonetic": "/kənˈviː.ni.ənt/", - "translation": "удобный, подходящий", - "sentence": "Living near a subway station is extremely ___ for commuting.", - "options": ["convenient", "generous", "jealous", "temporary"], - "explanation": "Convenient (удобный) — подходящий по расположению или времени, экономящий силы.", - }, - { - "level": "B1", "term": "develop", "pos": "verb", "phonetic": "/dɪˈvel.əp/", - "translation": "развивать, разрабатывать", - "sentence": "Our engineering squad will ___ a modern backend service.", - "options": ["develop", "hesitate", "interrupt", "negotiate"], - "explanation": "Develop (разрабатывать) — создавать, улучшать и развивать продукт.", - }, - { - "level": "B1", "term": "opportunity", "pos": "noun", "phonetic": "/ˌɒp.əˈtʃuː.nə.ti/", - "translation": "возможность, шанс", - "sentence": "An internship abroad provides a rare ___ to gain global experience.", - "options": ["opportunity", "consequence", "requirement", "behavior"], - "explanation": "Opportunity (возможность) — благоприятное стечение обстоятельств.", - }, - { - "level": "B1", "term": "relationship", "pos": "noun", "phonetic": "/rɪˈleɪ.ʃən.ʃɪp/", - "translation": "отношения, взаимосвязь", - "sentence": "Mutual trust is essential for building a lasting professional ___.", - "options": ["relationship", "community", "behavior", "mystery"], - "explanation": "Relationship (отношения) — связь и взаимодействие между людьми.", - }, - { - "level": "B1", "term": "behavior", "pos": "noun", "phonetic": "/bɪˈheɪ.vjər/", - "translation": "поведение", - "sentence": "The teacher commended the student for respectful classroom ___.", - "options": ["behavior", "community", "decision", "mystery"], - "explanation": "Behavior (поведение) — манера вести себя и действовать.", - }, - { - "level": "B1", "term": "challenge", "pos": "noun", "phonetic": "/ˈtʃæl.ɪndʒ/", - "translation": "сложная задача, вызов", - "sentence": "Migrating a legacy database is always a serious technical ___.", - "options": ["challenge", "opportunity", "consequence", "requirement"], - "explanation": "Challenge (вызов) — сложная задача, требующая усилий.", - }, - { - "level": "B1", "term": "consequence", "pos": "noun", "phonetic": "/ˈkɒn.sɪ.kwəns/", - "translation": "последствие", - "sentence": "Losing your data is a direct ___ of not keeping backups.", - "options": ["consequence", "community", "behavior", "opportunity"], - "explanation": "Consequence (последствие) — результат, вытекающий из действия.", - }, - { - "level": "B1", "term": "consider", "pos": "verb", "phonetic": "/kənˈsɪd.ər/", - "translation": "обдумывать, учитывать", - "sentence": "You should carefully ___ all pros and cons before signing.", - "options": ["consider", "hesitate", "interrupt", "negotiate"], - "explanation": "Consider (обдумывать) — взвешивать факторы перед решением.", - }, - { - "level": "B1", "term": "definitely", "pos": "adverb", "phonetic": "/ˈdef.ɪ.nət.li/", - "translation": "определенно, точно", - "sentence": "I will ___ finish this pull request before leaving today.", - "options": ["definitely", "fluently", "generously", "logically"], - "explanation": "Definitely (определенно) — без малейших сомнений.", - }, - { - "level": "B1", "term": "disappointed", "pos": "adjective", "phonetic": "/ˌdɪs.əˈpɔɪn.tɪd/", - "translation": "разочарованный", - "sentence": "We felt ___ when our favorite restaurant was closed.", - "options": ["disappointed", "confident", "generous", "sensible"], - "explanation": "Disappointed (разочарованный) — огорченный несбывшимися ожиданиями.", - }, - { - "level": "B1", "term": "encourage", "pos": "verb", "phonetic": "/ɪnˈkʌr.ɪdʒ/", - "translation": "поощрять, подбадривать", - "sentence": "Mentors should always ___ beginners when learning new skills.", - "options": ["encourage", "interrupt", "hesitate", "negotiate"], - "explanation": "Encourage (поощрять) — вселять уверенность и поддерживать.", - }, - { - "level": "B1", "term": "essential", "pos": "adjective", "phonetic": "/ɪˈsen.ʃəl/", - "translation": "существенный, неотъемлемый", - "sentence": "Writing tests is an ___ part of production software engineering.", - "options": ["essential", "temporary", "jealous", "modest"], - "explanation": "Essential (существенный) — фундаментально важный.", - }, - { - "level": "B1", "term": "fluent", "pos": "adjective", "phonetic": "/ˈfluː.ənt/", - "translation": "беглый, свободно говорящий", - "sentence": "After years in London, she became completely ___ in English.", - "options": ["fluent", "generous", "modest", "logical"], - "explanation": "Fluent (беглый) — способный свободно и без запинок говорить на языке.", - }, - { - "level": "B1", "term": "generous", "pos": "adjective", "phonetic": "/ˈdʒen.ər.əs/", - "translation": "щедрый, великодушный", - "sentence": "The sponsor made a very ___ contribution to the charity.", - "options": ["generous", "jealous", "temporary", "sensible"], - "explanation": "Generous (щедрый) — готовый охотно делиться ресурсами.", - }, - { - "level": "B1", "term": "hesitate", "pos": "verb", "phonetic": "/ˈhez.ɪ.teɪt/", - "translation": "колебаться, сомневаться", - "sentence": "Please do not ___ to ask if any requirement is unclear.", - "options": ["hesitate", "negotiate", "achieve", "interrupt"], - "explanation": "Hesitate (колебаться) — медлить из-за сомнений или нерешительности.", - }, - { - "level": "B1", "term": "influence", "pos": "noun", "phonetic": "/ˈɪn.flu.əns/", - "translation": "влияние, воздействие", - "sentence": "Good books have a deep positive ___ on personal growth.", - "options": ["influence", "behavior", "mystery", "challenge"], - "explanation": "Influence (влияние) — сила воздействия на мысли или действия других.", - }, - { - "level": "B1", "term": "interrupt", "pos": "verb", "phonetic": "/ˌɪn.təˈrʌpt/", - "translation": "перебивать, прерывать", - "sentence": "It is impolite to ___ colleagues while they present their ideas.", - "options": ["interrupt", "hesitate", "encourage", "negotiate"], - "explanation": "Interrupt (перебивать) — нарушать ход чьей-то речи или действия.", - }, - { - "level": "B1", "term": "jealous", "pos": "adjective", "phonetic": "/ˈdʒel.əs/", - "translation": "ревнивый, завистливый", - "sentence": "He was slightly ___ of his friend's new sports car.", - "options": ["jealous", "generous", "sensible", "modest"], - "explanation": "Jealous (завистливый) — испытывающий досаду от чужого успеха или имущества.", - }, - { - "level": "B1", "term": "maintain", "pos": "verb", "phonetic": "/meɪnˈteɪn/", - "translation": "поддерживать, сохранять", - "sentence": "It takes daily habit to ___ high code quality in a repo.", - "options": ["maintain", "interrupt", "hesitate", "negotiate"], - "explanation": "Maintain (поддерживать) — сохранять объект в надлежащем состоянии.", - }, - { - "level": "B1", "term": "mystery", "pos": "noun", "phonetic": "/ˈmɪs.tər.i/", - "translation": "тайна, загадка", - "sentence": "The origin of that ancient ruined temple remains an unsolved ___.", - "options": ["mystery", "behavior", "relationship", "decision"], - "explanation": "Mystery (загадка) — то, что трудно объяснить или понять.", - }, - { - "level": "B1", "term": "negotiate", "pos": "verb", "phonetic": "/nəˈɡəʊ.ʃi.eɪt/", - "translation": "вести переговоры, договариваться", - "sentence": "The founders met to ___ the terms of their partnership.", - "options": ["negotiate", "interrupt", "hesitate", "encourage"], - "explanation": "Negotiate (вести переговоры) — обсуждать условия для достижения соглашения.", - }, - { - "level": "B1", "term": "obvious", "pos": "adjective", "phonetic": "/ˈɒb.vi.əs/", - "translation": "очевидный, явный", - "sentence": "It is ___ that system security must be prioritized from day one.", - "options": ["obvious", "modest", "temporary", "jealous"], - "explanation": "Obvious (очевидный) — легко заметный и понятный без объяснений.", - }, - { - "level": "B1", "term": "particular", "pos": "adjective", "phonetic": "/pəˈtɪk.jə.lər/", - "translation": "конкретный, определенный", - "sentence": "Was there any ___ reason why the service crashed?", - "options": ["particular", "fluent", "generous", "jealous"], - "explanation": "Particular (конкретный) — относящийся именно к данному случаю или лицу.", - }, - { - "level": "B1", "term": "persuade", "pos": "verb", "phonetic": "/pəˈsweɪd/", - "translation": "убеждать", - "sentence": "She was able to ___ the manager with well-prepared statistics.", - "options": ["persuade", "interrupt", "hesitate", "maintain"], - "explanation": "Persuade (убеждать) — склонять к своей точке зрения доводами.", - }, - { - "level": "B1", "term": "reliable", "pos": "adjective", "phonetic": "/rɪˈlaɪ.ə.bəl/", - "translation": "надежный", - "sentence": "We need a ___ database that does not lose data on restart.", - "options": ["reliable", "jealous", "temporary", "disappointed"], - "explanation": "Reliable (надежный) — верный, заслуживающий доверия.", - }, - { - "level": "B1", "term": "requirement", "pos": "noun", "phonetic": "/rɪˈkwaɪə.mənt/", - "translation": "требование, условие", - "sentence": "Having Python installed is a mandatory ___ for this script.", - "options": ["requirement", "consequence", "community", "behavior"], - "explanation": "Requirement (требование) — обязательное условие.", - }, - { - "level": "B1", "term": "sensible", "pos": "adjective", "phonetic": "/ˈsen.sə.bəl/", - "translation": "благоразумный, разумный", - "sentence": "Wearing a warm jacket in sub-zero weather is a very ___ choice.", - "options": ["sensible", "jealous", "temporary", "disappointed"], - "explanation": "Sensible (благоразумный) — продиктованный здравым смыслом.", - }, - { - "level": "B1", "term": "suitable", "pos": "adjective", "phonetic": "/ˈsuː.tə.bəl/", - "translation": "подходящий, годный", - "sentence": "This quiet study room is very ___ for reading long texts.", - "options": ["suitable", "jealous", "disappointed", "fluent"], - "explanation": "Suitable (подходящий) — соответствующий целям и потребностям.", - }, - { - "level": "B1", "term": "temporary", "pos": "adjective", "phonetic": "/ˈtem.pər.ər.i/", - "translation": "временный", - "sentence": "The detour is only ___ while the bridge is repaired.", - "options": ["temporary", "essential", "reliable", "fluent"], - "explanation": "Temporary (временный) — действующий лишь ограниченный период времени.", - }, - { - "level": "B1", "term": "universal", "pos": "adjective", "phonetic": "/ˌjuː.nɪˈvɜː.səl/", - "translation": "всеобщий, универсальный", - "sentence": "Curiosity is a ___ characteristic of human nature.", - "options": ["universal", "temporary", "jealous", "modest"], - "explanation": "Universal (универсальный) — применимый повсеместно.", - }, - { - "level": "B1", "term": "valuable", "pos": "adjective", "phonetic": "/ˈvæl.jə.bəl/", - "translation": "ценный, полезный", - "sentence": "Her feedback on our design provided ___ insights.", - "options": ["valuable", "jealous", "temporary", "disappointed"], - "explanation": "Valuable (ценный) — обладающий большой пользой или ценностью.", - }, - { - "level": "B1", "term": "vulnerable", "pos": "adjective", "phonetic": "/ˈvʌl.nər.ə.bəl/", - "translation": "уязвимый", - "sentence": "Unpatched systems are highly ___ to automated cyber attacks.", - "options": ["vulnerable", "generous", "fluent", "sensible"], - "explanation": "Vulnerable (уязвимый) — слабо защищенный от вредоносных факторов.", - }, - { - "level": "B1", "term": "ambitious", "pos": "adjective", "phonetic": "/æmˈbɪʃ.əs/", - "translation": "амбициозный, целеустремленный", - "sentence": "The startup announced an ___ plan to launch ten satellites.", - "options": ["ambitious", "jealous", "disappointed", "temporary"], - "explanation": "Ambitious (амбициозный) — ставящий смелые, масштабные цели.", - }, - { - "level": "B1", "term": "confident", "pos": "adjective", "phonetic": "/ˈkɒn.fɪ.dənt/", - "translation": "уверенный в себе", - "sentence": "He gave a clear presentation because he felt ___ in his results.", - "options": ["confident", "disappointed", "jealous", "temporary"], - "explanation": "Confident (уверенный) — не сомневающийся в своих силах.", - }, - { - "level": "B1", "term": "curious", "pos": "adjective", "phonetic": "/ˈkjʊə.ri.əs/", - "translation": "любознательный, любопытный", - "sentence": "Young children are endlessly ___ about the world around them.", - "options": ["curious", "disappointed", "jealous", "fluent"], - "explanation": "Curious (любознательный) — стремящийся узнать что-то новое.", - }, - { - "level": "B1", "term": "efficient", "pos": "adjective", "phonetic": "/ɪˈfɪʃ.ənt/", - "translation": "эффективный, продуктивный", - "sentence": "Using keyboard shortcuts makes editing text much more ___.", - "options": ["efficient", "jealous", "temporary", "modest"], - "explanation": "Efficient (эффективный) — дающий максимальный результат при минимуме затрат.", - }, - { - "level": "B1", "term": "reasonable", "pos": "adjective", "phonetic": "/ˈriː.zən.ə.bəl/", - "translation": "разумный, приемлемый", - "sentence": "The hotel offered comfortable clean rooms at a very ___ price.", - "options": ["reasonable", "jealous", "disappointed", "temporary"], - "explanation": "Reasonable (разумный, приемлемый) — адекватный, справедливый по цене или требованиям.", - }, - { - "level": "B1", "term": "accomplish", "pos": "verb", "phonetic": "/əˈkʌm.plɪʃ/", - "translation": "выполнить, достичь", - "sentence": "With proper focus, you can ___ your goals ahead of schedule.", - "options": ["accomplish", "hesitate", "interrupt", "negotiate"], - "explanation": "Accomplish (достичь, выполнить) — успешно завершить начатое дело или цель.", - }, - { - "level": "B1", "term": "accurate", "pos": "adjective", "phonetic": "/ˈæk.jə.rət/", - "translation": "точный, правильный", - "sentence": "The financial report must provide completely ___ figures.", - "options": ["accurate", "vulnerable", "sensible", "fluent"], - "explanation": "Accurate (точный) — соответствующий истине, без ошибок.", - }, - { - "level": "B1", "term": "adequate", "pos": "adjective", "phonetic": "/ˈæd.ə.kwət/", - "translation": "достаточный, соответствующий", - "sentence": "Make sure you get ___ sleep before running the marathon.", - "options": ["adequate", "temporary", "curious", "jealous"], - "explanation": "Adequate (достаточный) — удовлетворяющий определенным требованиям или норме.", - }, - { - "level": "B1", "term": "anxiety", "pos": "noun", "phonetic": "/æŋˈzaɪ.ə.ti/", - "translation": "тревожность, беспокойство", - "sentence": "Meditation helps reduce stress and chronic ___ significantly.", - "options": ["anxiety", "consequence", "decision", "mystery"], - "explanation": "Anxiety (тревожность) — эмоциональное состояние сильного внутреннего беспокойства.", - }, - { - "level": "B1", "term": "apparent", "pos": "adjective", "phonetic": "/əˈpær.ənt/", - "translation": "очевидный, явный", - "sentence": "It soon became ___ that they had made a serious error.", - "options": ["apparent", "valuable", "ambitious", "fluent"], - "explanation": "Apparent (очевидный) — легко различимый, понятный без объяснений.", - }, - { - "level": "B1", "term": "circumstance", "pos": "noun", "phonetic": "/ˈsɜː.kəm.stɑːns/", - "translation": "обстоятельство", - "sentence": "Under no ___ should you share your banking passwords.", - "options": ["circumstance", "community", "requirement", "behavior"], - "explanation": "Circumstance (обстоятельство) — условие или событие, сопровождающее ситуацию.", - }, - { - "level": "B1", "term": "convince", "pos": "verb", "phonetic": "/kənˈvɪns/", - "translation": "убеждать", - "sentence": "He tried hard to ___ the committee of the plan's feasibility.", - "options": ["convince", "interrupt", "hesitate", "maintain"], - "explanation": "Convince (убеждать) — склонять к согласию аргументами и доводами.", - }, - { - "level": "B1", "term": "critical", "pos": "adjective", "phonetic": "/ˈkrɪt.ɪ.kəl/", - "translation": "критический, решающий", - "sentence": "The first few hours after an injury are of ___ importance.", - "options": ["critical", "fluent", "generous", "suitable"], - "explanation": "Critical (критический, решающий) — имеющий решающее значение для исхода дела.", - }, - { - "level": "B1", "term": "deny", "pos": "verb", "phonetic": "/dɪˈnaɪ/", - "translation": "отрицать", - "sentence": "The suspect continued to ___ any involvement in the theft.", - "options": ["deny", "persuade", "interrupt", "encourage"], - "explanation": "Deny (отрицать) — отвергать утверждение или обвинение.", - }, - { - "level": "B1", "term": "emphasize", "pos": "verb", "phonetic": "/ˈem.fə.saɪz/", - "translation": "подчеркивать, акцентировать", - "sentence": "The teacher wished to ___ the importance of consistent practice.", - "options": ["emphasize", "hesitate", "negotiate", "consider"], - "explanation": "Emphasize (подчеркивать) — обращать особое внимание на что-то.", - }, - { - "level": "B1", "term": "frequent", "pos": "adjective", "phonetic": "/ˈfriː.kwənt/", - "translation": "частый", - "sentence": "Bus delays are a ___ problem during snowy winter months.", - "options": ["frequent", "temporary", "valuable", "vulnerable"], - "explanation": "Frequent (частый) — повторяющийся через короткие промежутки времени.", - }, - { - "level": "B1", "term": "genuine", "pos": "adjective", "phonetic": "/ˈdʒen.ju.ɪn/", - "translation": "подлинный, искренний", - "sentence": "She showed ___ interest in learning about foreign cultures.", - "options": ["genuine", "jealous", "disappointed", "sensible"], - "explanation": "Genuine (подлинный, искренний) — неподдельный, настоящий.", - }, - { - "level": "B1", "term": "intend", "pos": "verb", "phonetic": "/ɪnˈtend/", - "translation": "намереваться, планировать", - "sentence": "Do you ___ to stay here permanently or return home soon?", - "options": ["intend", "hesitate", "interrupt", "negotiate"], - "explanation": "Intend (намереваться) — иметь твердый план или намерение что-то совершить.", - }, - { - "level": "B1", "term": "obtain", "pos": "verb", "phonetic": "/əbˈteɪn/", - "translation": "получать, приобретать", - "sentence": "You must ___ an entry visa before traveling abroad.", - "options": ["obtain", "deny", "hesitate", "disappoint"], - "explanation": "Obtain (получать) — приобретать или добиваться обладания чем-либо.", - }, - { - "level": "B1", "term": "persistent", "pos": "adjective", "phonetic": "/pəˈsɪs.tənt/", - "translation": "настойчивый, упорный", - "sentence": "Through ___ hard work, she eventually mastered fluent English.", - "options": ["persistent", "temporary", "vulnerable", "jealous"], - "explanation": "Persistent (упорный, настойчивый) — продолжающий действовать, невзирая на препятствия.", - }, - { - "level": "B1", "term": "predict", "pos": "verb", "phonetic": "/prɪˈdɪkt/", - "translation": "предсказывать, прогнозировать", - "sentence": "Economists struggle to ___ market swings with high accuracy.", - "options": ["predict", "persuade", "interrupt", "maintain"], - "explanation": "Predict (предсказывать) — делать прогноз о будущем на основе фактов.", - }, - { - "level": "B1", "term": "sufficient", "pos": "adjective", "phonetic": "/səˈfɪʃ.ənt/", - "translation": "достаточный", - "sentence": "We have ___ evidence to prove that the hypothesis is sound.", - "options": ["sufficient", "curious", "jealous", "ambitious"], - "explanation": "Sufficient (достаточный) — в том количестве, которое требуется для цели.", - }, - { - "level": "B1", "term": "threaten", "pos": "verb", "phonetic": "/ˈθret.ən/", - "translation": "угрожать", - "sentence": "Rising sea levels ___ low-lying coastal towns worldwide.", - "options": ["threaten", "encourage", "convince", "accomplish"], - "explanation": "Threaten (угрожать) — представлять потенциальную опасность или риск.", - }, - { - "level": "B1", "term": "approve", "pos": "verb", "phonetic": "/əˈpruːv/", - "translation": "одобрять, утверждать", - "sentence": "The board of directors is expected to ___ the budget tomorrow.", - "options": ["approve", "deny", "hesitate", "interrupt"], - "explanation": "Approve (одобрять) — официально соглашаться или санкционировать.", - }, - { - "level": "B1", "term": "broadcast", "pos": "verb", "phonetic": "/ˈbrɔːd.kɑːst/", - "translation": "вещать, транслировать", - "sentence": "The radio station will ___ the live championship match.", - "options": ["broadcast", "negotiate", "maintain", "interrupt"], - "explanation": "Broadcast (вещать) — передавать информацию по радио, телевидению или сети.", - }, - { - "level": "B1", "term": "cooperate", "pos": "verb", "phonetic": "/kəʊˈɒp.ər.eɪt/", - "translation": "сотрудничать, взаимодействовать", - "sentence": "The two research teams decided to ___ on the clinical study.", - "options": ["cooperate", "compete", "hesitate", "deny"], - "explanation": "Cooperate (сотрудничать) — совместно трудиться ради общей цели.", - }, - { - "level": "B1", "term": "distinguish", "pos": "verb", "phonetic": "/dɪˈstɪŋ.ɡwɪʃ/", - "translation": "различать, отличать", - "sentence": "It is difficult to ___ the two identical twin sisters.", - "options": ["distinguish", "convince", "interrupt", "persuade"], - "explanation": "Distinguish (различать) — замечать разницу между объектами.", - }, - { - "level": "B1", "term": "eliminate", "pos": "verb", "phonetic": "/iˈlɪm.ɪ.neɪt/", - "translation": "устранять, ликвидировать", - "sentence": "Automation aims to ___ repetitive manual clerical tasks.", - "options": ["eliminate", "maintain", "hesitate", "develop"], - "explanation": "Eliminate (устранять) — полностью удалять или избавляться от чего-либо.", - }, - { - "level": "B1", "term": "guarantee", "pos": "verb", "phonetic": "/ˌɡær.ənˈtiː/", - "translation": "гарантировать", - "sentence": "We cannot ___ that the shipment will arrive by tomorrow.", - "options": ["guarantee", "deny", "hesitate", "threaten"], - "explanation": "Guarantee (гарантировать) — давать твердое обещание или заверение.", - }, - { - "level": "B1", "term": "identify", "pos": "verb", "phonetic": "/aɪˈden.tɪ.faɪ/", - "translation": "опознавать, определять", - "sentence": "The system uses biometric scans to ___ authorized employees.", - "options": ["identify", "deny", "hesitate", "threaten"], - "explanation": "Identify (опознавать) — устанавливать точную личность или природу объекта.", - }, +_CURATED_CEFR_QUESTIONS_CACHE = None - # ========================================================================= - # LEVEL B2 (Upper-Intermediate: Academic, nuanced, debate, precision) - # ========================================================================= - { - "level": "B2", "term": "compromise", "pos": "noun", "phonetic": "/ˈkɒm.prə.maɪz/", - "translation": "компромисс, взаимная уступка", - "sentence": "After intense negotiations, both sides reached a workable ___.", - "options": ["compromise", "consensus", "ambiguity", "contradiction"], - "explanation": "Compromise (компромисс) — соглашение на основе взаимных уступок.", - }, - { - "level": "B2", "term": "inevitable", "pos": "adjective", "phonetic": "/ɪnˈev.ɪ.tə.bəl/", - "translation": "неизбежный, неотвратимый", - "sentence": "Some degree of change is ___ in any growing organization.", - "options": ["inevitable", "plausible", "arbitrary", "versatile"], - "explanation": "Inevitable (неизбежный) — то, что невозможно предотвратить.", - }, - { - "level": "B2", "term": "elaborate", "pos": "verb", "phonetic": "/ɪˈlæb.ə.reɪt/", - "translation": "вдаваться в детали, подробно разъяснять", - "sentence": "Could you please ___ on how this algorithm handles edge cases?", - "options": ["elaborate", "diminish", "facilitate", "terminate"], - "explanation": "Elaborate (подробно разъяснять) — раскрывать тему с дополнительными деталями.", - }, - { - "level": "B2", "term": "coherent", "pos": "adjective", "phonetic": "/kəʊˈhɪə.rənt/", - "translation": "связный, логичный, последовательный", - "sentence": "She outlined a remarkably clear and ___ architectural design.", - "options": ["coherent", "arbitrary", "reluctant", "ambiguous"], - "explanation": "Coherent (связный, последовательный) — логически выстроенный без внутренних противоречий.", - }, - { - "level": "B2", "term": "sophisticated", "pos": "adjective", "phonetic": "/səˈfɪs.tɪ.keɪ.tɪd/", - "translation": "сложный, утонченный, высокотехнологичный", - "sentence": "Modern network firewalls utilize ___ pattern detection.", - "options": ["sophisticated", "arbitrary", "preliminary", "reluctant"], - "explanation": "Sophisticated (высокотехнологичный) — обладающий высоким уровнем сложности и развития.", - }, - { - "level": "B2", "term": "resilient", "pos": "adjective", "phonetic": "/rɪˈzɪl.jənt/", - "translation": "устойчивый к сбоям, жизнестойкий", - "sentence": "The distributed cluster proved ___ even when two nodes went down.", - "options": ["resilient", "reluctant", "arbitrary", "plausible"], - "explanation": "Resilient (жизнестойкий, отказоустойчивый) — способный быстро восстанавливаться после потрясений.", - }, - { - "level": "B2", "term": "ambiguity", "pos": "noun", "phonetic": "/ˌæm.bɪˈɡjuː.ə.ti/", - "translation": "двусмысленность, неопределенность", - "sentence": "Good API specifications avoid any semantic ___.", - "options": ["ambiguity", "consensus", "compromise", "versatility"], - "explanation": "Ambiguity (двусмысленность) — наличие нескольких противоречивых трактовок.", - }, - { - "level": "B2", "term": "comprehensive", "pos": "adjective", "phonetic": "/ˌkɒm.prɪˈhen.sɪv/", - "translation": "всесторонний, исчерпывающий", - "sentence": "The documentation provides a ___ guide to all SDK methods.", - "options": ["comprehensive", "reluctant", "arbitrary", "preliminary"], - "explanation": "Comprehensive (исчерпывающий) — охватывающий предмет целиком и во всех деталях.", - }, - { - "level": "B2", "term": "profound", "pos": "adjective", "phonetic": "/prəˈfaʊnd/", - "translation": "глубокий, фундаментальный", - "sentence": "The discovery of antibiotics had a ___ impact on human longevity.", - "options": ["profound", "reluctant", "arbitrary", "plausible"], - "explanation": "Profound (глубокий) — оказывающий огромное и фундаментальное влияние.", - }, - { - "level": "B2", "term": "contradictory", "pos": "adjective", "phonetic": "/ˌkɒn.trəˈdɪk.tər.i/", - "translation": "противоречивый", - "sentence": "The witness gave two completely ___ accounts of what occurred.", - "options": ["contradictory", "versatile", "preliminary", "resilient"], - "explanation": "Contradictory (противоречивый) — взаимоисключающий.", - }, - { - "level": "B2", "term": "enhance", "pos": "verb", "phonetic": "/ɪnˈhɑːns/", - "translation": "усиливать, повышать качество", - "sentence": "Adding indexes to foreign keys will significantly ___ query speed.", - "options": ["enhance", "diminish", "terminate", "undermine"], - "explanation": "Enhance (усиливать) — увеличивать качество, силу или ценность.", - }, - { - "level": "B2", "term": "facilitate", "pos": "verb", "phonetic": "/fəˈsɪl.ɪ.teɪt/", - "translation": "облегчать, способствовать", - "sentence": "Clean APIs ___ integration with third-party mobile applications.", - "options": ["facilitate", "undermine", "fluctuate", "terminate"], - "explanation": "Facilitate (способствовать) — делать процесс проще и быстрее.", - }, - { - "level": "B2", "term": "advocate", "pos": "verb", "phonetic": "/ˈæd.və.keɪt/", - "translation": "выступать в защиту, отстаивать", - "sentence": "Senior developers strongly ___ for automated testing pipelines.", - "options": ["advocate", "terminate", "undermine", "fluctuate"], - "explanation": "Advocate (отстаивать) — публично поддерживать идею или принцип.", - }, - { - "level": "B2", "term": "diminish", "pos": "verb", "phonetic": "/dɪˈmɪn.ɪʃ/", - "translation": "уменьшаться, ослабевать", - "sentence": "Regular backups help to ___ the risks of sudden data loss.", - "options": ["diminish", "enhance", "facilitate", "advocate"], - "explanation": "Diminish (уменьшать) — сокращать величину, масштаб или силу.", - }, - { - "level": "B2", "term": "feasible", "pos": "adjective", "phonetic": "/ˈfiː.zə.bəl/", - "translation": "осуществимый, реальный", - "sentence": "Completing this migration in one sprint is technically ___.", - "options": ["feasible", "reluctant", "arbitrary", "ambiguous"], - "explanation": "Feasible (осуществимый) — вполне выполнимый при имеющихся ресурсах.", - }, - { - "level": "B2", "term": "substantial", "pos": "adjective", "phonetic": "/səbˈstæn.ʃəl/", - "translation": "существенный, значительный", - "sentence": "We noticed a ___ reduction in server memory usage after tuning.", - "options": ["substantial", "preliminary", "reluctant", "arbitrary"], - "explanation": "Substantial (значительный) — весомый по объему или значению.", - }, - { - "level": "B2", "term": "subsequent", "pos": "adjective", "phonetic": "/ˈsʌb.sɪ.kwənt/", - "translation": "последующий", - "sentence": "The initial build broke, but all ___ builds passed cleanly.", - "options": ["subsequent", "reluctant", "arbitrary", "versatile"], - "explanation": "Subsequent (последующий) — происходящий после чего-либо.", - }, - { - "level": "B2", "term": "perceive", "pos": "verb", "phonetic": "/pəˈsiːv/", - "translation": "воспринимать, осознавать", - "sentence": "Different users ___ software latency in very distinct ways.", - "options": ["perceive", "allocate", "terminate", "undermine"], - "explanation": "Perceive (воспринимать) — осознавать через органы чувств или разум.", - }, - { - "level": "B2", "term": "convey", "pos": "verb", "phonetic": "/kənˈveɪ/", - "translation": "передавать, выражать (мысль)", - "sentence": "Clear charts can ___ complex statistical insights at a glance.", - "options": ["convey", "allocate", "terminate", "fluctuate"], - "explanation": "Convey (передавать) — делать мысль или значение понятными другим.", - }, - { - "level": "B2", "term": "crucial", "pos": "adjective", "phonetic": "/ˈkruː.ʃəl/", - "translation": "решающий, критически важный", - "sentence": "Code reviews are ___ for maintaining high quality in shared repos.", - "options": ["crucial", "arbitrary", "reluctant", "plausible"], - "explanation": "Crucial (критически важный) — определяющий успех или провал.", - }, - { - "level": "B2", "term": "deduce", "pos": "verb", "phonetic": "/dɪˈdʒuːs/", - "translation": "делать логический вывод, выводить", - "sentence": "From the error stack trace, we can easily ___ the exact root cause.", - "options": ["deduce", "allocate", "undermine", "fluctuate"], - "explanation": "Deduce (делать вывод) — приходить к умозаключению на основе фактов.", - }, - { - "level": "B2", "term": "discrete", "pos": "adjective", "phonetic": "/dɪˈskriːt/", - "translation": "дискретный, раздельный, обособленный", - "sentence": "The protocol breaks streaming data into small ___ chunks.", - "options": ["discrete", "reluctant", "arbitrary", "plausible"], - "explanation": "Discrete (дискретный) — состоящий из отдельных четких единиц.", - }, - { - "level": "B2", "term": "explicit", "pos": "adjective", "phonetic": "/ɪkˈsplɪs.ɪt/", - "translation": "явный, четко выраженный", - "sentence": "The configuration provides ___ timeout limits for network calls.", - "options": ["explicit", "ambiguous", "reluctant", "arbitrary"], - "explanation": "Explicit (явный, точный) — сформулированный прямо и без двусмысленности.", - }, - { - "level": "B2", "term": "fundamental", "pos": "adjective", "phonetic": "/ˌfʌn.dəˈmen.təl/", - "translation": "фундаментальный, основополагающий", - "sentence": "Understanding pointers is a ___ concept in systems programming.", - "options": ["fundamental", "arbitrary", "reluctant", "preliminary"], - "explanation": "Fundamental (основополагающий) — служащий базисом для всего остального.", - }, - { - "level": "B2", "term": "hierarchical", "pos": "adjective", "phonetic": "/ˌhaɪəˈrɑː.kɪ.kəl/", - "translation": "иерархический", - "sentence": "Filesystems organize documents in a strict ___ folder tree.", - "options": ["hierarchical", "arbitrary", "reluctant", "plausible"], - "explanation": "Hierarchical (иерархический) — построенный по принципу соподчинения уровней.", - }, - { - "level": "B2", "term": "implicit", "pos": "adjective", "phonetic": "/ɪmˈplɪs.ɪt/", - "translation": "неявный, подразумеваемый", - "sentence": "There is an ___ trust assumption between these internal services.", - "options": ["implicit", "explicit", "arbitrary", "versatile"], - "explanation": "Implicit (неявный, подразумеваемый) — не выраженный прямо, но очевидный по смыслу.", - }, - { - "level": "B2", "term": "inherent", "pos": "adjective", "phonetic": "/ɪnˈher.ənt/", - "translation": "присущий, неотъемлемый", - "sentence": "Network latency is an ___ property of distributed cloud systems.", - "options": ["inherent", "preliminary", "reluctant", "arbitrary"], - "explanation": "Inherent (присущий) — составляющий неотъемлемую природную черту объекта.", - }, - { - "level": "B2", "term": "integrate", "pos": "verb", "phonetic": "/ˈɪn.tɪ.ɡreɪt/", - "translation": "интегрировать, объединять", - "sentence": "We want to ___ the payment gateway seamlessly into the checkout.", - "options": ["integrate", "undermine", "terminate", "fluctuate"], - "explanation": "Integrate (интегрировать) — соединять части в единое целое.", - }, - { - "level": "B2", "term": "justify", "pos": "verb", "phonetic": "/ˈdʒʌs.tɪ.faɪ/", - "translation": "оправдывать, обосновывать", - "sentence": "You should bring performance metrics to ___ the rewrite.", - "options": ["justify", "undermine", "terminate", "fluctuate"], - "explanation": "Justify (обосновывать) — приводить разумные доводы в защиту решения.", - }, - { - "level": "B2", "term": "preliminary", "pos": "adjective", "phonetic": "/prɪˈlɪm.ɪ.nər.i/", - "translation": "предварительный", - "sentence": "These are only the ___ benchmark results; full tests run tonight.", - "options": ["preliminary", "reluctant", "arbitrary", "versatile"], - "explanation": "Preliminary (предварительный) — предшествующий окончательному этапу.", - }, - { - "level": "B2", "term": "random", "pos": "adjective", "phonetic": "/ˈræn.dəm/", - "translation": "случайный, произвольный", - "sentence": "The program selects test samples using a uniform ___ distribution.", - "options": ["random", "reluctant", "plausible", "resilient"], - "explanation": "Random (случайный) — выбранный без закономерности или предвзятости.", - }, - { - "level": "B2", "term": "reluctant", "pos": "adjective", "phonetic": "/rɪˈlʌk.tənt/", - "translation": "неохотный, сомневающийся", - "sentence": "He was ___ to rewrite working code without clear justification.", - "options": ["reluctant", "resilient", "versatile", "plausible"], - "explanation": "Reluctant (неохотный) — делающий что-либо с неохотой или сомнением.", - }, - { - "level": "B2", "term": "simultaneous", "pos": "adjective", "phonetic": "/ˌsɪm.əlˈteɪ.ni.əs/", - "translation": "одновременный", - "sentence": "The database engine easily handles hundreds of ___ read queries.", - "options": ["simultaneous", "reluctant", "arbitrary", "preliminary"], - "explanation": "Simultaneous (одновременный) — происходящий в одно и то же мгновение.", - }, - { - "level": "B2", "term": "undermine", "pos": "verb", "phonetic": "/ˌʌn.dəˈmaɪn/", - "translation": "подрывать, ослаблять", - "sentence": "Skipping validation steps will inevitably ___ system reliability.", - "options": ["undermine", "facilitate", "enhance", "advocate"], - "explanation": "Undermine (подрывать) — постепенно разрушать или ослаблять основы.", - }, - { - "level": "B2", "term": "accommodate", "pos": "verb", "phonetic": "/əˈkɒm.ə.deɪt/", - "translation": "вмещать, приспосабливать", - "sentence": "The new server cluster can easily ___ millions of daily visitors.", - "options": ["accommodate", "undermine", "terminate", "fluctuate"], - "explanation": "Accommodate (вмещать) — иметь достаточно места или ресурсов для кого-либо.", - }, - { - "level": "B2", "term": "allocate", "pos": "verb", "phonetic": "/ˈæl.ə.keɪt/", - "translation": "выделять (ресурсы, память)", - "sentence": "We need to ___ sufficient RAM for the in-memory cache.", - "options": ["allocate", "undermine", "terminate", "fluctuate"], - "explanation": "Allocate (выделять) — распределять или закреплять ресурсы под задачу.", - }, - { - "level": "B2", "term": "arbitrary", "pos": "adjective", "phonetic": "/ˈɑː.bɪ.trər.i/", - "translation": "произвольный, случайный (без четкого правила)", - "sentence": "Do not pick an ___ timeout value; measure actual latencies.", - "options": ["arbitrary", "resilient", "coherent", "versatile"], - "explanation": "Arbitrary (произвольный) — основанный на случайном выборе, а не на правиле.", - }, - { - "level": "B2", "term": "consensus", "pos": "noun", "phonetic": "/kənˈsen.səs/", - "translation": "консенсус, общее согласие", - "sentence": "The architecture committee finally reached a general ___.", - "options": ["consensus", "ambiguity", "contradiction", "compromise"], - "explanation": "Consensus (консенсус) — общее единогласие мнений всех сторон.", - }, - { - "level": "B2", "term": "fluctuate", "pos": "verb", "phonetic": "/ˈflʌk.tʃu.eɪt/", - "translation": "колебаться, меняться", - "sentence": "Internet speeds can ___ depending on peak network hours.", - "options": ["fluctuate", "undermine", "terminate", "advocate"], - "explanation": "Fluctuate (колебаться) — непрерывно изменяться вверх и вниз.", - }, - { - "level": "B2", "term": "plausible", "pos": "adjective", "phonetic": "/ˈplɔː.zə.bəl/", - "translation": "правдоподобный, вероятный", - "sentence": "His explanation for the memory leak sounded completely ___.", - "options": ["plausible", "reluctant", "arbitrary", "preliminary"], - "explanation": "Plausible (правдоподобный) — заслуживающий доверия, вероятный.", - }, - { - "level": "B2", "term": "deteriorate", "pos": "verb", "phonetic": "/dɪˈtɪə.ri.ə.reɪt/", - "translation": "ухудшаться", - "sentence": "Without prompt maintenance, old bridges rapidly ___.", - "options": ["deteriorate", "enhance", "facilitate", "integrate"], - "explanation": "Deteriorate (ухудшаться) — становиться хуже по качеству или состоянию.", - }, - { - "level": "B2", "term": "discrepancy", "pos": "noun", "phonetic": "/dɪˈskrep.ən.si/", - "translation": "расхождение, несоответствие", - "sentence": "The audit revealed an unexplained ___ in the quarterly ledgers.", - "options": ["discrepancy", "consensus", "compromise", "ambiguity"], - "explanation": "Discrepancy (несоответствие) — различие между данными, которые должны совпадать.", - }, - { - "level": "B2", "term": "eligible", "pos": "adjective", "phonetic": "/ˈel.ɪ.dʒə.bəl/", - "translation": "имеющий право, подходящий", - "sentence": "Only full-time students are ___ to apply for the grant.", - "options": ["eligible", "reluctant", "arbitrary", "plausible"], - "explanation": "Eligible (имеющий право) — отвечающий установленным критериям для участия.", - }, - { - "level": "B2", "term": "lucrative", "pos": "adjective", "phonetic": "/ˈluː.krə.tɪv/", - "translation": "прибыльный, доходный", - "sentence": "The entrepreneur signed a remarkably ___ contract overseas.", - "options": ["lucrative", "profound", "vulnerable", "preliminary"], - "explanation": "Lucrative (прибыльный) — приносящий большую финансовую выгоду.", - }, - { - "level": "B2", "term": "meticulous", "pos": "adjective", "phonetic": "/məˈtɪk.jə.ləs/", - "translation": "дотошный, скрупулезный", - "sentence": "The researcher kept ___ notes during every phase of the trial.", - "options": ["meticulous", "random", "arbitrary", "contradictory"], - "explanation": "Meticulous (скрупулезный) — проявляющий исключительное внимание к каждой детали.", - }, - { - "level": "B2", "term": "novel", "pos": "adjective", "phonetic": "/ˈnɒv.əl/", - "translation": "новаторский, оригинальный", - "sentence": "The scientists proposed a ___ approach to carbon sequestration.", - "options": ["novel", "coherent", "inevitable", "resilient"], - "explanation": "Novel (новаторский) — принципиально новый, ранее не применявшийся.", - }, - { - "level": "B2", "term": "relentless", "pos": "adjective", "phonetic": "/rɪˈlent.ləs/", - "translation": "неумолимый, непрекращающийся", - "sentence": "Success required years of ___ discipline and daily focus.", - "options": ["relentless", "reluctant", "arbitrary", "preliminary"], - "explanation": "Relentless (непрекращающийся) — продолжающийся с неослабевающей силой.", - }, - { - "level": "B2", "term": "scrutinize", "pos": "verb", "phonetic": "/ˈskruː.tɪ.naɪz/", - "translation": "тщательно исследовать, изучать", - "sentence": "Regulators will closely ___ the proposed merger of both banks.", - "options": ["scrutinize", "diminish", "undermine", "fluctuate"], - "explanation": "Scrutinize (тщательно исследовать) — подвергать глубокому пристальному анализу.", - }, - { - "level": "B2", "term": "subtle", "pos": "adjective", "phonetic": "/ˈsʌt.əl/", - "translation": "тонкий, едва уловимый", - "sentence": "There is a ___ nuance between these two grammatical forms.", - "options": ["subtle", "substantial", "fundamental", "explicit"], - "explanation": "Subtle (тонкий, неуловимый) — едва заметный, требующий чуткости для восприятия.", - }, - { - "level": "B2", "term": "tangible", "pos": "adjective", "phonetic": "/ˈtæn.dʒə.bəl/", - "translation": "осязаемый, реальный", - "sentence": "The new training program yielded ___ improvements in morale.", - "options": ["tangible", "ambiguous", "arbitrary", "hierarchical"], - "explanation": "Tangible (осязаемый) — конкретный, явный, доступный для непосредственной оценки.", - }, - { - "level": "B2", "term": "ubiquitous", "pos": "adjective", "phonetic": "/juːˈbɪk.wɪ.təs/", - "translation": "вездесущий, повсеместный", - "sentence": "Smartphones have become ___ in modern urban society.", - "options": ["ubiquitous", "discrete", "reluctant", "preliminary"], - "explanation": "Ubiquitous (вездесущий) — встречающийся повсюду одновременно.", - }, - { - "level": "B2", "term": "unprecedented", "pos": "adjective", "phonetic": "/ʌnˈpres.ɪ.den.tɪd/", - "translation": "беспрецедентный", - "sentence": "The pandemic caused an ___ shock to global supply chains.", - "options": ["unprecedented", "coherent", "contradictory", "plausible"], - "explanation": "Unprecedented (беспрецедентный) — не имевший аналогов в прошлом.", - }, - { - "level": "B2", "term": "viable", "pos": "adjective", "phonetic": "/ˈvaɪ.ə.bəl/", - "translation": "жизнеспособный", - "sentence": "Solar power has become a commercially ___ source of energy.", - "options": ["viable", "arbitrary", "reluctant", "inevitable"], - "explanation": "Viable (жизнеспособный) — способный успешно функционировать и развиваться.", - }, - { - "level": "B2", "term": "withstand", "pos": "verb", "phonetic": "/wɪðˈstænd/", - "translation": "выдерживать, противостоять", - "sentence": "The newly engineered structure can ___ severe earthquakes.", - "options": ["withstand", "diminish", "undermine", "deteriorate"], - "explanation": "Withstand (выдерживать) — стойко сопротивляться разрушительному воздействию.", - }, - { - "level": "B2", "term": "yield", "pos": "verb", "phonetic": "/jiːld/", - "translation": "приносить (результат, доход)", - "sentence": "Long-term compounding investments ___ significant dividends.", - "options": ["yield", "undermine", "deduce", "scrutinize"], - "explanation": "Yield (приносить плоды) — давать прибыль, урожай или практический результат.", - }, - { - "level": "B2", "term": "zealous", "pos": "adjective", "phonetic": "/ˈzel.əs/", - "translation": "ревностный, ярый", - "sentence": "The attorney was a ___ defender of fundamental civil liberties.", - "options": ["zealous", "complacent", "reluctant", "arbitrary"], - "explanation": "Zealous (ревностный) — проявляющий горячую увлеченность и преданность делу.", - }, - { - "level": "B2", "term": "ambiguous", "pos": "adjective", "phonetic": "/æmˈbɪɡ.ju.əs/", - "translation": "двусмысленный, неясный", - "sentence": "The legal wording of the agreement was intentionally ___.", - "options": ["ambiguous", "explicit", "coherent", "tangible"], - "explanation": "Ambiguous (двусмысленный) — допускающий двоякое или нечеткое толкование.", - }, - { - "level": "B2", "term": "benevolent", "pos": "adjective", "phonetic": "/bəˈnev.əl.ənt/", - "translation": "благожелательный, великодушный", - "sentence": "The charity relies on gifts from ___ private donors.", - "options": ["benevolent", "relentless", "arbitrary", "hierarchical"], - "explanation": "Benevolent (благожелательный) — настроенный доброжелательно, стремящийся делать добро.", - }, - { - "level": "B2", "term": "complacent", "pos": "adjective", "phonetic": "/kəmˈpleɪ.sənt/", - "translation": "самодовольный, беспечный", - "sentence": "After consecutive victories, the team grew dangerously ___.", - "options": ["complacent", "meticulous", "diligent", "resilient"], - "explanation": "Complacent (самодовольный) — чрезмерно удовлетворенный собой и потерявший бдительность.", - }, - { - "level": "B2", "term": "diligent", "pos": "adjective", "phonetic": "/ˈdɪl.ɪ.dʒənt/", - "translation": "прилежный, старательный", - "sentence": "Her ___ pursuit of scientific inquiry earned international acclaim.", - "options": ["diligent", "arbitrary", "reluctant", "subsequent"], - "explanation": "Diligent (прилежный) — усердно и добросовестно выполняющий работу.", - }, - { - "level": "B2", "term": "ephemeral", "pos": "adjective", "phonetic": "/ɪˈfem.ər.əl/", - "translation": "мимолетный, недолговечный", - "sentence": "Social media fame is often ___ and vanishes overnight.", - "options": ["ephemeral", "substantial", "fundamental", "comprehensive"], - "explanation": "Ephemeral (мимолетный) — длящийся лишь краткий миг.", - }, - { - "level": "B2", "term": "formidable", "pos": "adjective", "phonetic": "/ˈfɔː.mɪ.də.bəl/", - "translation": "грозный, внушительный", - "sentence": "The defending chess champion represents a ___ adversary.", - "options": ["formidable", "arbitrary", "discrete", "vulnerable"], - "explanation": "Formidable (грозный, внушительный) — внушающий уважение или страх своей мощью.", - }, - { - "level": "B2", "term": "gregarious", "pos": "adjective", "phonetic": "/ɡrɪˈɡeə.ri.əs/", - "translation": "общительный, стадный", - "sentence": "Dolphins are highly social and ___ marine mammals.", - "options": ["gregarious", "reluctant", "arbitrary", "preliminary"], - "explanation": "Gregarious (общительный) — любящий находиться среди сородичей или людей.", - }, - { - "level": "B2", "term": "homogeneous", "pos": "adjective", "phonetic": "/ˌhɒm.əˈdʒiː.ni.əs/", - "translation": "однородный, гомогенный", - "sentence": "The modern metropolis is far from a culturally ___ enclave.", - "options": ["homogeneous", "contradictory", "arbitrary", "ubiquitous"], - "explanation": "Homogeneous (однородный) — состоящий из одинаковых по составу частей.", - }, - { - "level": "B2", "term": "innovative", "pos": "adjective", "phonetic": "/ˈɪn.ə.və.tɪv/", - "translation": "новаторский, передовой", - "sentence": "The startup patented an ___ algorithm for real-time translation.", - "options": ["innovative", "arbitrary", "complacent", "plausible"], - "explanation": "Innovative (новаторский) — использующий передовые оригинальные методы.", - }, -] +def get_curated_cefr_questions(): + global _CURATED_CEFR_QUESTIONS_CACHE + if _CURATED_CEFR_QUESTIONS_CACHE is None: + seeds_file = config.BASE_DIR / 'data' / 'seeds' / 'cefr_questions.json' + if seeds_file.is_file(): + try: + with open(seeds_file, 'r', encoding='utf-8') as f: + _CURATED_CEFR_QUESTIONS_CACHE = json.load(f) + except Exception: + _CURATED_CEFR_QUESTIONS_CACHE = [] + else: + _CURATED_CEFR_QUESTIONS_CACHE = [] + return _CURATED_CEFR_QUESTIONS_CACHE + +class _LazyQuestionsList(list): + def __iter__(self): + return iter(get_curated_cefr_questions()) + def __len__(self): + return len(get_curated_cefr_questions()) + def __getitem__(self, idx): + return get_curated_cefr_questions()[idx] + +CURATED_CEFR_QUESTIONS = _LazyQuestionsList() def seed_cefr_questions(conn: sqlite3.Connection) -> int: diff --git a/app/grammar.py b/app/grammar.py index 75e895b..fce3081 100644 --- a/app/grammar.py +++ b/app/grammar.py @@ -17,923 +17,35 @@ import random from typing import Dict, Any, List, Optional from datetime import datetime -# Curated High-Yield Murphy Units (15 Units covering A1-B2 core grammar) -CURATED_MURPHY_UNITS: List[Dict[str, Any]] = [ - # ------------------------------------------------------------------------- - # Unit 1: Present Continuous (I am doing) - # ------------------------------------------------------------------------- - { - "unit_num": 1, - "level": "A1-A2", - "category": "Present Tenses", - "title": "Present Continuous (I am doing)", - "subtitle": "Действие в процессе прямо сейчас или временная ситуация", - "golden_formula": "S + am / is / are + V-ing\n(I am working / He is sleeping / They are playing)", - "contrast_explanation": [ - { - "situation_a": "Действие происходит в момент речи (Now / at the moment)", - "example_a": "Please be quiet. I am trying to concentrate.", - "trans_a": "Пожалуйста, потише. Я пытаюсь сосредоточиться (прямо сейчас).", - "situation_b": "Временная ситуация в текущий период жизни (Around now / temporarily)", - "example_b": "She is studying computer science at university this year.", - "trans_b": "В этом году она изучает информатику в университете (временный процесс).", - "key_difference": "Present Continuous всегда показывает незавершённое действие — мы находимся внутри процесса." - } - ], - "journaling_prompt": "Запишите в тетрадь золотую формулу маркером. Напишите от руки 2-3 предложения о том, что происходит прямо сейчас вокруг вас или какой временный проект вы делаете на этой неделе (например: 'I am reading an English book right now').", - "exercises": [ - { - "sentence": "Listen to those birds! They ___ so beautifully.", - "target": "are singing", - "clue": "поют (прямо сейчас)", - "options": ["are singing", "sing", "is singing", "sang"], - "explanation": "Слово-маркер 'Listen!' указывает, что действие происходит прямо сейчас, подлежащее 'They' требует форму 'are singing'." - }, - { - "sentence": "Why ___ you wearing a heavy coat in July?", - "target": "are", - "clue": "почему ты одет (в этот момент)", - "options": ["are", "do", "have", "did"], - "explanation": "Перед формой глагола с окончанием -ing ('wearing') в вопросе Present Continuous ставится вспомогательный глагол 'are'." - }, - { - "sentence": "The water is boiling, so please ___ the stove.", - "target": "turn off", - "clue": "выключи (действие-команда)", - "options": ["turn off", "turning off", "is turning", "turned"], - "explanation": "Вода кипит прямо сейчас (is boiling), поэтому обращение-просьба к собеседнику строится в повелительном наклонении: 'turn off'." - }, - { - "sentence": "Look! The bus is coming, we ___ run to catch it.", - "target": "must", - "clue": "должны (нужно поторопиться)", - "options": ["must", "are", "do", "have"], - "explanation": "'The bus is coming' — автобус подъезжает прямо сейчас, модальный глагол 'must' выражает необходимость действовать немедленно." - }, - { - "sentence": "I ___ for a software company while my friend looks for a job.", - "target": "am currently working", - "clue": "в настоящее время работаю (временная ситуация)", - "options": ["am currently working", "works", "have worked", "worked"], - "explanation": "Для временного текущего периода занятости используется форма Present Continuous: 'am currently working'." - } - ] - }, - # ------------------------------------------------------------------------- - # Unit 2: Present Simple (I do) - # ------------------------------------------------------------------------- - { - "unit_num": 2, - "level": "A1-A2", - "category": "Present Tenses", - "title": "Present Simple (I do)", - "subtitle": "Регулярные привычки, факты, законы природы и расписания", - "golden_formula": "S + V1 (he/she/it + V-s/es)\n(I work / She works / Do you work? / He does not work)", - "contrast_explanation": [ - { - "situation_a": "Регулярное повторяющееся действие или привычка (Habit / Routine)", - "example_a": "I drink a cup of black coffee every morning at 8:00.", - "trans_a": "Я пью чашку чёрного кофе каждое утро в 8:00.", - "situation_b": "Непреложный факт или закон природы (General truth / Fact)", - "example_b": "The Earth moves around the Sun.", - "trans_b": "Земля вращается вокруг Солнца (постоянный факт).", - "key_difference": "Present Simple говорит о том, что верно вообще, регулярно или по расписанию, а не только в данную секунду." - } - ], - "journaling_prompt": "Запишите в тетрадь формулу с окончанием -s для he/she/it. Напишите от руки 2-3 ваших реальных привычки с маркерами частоты: always, usually, every day (например: 'I usually drink green tea after lunch').", - "exercises": [ - { - "sentence": "My brother ___ in a bank in the city center.", - "target": "works", - "clue": "работает (постоянно, факт)", - "options": ["works", "work", "is working", "working"], - "explanation": "Подлежащее 'My brother' (он) требует глагола с окончанием -s в Present Simple: 'works'." - }, - { - "sentence": "How often ___ you go to the gym during the week?", - "target": "do", - "clue": "вспомогательный глагол вопроса", - "options": ["do", "does", "are", "have"], - "explanation": "С местоимением 'you' вопрос в Present Simple образуется с помощью вспомогательного глагола 'do'." - }, - { - "sentence": "Water ___ at zero degrees Celsius.", - "target": "freezes", - "clue": "замерзает (закон природы)", - "options": ["freezes", "freeze", "is freezing", "froze"], - "explanation": "Физические факты и свойства веществ выражаются в Present Simple: неисчисляемое 'Water' требует 'freezes'." - }, - { - "sentence": "She ___ meat because she is a strict vegetarian.", - "target": "does not eat", - "clue": "не ест (постоянная привычка)", - "options": ["does not eat", "do not eat", "is not eating", "not eats"], - "explanation": "Отрицание для третьего лица единственного числа (she) образуется через 'does not' + начальная форма глагола 'eat'." - }, - { - "sentence": "The train to London ___ at 9:30 every morning.", - "target": "departs", - "clue": "отправляется (по расписанию)", - "options": ["departs", "departing", "is departing", "depart"], - "explanation": "Общественный транспорт и расписания в английском языке всегда передаются через Present Simple: 'departs'." - } - ] - }, +from pathlib import Path +from app import config - # ------------------------------------------------------------------------- - # Unit 3: Present Continuous vs Present Simple (I am doing vs I do) - # ------------------------------------------------------------------------- - { - "unit_num": 3, - "level": "A1-A2", - "category": "Present Tenses", - "title": "Present Continuous vs Present Simple (I am doing vs I do)", - "subtitle": "Главный контраст: процесс сейчас vs факт вообще + глаголы состояния (Stative Verbs)", - "golden_formula": "NOW: am/is/are + V-ing | ALWAYS/HABIT: V1(s)\nStative Verbs (NO -ing): know, like, want, understand, remember, believe", - "contrast_explanation": [ - { - "situation_a": "I am doing (Прямо сейчас / процесс в развитии)", - "example_a": "Listen! What language are those tourists speaking?", - "trans_a": "Послушай! На каком языке говорят эти туристы (сейчас)?", - "situation_b": "I do (Вообще / способность / факт)", - "example_b": "My colleague speaks three foreign languages fluently.", - "trans_b": "Мой коллега свободно говорит на трёх иностранных языках (вообще).", - "key_difference": "Глаголы чувств и мыслей (know, understand, want, believe, like) практически никогда не используются в форме -ing!" - } - ], - "journaling_prompt": "Запишите в тетрадь список глаголов состояния (Stative Verbs), которые нельзя ставить в -ing. Составьте от руки 2 контрастных предложения о себе (например: 'I live in Moscow, but this month I am staying with my parents').", - "exercises": [ - { - "sentence": "I ___ what you mean, could you explain it again?", - "target": "do not understand", - "clue": "не понимаю (глагол состояния understand)", - "options": ["do not understand", "am not understanding", "not understand", "did not understood"], - "explanation": "Глагол 'understand' является глаголом ментального состояния (stative verb) и не употребляется во времени Continuous." - }, - { - "sentence": "Look outside! It ___ heavily, take an umbrella.", - "target": "is raining", - "clue": "идёт дождь (прямо сейчас)", - "options": ["is raining", "rains", "rained", "rain"], - "explanation": "Призыв 'Look outside!' сигнализирует о действии, разворачивающемся на глазах прямо сейчас: 'is raining'." - }, - { - "sentence": "It seldom ___ in this dry desert region.", - "target": "rains", - "clue": "идёт дождь (редко, постоянное свойство)", - "options": ["rains", "is raining", "was raining", "rain"], - "explanation": "Наречие частотности 'seldom' (редко) описывает общее климатическое свойство местности $\rightarrow$ Present Simple: 'rains'." - }, - { - "sentence": "Do you ___ this beautiful song?", - "target": "know", - "clue": "знаешь (глагол состояния know)", - "options": ["know", "knowing", "are knowing", "knew"], - "explanation": "Глагол 'know' — стативный глагол, вопрос строится в Present Simple: 'Do you know?'" - }, - { - "sentence": "Normally I drink tea, but today I ___ coffee.", - "target": "am drinking", - "clue": "пью (сегодня, исключение из привычки)", - "options": ["am drinking", "drink", "drinks", "drank"], - "explanation": "Контраст: 'Normally I drink' (привычка в Simple), но 'today I am drinking' (временное отклонение от нормы в Continuous)." - } - ] - }, +_CURATED_MURPHY_UNITS_CACHE = None - # ------------------------------------------------------------------------- - # Unit 4: Past Simple (I did) - # ------------------------------------------------------------------------- - { - "unit_num": 4, - "level": "A1-A2", - "category": "Past Tenses", - "title": "Past Simple (I did)", - "subtitle": "Завершённое действие в прошлом с точной привязкой ко времени", - "golden_formula": "S + V2 / V-ed | Did + S + V1? | S + did not + V1\n(yesterday, last night, two years ago, in 2021, when I was a child)", - "contrast_explanation": [ - { - "situation_a": "Действие полностью завершилось в прошлом (Finished past time)", - "example_a": "We arrived in London yesterday afternoon.", - "trans_a": "Мы прибыли в Лондон вчера днём (период 'вчера' завершён).", - "situation_b": "Последовательность действий в прошлом (Story sequence)", - "example_b": "He woke up, brushed his teeth, and left the house.", - "trans_b": "Он проснулся, почистил зубы и вышел из дома (цепочка фактов).", - "key_difference": "Past Simple отвечает на вопрос 'Когда это произошло?' и разрывает связь с настоящим моментом." - } - ], - "journaling_prompt": "Нарисуйте в тетради линию времени со стрелкой в прошлое. Напишите от руки 3 реальных вещи, которые вы сделали вчера с точным временем или маркерами (например: 'Yesterday I finished my work at 7 PM and cooked dinner').", - "exercises": [ - { - "sentence": "Mozart ___ more than six hundred pieces of music.", - "target": "wrote", - "clue": "написал (исторический факт в прошлом)", - "options": ["wrote", "has written", "writes", "was writing"], - "explanation": "Моцарт жил в прошлом, период его жизни завершён $\rightarrow$ употребляется Past Simple: 'wrote'." - }, - { - "sentence": "Where ___ you go on your last summer vacation?", - "target": "did", - "clue": "вспомогательный глагол для прошедшего времени", - "options": ["did", "do", "were", "have"], - "explanation": "Вопрос о завершённом периоде в прошлом ('last summer') строится с помощью вспомогательного глагола 'did'." - }, - { - "sentence": "I ___ buy the phone because it was ridiculously expensive.", - "target": "did not", - "clue": "не (отрицание в прошедшем времени)", - "options": ["did not", "do not", "was not", "have not"], - "explanation": "Отрицание смыслового глагола 'buy' в Past Simple требует вспомогательного 'did not' ('didn't')." - }, - { - "sentence": "She ___ her keys in the office two days ago.", - "target": "lost", - "clue": "потеряла (неправильный глагол lose $\rightarrow$ lost)", - "options": ["lost", "losing", "has lost", "loses"], - "explanation": "Маркер завершённого времени 'two days ago' строго требует формы Past Simple: 'lost'." - }, - { - "sentence": "When the meeting ___, everyone went to have lunch.", - "target": "ended", - "clue": "закончилась (последовательность событий)", - "options": ["ended", "ends", "has ended", "is ending"], - "explanation": "Последовательность завершённых действий в прошлом передаётся в Past Simple: 'ended ... went'." - } - ] - }, +def get_curated_murphy_units(): + global _CURATED_MURPHY_UNITS_CACHE + if _CURATED_MURPHY_UNITS_CACHE is None: + seeds_file = config.BASE_DIR / 'data' / 'seeds' / 'grammar_units.json' + if seeds_file.is_file(): + try: + with open(seeds_file, 'r', encoding='utf-8') as f: + _CURATED_MURPHY_UNITS_CACHE = json.load(f) + except Exception: + _CURATED_MURPHY_UNITS_CACHE = [] + else: + _CURATED_MURPHY_UNITS_CACHE = [] + return _CURATED_MURPHY_UNITS_CACHE - # ------------------------------------------------------------------------- - # Unit 5: Past Continuous (I was doing) - # ------------------------------------------------------------------------- - { - "unit_num": 5, - "level": "A1-A2", - "category": "Past Tenses", - "title": "Past Continuous (I was doing)", - "subtitle": "Процесс в конкретный момент в прошлом или фоновое действие", - "golden_formula": "S + was / were + V-ing\n(At 4 PM yesterday I was driving home / They were sleeping)", - "contrast_explanation": [ - { - "situation_a": "Действие в процессе в конкретный момент времени в прошлом", - "example_a": "At 10:30 last night, I was watching a documentary.", - "trans_a": "В 10:30 вчера вечером я смотрел документальный фильм (был в процессе).", - "situation_b": "Фоновое действие, во время которого произошло короткое событие", - "example_b": "It was raining when we stepped outside.", - "trans_b": "Шёл дождь (фон в процессе), когда мы вышли на улицу (короткий факт).", - "key_difference": "Past Continuous показывает длительность и незавершённость действия в определённый момент прошлого." - } - ], - "journaling_prompt": "Запишите в тетрадь: 'was' для I/he/she/it, 'were' для you/we/they. Напишите от руки 2 предложения о том, чем именно вы занимались в 8 часов вечера вчера (например: 'At 8 PM yesterday I was walking my dog in the park').", - "exercises": [ - { - "sentence": "This time yesterday, we ___ over the Atlantic ocean.", - "target": "were flying", - "clue": "летели (были в процессе в этот момент)", - "options": ["were flying", "flew", "are flying", "have flown"], - "explanation": "'This time yesterday' указывает на точный момент в прошлом, когда действие находилось в развитии: 'were flying'." - }, - { - "sentence": "What ___ you doing when the fire alarm sounded?", - "target": "were", - "clue": "вспомогательный глагол для you в Past Continuous", - "options": ["were", "was", "did", "are"], - "explanation": "Для местоимения 'you' во времени Past Continuous используется вспомогательный глагол 'were'." - }, - { - "sentence": "He burned his hand while he ___ cooking dinner.", - "target": "was", - "clue": "был в процессе готовки", - "options": ["was", "is", "did", "were"], - "explanation": "Придаточное предложение времени с союзом 'while' описывает длительный процесс: 'while he was cooking'." - }, - { - "sentence": "The sun ___ brightly when I woke up this morning.", - "target": "was shining", - "clue": "светило (фон на момент пробуждения)", - "options": ["was shining", "shone", "has shone", "shines"], - "explanation": "Солнце уже светило (длительный фон), когда произошло единичное пробуждение: 'was shining'." - }, - { - "sentence": "They didn't hear the doorbell because they ___ to loud music.", - "target": "were listening", - "clue": "слушали (процесс, объясняющий причину)", - "options": ["were listening", "listened", "are listening", "listen"], - "explanation": "Они не услышали звонок, потому что в этот самый момент находились в процессе прослушивания: 'were listening'." - } - ] - }, +class _LazyUnitsList(list): + def __iter__(self): + return iter(get_curated_murphy_units()) + def __len__(self): + return len(get_curated_murphy_units()) + def __getitem__(self, idx): + return get_curated_murphy_units()[idx] - # ------------------------------------------------------------------------- - # Unit 6: Past Simple vs Past Continuous (I did vs I was doing) - # ------------------------------------------------------------------------- - { - "unit_num": 6, - "level": "A1-A2", - "category": "Past Tenses", - "title": "Past Simple vs Past Continuous (I did vs I was doing)", - "subtitle": "Короткий факт vs Длительный фон: пересечение двух событий", - "golden_formula": "Background (Long): was/were + V-ing\nInterruption (Short): V2 / V-ed\n(While I was walking, I met my friend)", - "contrast_explanation": [ - { - "situation_a": "Длительное фоновое действие прерывается коротким фактом", - "example_a": "I was taking a shower when the courier knocked on the door.", - "trans_a": "Я принимал душ (фон), когда курьер постучал в дверь (факт).", - "situation_b": "Два завершённых последовательных действия (Одно за другим)", - "example_b": "I heard the knock and opened the door immediately.", - "trans_b": "Я услышал стук и сразу открыл дверь (действие за действием).", - "key_difference": "Was doing = действие уже шло. Did = действие произошло, началось или закончилось." - } - ], - "journaling_prompt": "Запишите в тетрадь формулу: 'While + Past Continuous, Past Simple'. Напишите 2 ситуации из вашей жизни, когда одно прервало другое (например: 'While I was writing code, my laptop ran out of battery').", - "exercises": [ - { - "sentence": "While I was walking in the park, I ___ a rare bird.", - "target": "saw", - "clue": "увидел (короткое событие во время прогулки)", - "options": ["saw", "was seeing", "have seen", "see"], - "explanation": "Прогулка была длительным фоном (was walking), а наблюдение птицы — мгновенным событием в Past Simple: 'saw'." - }, - { - "sentence": "She ___ her leg while she was skiing in the Alps.", - "target": "broke", - "clue": "сломала (краткое прерывающее событие)", - "options": ["broke", "was breaking", "breaks", "has broken"], - "explanation": "Травма произошла одномоментно внутри процесса катания на лыжах: 'broke'." - }, - { - "sentence": "When I arrived at the cafe, my colleagues ___ for me.", - "target": "were waiting", - "clue": "ждали (уже находились в процессе ожидания)", - "options": ["were waiting", "waited", "have waited", "are waiting"], - "explanation": "В момент моего прихода коллеги уже сидели и ждали: фоновый процесс требует 'were waiting'." - }, - { - "sentence": "We ___ television when suddenly the power went out.", - "target": "were watching", - "clue": "смотрели (процесс перед отключением света)", - "options": ["were watching", "watched", "have watched", "watch"], - "explanation": "Смотрели телевизор (длительное действие), которое было прервано внезапным отключением: 'were watching'." - }, - { - "sentence": "He picked up the phone, ___ the number, and waited.", - "target": "dialed", - "clue": "набрал (цепочка последовательных действий)", - "options": ["dialed", "was dialing", "has dialed", "dials"], - "explanation": "Цепочка последовательных действий в прошлом передаётся через Past Simple: 'picked up, dialed, and waited'." - } - ] - }, - - # ------------------------------------------------------------------------- - # Unit 7: Present Perfect (I have done) - # ------------------------------------------------------------------------- - { - "unit_num": 7, - "level": "B1-B2", - "category": "Present Perfect", - "title": "Present Perfect (I have done)", - "subtitle": "Связь прошлого с настоящим: результат налицо, жизненный опыт и маркеры just / already / yet", - "golden_formula": "S + have / has + V3 (Past Participle)\nResult NOW / Life experience / just, already, yet, ever, never", - "contrast_explanation": [ - { - "situation_a": "Результат действия имеет прямое значение прямо сейчас (Result NOW)", - "example_a": "I have lost my key. (I don't have it now and can't get in)", - "trans_a": "Я потерял ключ (результат сейчас: ключа нет, не могу войти).", - "situation_b": "Жизненный опыт к настоящему моменту (Life experience: ever/never)", - "example_b": "Have you ever visited Japan?", - "trans_b": "Ты когда-нибудь в своей жизни бывал в Японии?", - "key_difference": "Present Perfect — это форма НАСТОЯЩЕГО времени о результатах прошлого. Если время названо (yesterday) — Present Perfect запрещён!" - } - ], - "journaling_prompt": "Запишите в тетрадь маркеры: just (только что), already (уже), yet (ещё нет в отрицаниях и вопросах). Напишите 2 вещи, которые вы УЖЕ сделали сегодня, и 1 вещь, которую ЕЩЁ НЕ сделали (например: 'I have already drunk coffee, but I have not had lunch yet').", - "exercises": [ - { - "sentence": "Would you like something to eat? — No thanks, I ___ lunch.", - "target": "have just had", - "clue": "только что пообедал (сыт прямо сейчас)", - "options": ["have just had", "just had", "had just", "am having just"], - "explanation": "Маркер 'just' (только что) указывает на свежий результат в настоящем: 'have just had'." - }, - { - "sentence": "Don't forget to pay the electric bill. — I have ___ paid it online.", - "target": "already", - "clue": "уже (действие сделано раньше ожидаемого)", - "options": ["already", "yet", "still", "ever"], - "explanation": "В утвердительных предложениях для значения 'уже сделано' ставится маркер 'already'." - }, - { - "sentence": "Has the postman delivered the morning letters ___?", - "target": "yet", - "clue": "уже / к этому моменту (в вопросах в конце)", - "options": ["yet", "already", "just", "never"], - "explanation": "В вопросительных предложениях для проверки свершения действия к данному моменту на конце ставится 'yet'." - }, - { - "sentence": "She has ___ tried sushi in her entire life.", - "target": "never", - "clue": "никогда (жизненный опыт)", - "options": ["never", "ever", "yet", "already"], - "explanation": "Для выражения отсутствия жизненного опыта в утвердительной грамматической конструкции используется 'never'." - }, - { - "sentence": "Look! Somebody ___ the window, cold air is coming in.", - "target": "has broken", - "clue": "разбил (результат виден прямо сейчас)", - "options": ["has broken", "broke", "was breaking", "breaks"], - "explanation": "Результат виден прямо сейчас (идёт холодный воздух), важно последствие, а не когда именно разбили $\rightarrow$ 'has broken'." - } - ] - }, - - # ------------------------------------------------------------------------- - # Unit 8: Present Perfect vs Past Simple (I have done vs I did) - # ------------------------------------------------------------------------- - { - "unit_num": 8, - "level": "B1-B2", - "category": "Present Perfect", - "title": "Present Perfect vs Past Simple (I have done vs I did)", - "subtitle": "Главная дилемма: результат в настоящем vs факт в завершённом времени", - "golden_formula": "PRESENT PERFECT: No exact finished time | Connection to NOW\nPAST SIMPLE: Exact finished time (yesterday, in 2018, when, at 5 PM)", - "contrast_explanation": [ - { - "situation_a": "Present Perfect (Период времени ещё НЕ закончился: today, this week)", - "example_a": "I have drunk two cups of tea this morning. (It is still morning)", - "trans_a": "Я выпил две чашки чая этим утром (утро ещё продолжается).", - "situation_b": "Past Simple (Период времени полностью завершён: yesterday, this morning - said at night)", - "example_b": "I drank two cups of tea this morning. (Said in the afternoon/evening)", - "trans_b": "Я выпил две чашки чая этим утром (сказано днём или вечером, утро прошло).", - "key_difference": "Если есть слова yesterday, last year, ago, in 1999, when I was... — ВСЕГДА используем Past Simple!" - } - ], - "journaling_prompt": "Разделите страницу тетради на две колонки: 'Present Perfect' и 'Past Simple'. Запишите контрастную пару: 1) факт из прошлого с точным годом, 2) факт с результатом на сейчас (например: 'I visited Italy in 2019' vs 'I have visited Italy twice').", - "exercises": [ - { - "sentence": "Did you know that Shakespeare ___ in 1616?", - "target": "died", - "clue": "умер (точная дата в завершённом прошлом)", - "options": ["died", "has died", "had died", "dies"], - "explanation": "Точная дата в прошлом ('in 1616') строго запрещает Present Perfect и требует Past Simple: 'died'." - }, - { - "sentence": "I ___ my phone! Can you call my number to find it?", - "target": "have lost", - "clue": "потерял (результат актуален сейчас: ищу телефон)", - "options": ["have lost", "lost", "was losing", "lose"], - "explanation": "Актуальный результат в настоящем: телефон нужен прямо сейчас, связь с моментом речи $\rightarrow$ 'have lost'." - }, - { - "sentence": "I ___ my phone yesterday, but fortunately found it in my bag.", - "target": "lost", - "clue": "потерял (вчера, период завершён)", - "options": ["lost", "have lost", "was lost", "losing"], - "explanation": "Слово-маркер 'yesterday' отсекает связь с настоящим и требует Past Simple: 'lost'." - }, - { - "sentence": "___ you ever eaten fresh oysters?", - "target": "Have", - "clue": "вопрос о жизненном опыте к текущему моменту", - "options": ["Have", "Did", "Were", "Do"], - "explanation": "Вопрос о жизненном опыте к настоящему моменту ('ever') строится в Present Perfect: 'Have you ever eaten...?'" - }, - { - "sentence": "When ___ you buy that stylish leather jacket?", - "target": "did", - "clue": "вопрос со словом When всегда требует Past Simple", - "options": ["did", "have", "do", "were"], - "explanation": "Вопрос со словом 'When' всегда нацелен на конкретный момент в прошлом и строится ТОЛЬКО в Past Simple: 'When did you buy...?'" - } - ] - }, - - # ------------------------------------------------------------------------- - # Unit 9: Used to (I used to do) - # ------------------------------------------------------------------------- - { - "unit_num": 9, - "level": "A1-A2", - "category": "Past Tenses", - "title": "Used to (I used to do)", - "subtitle": "Раньше делал регулярно, но сейчас больше так не делаю", - "golden_formula": "S + used to + V1\nNegative: did not use to + V1 | Question: Did you use to + V1?\n(I used to play tennis a lot, but now I prefer swimming)", - "contrast_explanation": [ - { - "situation_a": "Регулярная привычка в прошлом, которой больше нет (Past habit that stopped)", - "example_a": "I used to smoke twenty cigarettes a day, but I quit five years ago.", - "trans_a": "Я раньше выкуривал по 20 сигарет в день, но бросил 5 лет назад.", - "situation_b": "Состояние или факт в прошлом, изменившийся сейчас (Past state that changed)", - "example_b": "There used to be a movie theater here, but it closed down.", - "trans_b": "Здесь раньше был кинотеатр, но он закрылся.", - "key_difference": "Used to существует ТОЛЬКО в прошедшем времени. Для настоящих привычек используется Present Simple с usually." - } - ], - "journaling_prompt": "Запишите формулу в тетрадь. Напишите 2 предложения о том, чем вы регулярно занимались в детстве или юности, но больше не занимаетесь (например: 'I used to play video games all night, but now I sleep early').", - "exercises": [ - { - "sentence": "She ___ long curly hair when she was a teenager.", - "target": "used to have", - "clue": "раньше имела (сейчас причёска другая)", - "options": ["used to have", "uses to have", "is used to have", "use to have"], - "explanation": "Конструкция 'used to have' выражает постоянное состояние в прошлом, которое изменилось в настоящем." - }, - { - "sentence": "We ___ live in a small village before moving to the capital.", - "target": "used to", - "clue": "раньше жили (прошлое состояние)", - "options": ["used to", "use to", "are used to", "used"], - "explanation": "Для описания прежнего места жительства, которое сменилось, используется 'used to'." - }, - { - "sentence": "Did you ___ play the piano when you were younger?", - "target": "use to", - "clue": "форма инфинитива после вспомогательного did", - "options": ["use to", "used to", "using to", "used"], - "explanation": "После вспомогательного глагола 'Did' в вопросительном предложении пишется форма без окончания -d: 'Did you use to...?'" - }, - { - "sentence": "I didn't ___ like spicy Indian food, but now I love it.", - "target": "use to", - "clue": "раньше не любил (отрицание после didn't)", - "options": ["use to", "used to", "uses to", "using"], - "explanation": "После 'didn't' используется начальная форма 'use to': 'didn't use to like'." - }, - { - "sentence": "He ___ play football every Sunday, but now he is too busy.", - "target": "used to", - "clue": "раньше играл (привычка прекратилась)", - "options": ["used to", "uses to", "was used to", "is used to"], - "explanation": "Регулярная прошлая привычка, уступившая место занятости в настоящем $\rightarrow$ 'used to'." - } - ] - }, - - # ------------------------------------------------------------------------- - # Unit 10: Future Forms (Will vs Going to vs Present Continuous) - # ------------------------------------------------------------------------- - { - "unit_num": 10, - "level": "B1-B2", - "category": "Future", - "title": "Future: Will vs Going to vs Present Continuous", - "subtitle": "Спонтанное решение (Will) vs Намерение (Going to) vs 100% договоренность (Present Continuous)", - "golden_formula": "WILL: Spontaneous decision NOW ('I'll help you')\nGOING TO: Prior intention / Evidence ('I am going to buy a car')\nPRESENT CONT: Fixed arrangement with date/people ('I am flying to Rome on Friday')", - "contrast_explanation": [ - { - "situation_a": "Will (Спонтанное решение в момент речи / обещание / прогноз)", - "example_a": "The phone is ringing. — I'll answer it!", - "trans_a": "Телефон звонит. — Я отвечу (решил сию секунду)!", - "situation_b": "Going to (Заранее обдуманное намерение / очевидность по фактам)", - "example_b": "Look at those black clouds! It is going to rain.", - "trans_b": "Посмотри на эти чёрные тучи! Сейчас пойдёт дождь (налицо очевидные признаки).", - "key_difference": "Present Continuous для будущего требует подтверждённой договорённости: куплены билеты, назначена встреча в календаре." - } - ], - "journaling_prompt": "Нарисуйте 3 колонки: Will (спонтанно), Going to (намерение), Pres. Cont. (куплены билеты/запланировано). Напишите по 1 предложению в каждую колонку о своих реальных планах.", - "exercises": [ - { - "sentence": "Have you decided what to drink? — Yes, I ___ a glass of orange juice, please.", - "target": "will have", - "clue": "возьму (спонтанное решение в момент заказа)", - "options": ["will have", "am having", "am going to have", "have"], - "explanation": "Заказ в кафе или спонтанное решение в момент речи выражается через 'will': 'I'll have...'." - }, - { - "sentence": "Why are you turning on the television? — I ___ watch the evening news.", - "target": "am going to", - "clue": "собираюсь (намерение было сформировано заранее)", - "options": ["am going to", "will", "am", "would"], - "explanation": "Человек включил телевизор, потому что уже заранее намеревался посмотреть новости: 'am going to watch'." - }, - { - "sentence": "I can't meet you on Friday afternoon because I ___ to the dentist at 3 PM.", - "target": "am going", - "clue": "иду (записан на конкретное время в расписании)", - "options": ["am going", "will go", "go", "shall go"], - "explanation": "Договорённость с точным временем в расписании передаётся через Present Continuous: 'I am going to the dentist'." - }, - { - "sentence": "Watch out! That unstable stack of boxes ___ fall!", - "target": "is going to", - "clue": "сейчас упадёт (очевидные физические признаки)", - "options": ["is going to", "will", "is falling", "shall"], - "explanation": "Прогноз на основе видимых прямо сейчас признаков (коробки уже качаются) выражается через 'is going to'." - }, - { - "sentence": "Don't worry about carrying that heavy bag alone. I ___ help you.", - "target": "will", - "clue": "помогу (спонтанное предложение помощи)", - "options": ["will", "am going to", "am helping", "help"], - "explanation": "Предложение помощи в момент разговора выражается формой 'I will help you'." - } - ] - }, - - # ------------------------------------------------------------------------- - # Unit 11: Modals: Must, Have to, Should - # ------------------------------------------------------------------------- - { - "unit_num": 11, - "level": "B1-B2", - "category": "Modals", - "title": "Modal Verbs: Must, Have to, Should", - "subtitle": "Внутреннее решение (Must) vs Внешнее правило (Have to) vs Совет (Should)", - "golden_formula": "MUST: Speaker's personal feeling ('I must call my mom')\nHAVE TO: External law / rule / obligation ('I have to wear a helmet at work')\nSHOULD: Good idea / friendly advice ('You should sleep more')", - "contrast_explanation": [ - { - "situation_a": "Must (Личное внутреннее убеждение говорящего)", - "example_a": "I must get up earlier tomorrow; I want to do morning exercises.", - "trans_a": "Я должен встать пораньше завтра; я сам этого хочу (моё решение).", - "situation_b": "Have to (Внешнее правило, закон, обстоятельства)", - "example_b": "In the UK, drivers have to drive on the left side of the road.", - "trans_b": "В Великобритании водители обязаны ехать по левой стороне (закон государства).", - "key_difference": "Mustn't = СТРОГО ЗАПРЕЩЕНО. Don't have to = НЕ ОБЯЗАТЕЛЬНО (но можно, если хочешь)." - } - ], - "journaling_prompt": "Запишите в тетрадь контраст: Mustn't (запрет) vs Don't have to (нет необходимости). Напишите 1 вещь, которую вы обязаны делать по работе (have to), и 1 совет самому себе (should).", - "exercises": [ - { - "sentence": "You ___ touch that high-voltage electrical cable! It is lethal.", - "target": "must not", - "clue": "нельзя, строго запрещено", - "options": ["must not", "do not have to", "should", "might not"], - "explanation": "Категорический запрет опасного действия выражается модальным глаголом 'must not' ('mustn't')." - }, - { - "sentence": "Tomorrow is Sunday, so I ___ wake up early for work.", - "target": "do not have to", - "clue": "нет необходимости, не обязан", - "options": ["do not have to", "must not", "should", "cannot"], - "explanation": "Отсутствие необходимости ('не нужно вставать, но можно, если захочешь') передаётся через 'do not have to'." - }, - { - "sentence": "You have been coughing for a week; you ___ see a doctor.", - "target": "should", - "clue": "следует (дружеский совет)", - "options": ["should", "have to", "must", "shall"], - "explanation": "Рекомендация или разумный совет выражается через 'should'." - }, - { - "sentence": "All passengers ___ show a valid boarding pass before boarding.", - "target": "have to", - "clue": "обязаны (официальное правило авиакомпании)", - "options": ["have to", "should", "might", "would"], - "explanation": "Официальные правила, законы и инструкции третьей стороны передаются через 'have to'." - }, - { - "sentence": "I ___ remember to send birthday flowers to my grandmother.", - "target": "must", - "clue": "должен (личное внутреннее побуждение)", - "options": ["must", "may", "can", "ought"], - "explanation": "Внутренний моральный долг и личное решение говорящего выражаются через 'must'." - } - ] - }, - - # ------------------------------------------------------------------------- - # Unit 12: Conditionals: First vs Second (If I do vs If I did) - # ------------------------------------------------------------------------- - { - "unit_num": 12, - "level": "B1-B2", - "category": "Conditionals", - "title": "First vs Second Conditional (If I do vs If I did)", - "subtitle": "Реальное условие на будущее vs Воображаемая / маловероятная ситуация", - "golden_formula": "1st COND (Real Future): If + Present Simple, will + V1\n(If it rains tomorrow, we will stay home)\n2nd COND (Unreal / Imaginary): If + Past Simple, would + V1\n(If I had a million dollars, I would travel the world)", - "contrast_explanation": [ - { - "situation_a": "First Conditional (Вполне реальная ситуация в будущем)", - "example_a": "If you study hard, you will pass the exam easily.", - "trans_a": "Если ты будешь усердно учиться, ты легко сдашь экзамен (реальная вероятность).", - "situation_b": "Second Conditional (Воображаемая или маловероятная ситуация в настоящем/будущем)", - "example_b": "If I knew his phone number, I would call him right now.", - "trans_b": "Если бы я знал его номер (но я не знаю!), я бы позвонил ему прямо сейчас.", - "key_difference": "В части с IF никогда не ставится will или would! (Никаких 'If I will' или 'If I would')." - } - ], - "journaling_prompt": "Запишите формулы 1st и 2nd Conditionals цветными маркерами. Напишите 1 реальное условие на завтра (If...) и 1 мечту/воображаемую ситуацию (If I had / If I were...).", - "exercises": [ - { - "sentence": "If the weather ___ sunny tomorrow, we will go for a picnic.", - "target": "is", - "clue": "будет (в части If ставится Present Simple)", - "options": ["is", "will be", "was", "would be"], - "explanation": "В 1st Conditional в придаточном с 'if' используется Present Simple ('is'), а не 'will be'." - }, - { - "sentence": "If I ___ more free time, I would learn how to play guitar.", - "target": "had", - "clue": "было бы (нереальное условие в настоящем)", - "options": ["had", "have", "will have", "would have"], - "explanation": "Во 2nd Conditional для воображаемой ситуации в части 'if' ставится Past Simple: 'had'." - }, - { - "sentence": "What ___ you do if you won the lottery tomorrow?", - "target": "would", - "clue": "сделал бы (гипотетический результат)", - "options": ["would", "will", "did", "can"], - "explanation": "Маловероятная гипотетическая ситуация (2nd Conditional: 'if you won') требует в главной части 'would you do'." - }, - { - "sentence": "If you don't leave now, you ___ miss your flight.", - "target": "will", - "clue": "опоздаешь (реальное последствие)", - "options": ["will", "would", "did", "are"], - "explanation": "Реальное предупреждение на ближайшее будущее (1st Conditional): 'If you don't leave ... you will miss'." - }, - { - "sentence": "If I ___ in your position, I would accept the job offer.", - "target": "were", - "clue": "был бы (традиционная сослагательная форма were)", - "options": ["were", "am", "will be", "would be"], - "explanation": "В условных предложениях 2-го типа для всех лиц часто используется форма 'were' ('If I were you...')." - } - ] - }, - - # ------------------------------------------------------------------------- - # Unit 13: Passive Voice (Present & Past: It is done / It was done) - # ------------------------------------------------------------------------- - { - "unit_num": 13, - "level": "B1-B2", - "category": "Passive Voice", - "title": "Passive Voice (It is done / It was done)", - "subtitle": "Пассивный залог: фокус на объекте или результате, а не на исполнителе", - "golden_formula": "Present Passive: am / is / are + V3 (Past Participle)\nPast Passive: was / were + V3\nBy + agent: used only when the doer is important ('painted by Da Vinci')", - "contrast_explanation": [ - { - "situation_a": "Active Voice (Фокус на том, КТО совершает действие)", - "example_a": "Alexander Bell invented the telephone in 1876.", - "trans_a": "Александр Белл изобрёл телефон в 1876 году.", - "situation_b": "Passive Voice (Фокус на том, ЧТО произошло с объектом)", - "example_b": "The telephone was invented in 1876.", - "trans_b": "Телефон был изобретён в 1876 году (важен телефон и дата, а не персона).", - "key_difference": "Пассив используется, когда исполнитель неизвестен, очевиден или не имеет решающего значения." - } - ], - "journaling_prompt": "Запишите формулу пассивного залога: be + V3. Напишите от руки 2 примера из сферы технологий (например: 'Python was created in 1991', 'My data is backed up daily').", - "exercises": [ - { - "sentence": "Millions of emails ___ sent around the globe every single minute.", - "target": "are", - "clue": "отправляются (Present Passive с множественным числом)", - "options": ["are", "is", "were", "have"], - "explanation": "Подлежащее 'Millions of emails' во множественном числе в настоящем времени требует: 'are sent'." - }, - { - "sentence": "This ancient castle ___ built in the fourteenth century.", - "target": "was", - "clue": "был построен (Past Passive в единственном числе)", - "options": ["was", "is", "were", "has"], - "explanation": "Замок один ('castle'), постройка завершена в XIV веке $\rightarrow$ 'was built'." - }, - { - "sentence": "The Mona Lisa was painted ___ Leonardo da Vinci.", - "target": "by", - "clue": "предлог исполнителя действия в пассиве", - "options": ["by", "with", "from", "of"], - "explanation": "Исполнитель действия в пассивном залоге вводится предлогом 'by'." - }, - { - "sentence": "The new operating system ___ tested by engineers right now.", - "target": "is being", - "clue": "тестируется прямо сейчас (Present Continuous Passive)", - "options": ["is being", "is", "was", "has been"], - "explanation": "Пассивное действие в процессе прямо в момент речи требует формы 'is being tested'." - }, - { - "sentence": "All rooms in the hotel ___ cleaned thoroughly every morning.", - "target": "are", - "clue": "убираются (регулярный Present Passive)", - "options": ["are", "is", "were", "being"], - "explanation": "Регулярное повторяющееся пассивное действие во множественном числе ('rooms') $\rightarrow$ 'are cleaned'." - } - ] - }, - - # ------------------------------------------------------------------------- - # Unit 14: Articles (A/An vs The vs Zero Article) - # ------------------------------------------------------------------------- - { - "unit_num": 14, - "level": "A1-A2", - "category": "Articles", - "title": "Articles: A/An vs The vs Zero Article", - "subtitle": "Один из многих (A/An) vs Конкретный / единственный (The) vs Обобщение (Zero)", - "golden_formula": "A / AN: Any one non-specific item ('Can I have an apple?')\nTHE: Specific item known to listener / Unique ('Look at the Moon')\nZERO (No article): Plurals & Uncountable in general ('Cats love milk')", - "contrast_explanation": [ - { - "situation_a": "A/An (Первое упоминание / любой один представитель класса)", - "example_a": "I bought a jacket yesterday.", - "trans_a": "Я купил какую-то куртку вчера (собеседник слышит о ней впервые).", - "situation_b": "The (Конкретный предмет, уже известный обоим собеседникам)", - "example_b": "The jacket fits me perfectly.", - "trans_b": "Эта (та самая) куртка сидит на мне идеально.", - "key_difference": "Не используйте артикль со множественным числом или неисчисляемыми существительными, когда говорите о явлении вообще!" - } - ], - "journaling_prompt": "Нарисуйте в тетради 3 колонки: A/An, The, Ø (без артикля). Напишите цепочку из 2 предложений: первое с 'a', второе с 'the' (например: 'I adopted a cat. The cat is black').", - "exercises": [ - { - "sentence": "She wants to buy ___ electric car next month.", - "target": "an", - "clue": "электромобиль (слово начинается с гласного звука)", - "options": ["an", "a", "the", "—"], - "explanation": "Перед исчисляемым существительным в единственном числе, начинающимся с гласного звука [e], ставится артикль 'an'." - }, - { - "sentence": "Could you please close ___ window? It is getting chilly.", - "target": "the", - "clue": "окно (конкретное окно в этой комнате)", - "options": ["the", "a", "an", "—"], - "explanation": "Собеседникам понятно, о каком именно окне в комнате идёт речь $\rightarrow$ определённый артикль 'the'." - }, - { - "sentence": "___ apples are good for your health.", - "target": "—", - "clue": "яблоки вообще (без артикля)", - "options": ["—", "The", "An", "A"], - "explanation": "Когда мы говорим о яблоках в целом как о классе продуктов во множественном числе, артикль отсутствует ('Zero Article')." - }, - { - "sentence": "___ Moon orbits around our planet.", - "target": "The", - "clue": "Луна (уникальный единственный в природе объект)", - "options": ["The", "A", "An", "—"], - "explanation": "Уникальные астрономические объекты, единственные в своём роде, всегда требуют артикля 'The': 'The Moon'." - }, - { - "sentence": "He ordered a soup and a salad; ___ soup was delicious.", - "target": "the", - "clue": "суп (второе упоминание того же самого супа)", - "options": ["the", "a", "an", "—"], - "explanation": "При повторном упоминании объекта ('a soup' $\rightarrow$ 'the soup') используется определённый артикль 'the'." - } - ] - }, - - # ------------------------------------------------------------------------- - # Unit 15: Gerund vs Infinitive (doing vs to do) - # ------------------------------------------------------------------------- - { - "unit_num": 15, - "level": "B1-B2", - "category": "Gerund & Infinitive", - "title": "Gerund vs Infinitive (doing vs to do)", - "subtitle": "Герундий (-ing) vs Инфинитив (to do) после глаголов и предлогов", - "golden_formula": "VERB + ING: enjoy, avoid, mind, finish, suggest, look forward to\nVERB + TO DO: decide, hope, promise, refuse, manage, want, afford\nAFTER PREPOSITIONS: ALWAYS -ING (good at coding, interested in learning)", - "contrast_explanation": [ - { - "situation_a": "Глаголы, требующие только герундия (-ing)", - "example_a": "I really enjoy reading books in the evening.", - "trans_a": "Мне очень нравится читать книги по вечерам (enjoy + V-ing).", - "situation_b": "Глаголы, требующие только инфинитива (to do)", - "example_b": "We decided to stay at home because of the storm.", - "trans_b": "Мы решили остаться дома из-за шторма (decide + to do).", - "key_difference": "После любых предлогов (in, at, about, without, before, after) ВСЕГДА используется форма -ing!" - } - ], - "journaling_prompt": "Запишите в тетрадь 2 списка: 1) Глаголы + -ing (enjoy, avoid), 2) Глаголы + to (decide, hope). Напишите 2 предложения: одно с тем, чем вы наслаждаетесь (enjoy doing), другое с тем, что решили сделать (decided to do).", - "exercises": [ - { - "sentence": "I am looking forward to ___ you at the conference.", - "target": "meeting", - "clue": "встретить (после предлога to в устойчивой связке look forward to)", - "options": ["meeting", "meet", "to meet", "met"], - "explanation": "В выражении 'look forward to' частица 'to' является предлогом, поэтому после неё обязательно используется герундий: 'meeting'." - }, - { - "sentence": "She decided ___ for the scholarship.", - "target": "to apply", - "clue": "подать заявку (после глагола decide)", - "options": ["to apply", "applying", "apply", "applied"], - "explanation": "Глагол 'decide' требует после себя инфинитива с частицей to: 'decided to apply'." - }, - { - "sentence": "You should avoid ___ heavily right before bedtime.", - "target": "eating", - "clue": "есть (после глагола avoid)", - "options": ["eating", "to eat", "eat", "eaten"], - "explanation": "Глагол 'avoid' (избегать) управляет исключительно формой герундия: 'avoid eating'." - }, - { - "sentence": "He is very good at ___ complex algorithmic problems.", - "target": "solving", - "clue": "решать (после предлога at)", - "options": ["solving", "to solve", "solve", "solved"], - "explanation": "После любых английских предлогов (здесь: предлог 'at') глагол принимает форму герундия: 'good at solving'." - }, - { - "sentence": "We can't afford ___ on a luxury cruise this summer.", - "target": "to go", - "clue": "поехать (после глагола afford)", - "options": ["to go", "going", "go", "gone"], - "explanation": "Глагол 'afford' (позволить себе финансово) требует инфинитива с частицей to: 'afford to go'." - } - ] - } -] +CURATED_MURPHY_UNITS = _LazyUnitsList() def seed_grammar_units(conn: sqlite3.Connection) -> int: diff --git a/app/lessons.py b/app/lessons.py index 647de69..d2dab83 100644 --- a/app/lessons.py +++ b/app/lessons.py @@ -13,196 +13,36 @@ from datetime import datetime # ----------------------------------------------------------------------------- # Curated High-Yield Bite-Sized Reading Articles & Facts # ----------------------------------------------------------------------------- -CURATED_ARTICLES: List[Dict[str, Any]] = [ - { - "id": "art-01", - "title": "The James Webb Space Telescope: Peering into the Cosmic Dawn", - "title_ru": "Космический телескоп Джеймс Уэбб: взгляд в космический рассвет", - "topic": "Science", - "level": "B1", - "read_time_min": 2, - "paragraphs": [ - "Operating in the cold vacuum of deep space, the James Webb Space Telescope observes the universe in high-resolution infrared light. Its massive gold-coated beryllium mirror captures faint photons emitted by the earliest galaxies over thirteen billion years ago.", - "Unlike optical telescopes, infrared astronomy allows scientists to pierce through dense cosmic dust clouds where stars and planetary systems are born. Recently, the observatory discovered complex organic molecules in distant stellar nurseries, challenging previous models of early cosmic chemistry." - ], - "paragraphs_ru": [ - "Работая в холодном вакууме глубокого космоса, космический телескоп «Джеймс Уэбб» наблюдает за Вселенной в инфракрасном диапазоне высокого разрешения. Его массивное бериллиевое зеркало с золотым покрытием улавливает слабые фотоны, испущенные самыми ранними галактиками более тринадцати миллиардов лет назад.", - "В отличие от оптических телескопов, инфракрасная астрономия позволяет учёным проникать сквозь плотные облака космической пыли, где рождаются звёзды и планетные системы. Недавно обсерватория обнаружила сложные органические молекулы в далёких звёздных колыбелях, что поставило под сомнение прежние модели ранней космической химии." - ], - "vocabulary_highlights": [ - {"term": "vacuum", "trans": "вакуум, пустота"}, - {"term": "beryllium", "trans": "бериллий"}, - {"term": "faint", "trans": "слабый, едва заметный"}, - {"term": "photons", "trans": "фотоны"}, - {"term": "stellar nurseries", "trans": "звёздные колыбели"}, - {"term": "pierce through", "trans": "проникать сквозь, протыкать"} - ] - }, - { - "id": "art-02", - "title": "The Hidden Architecture of Neural Networks", - "title_ru": "Скрытая архитектура нейронных сетей", - "topic": "Technology", - "level": "B2", - "read_time_min": 2, - "paragraphs": [ - "Modern artificial neural networks are loosely inspired by the biological connections in the human cortex. Each artificial neuron computes a weighted sum of its inputs and applies a non-linear activation function before propagating the signal onward.", - "During the backpropagation process, the network calculates gradient vectors to incrementally adjust billions of internal parameters. This iterative mathematical tuning enables language models to perceive subtle nuances of syntax, sentiment, and context without explicit hard-coded rules." - ], - "paragraphs_ru": [ - "Современные искусственные нейронные сети отдалённо вдохновлены биологическими связями в коре головного мозга человека. Каждый искусственный нейрон вычисляет взвешенную сумму своих входов и применяет нелинейную функцию активации перед передачей сигнала дальше.", - "В процессе обратного распространения ошибки сеть вычисляет векторы градиента, чтобы постепенно корректировать миллиарды внутренних параметров. Эта итеративная математическая настройка позволяет языковым моделям улавливать тонкие нюансы синтаксиса, тональности и контекста без явных жестко заданных правил." - ], - "vocabulary_highlights": [ - {"term": "loosely inspired", "trans": "отдалённо вдохновлённый"}, - {"term": "cortex", "trans": "кора (головного мозга)"}, - {"term": "weighted sum", "trans": "взвешенная сумма"}, - {"term": "propagating", "trans": "распространяющий, передающий"}, - {"term": "gradient vectors", "trans": "векторы градиента"}, - {"term": "subtle nuances", "trans": "тонкие нюансы"} - ] - }, - { - "id": "art-03", - "title": "The Remarkable Intelligence of Crows and Ravens", - "title_ru": "Удивительный интеллект ворон и воронов", - "topic": "Nature", - "level": "B1", - "read_time_min": 2, - "paragraphs": [ - "Corvids, the bird family that includes ravens and crows, display cognitive abilities rivaling those of primates. Laboratory experiments reveal that crows can fashion specialized hooks from wire to retrieve food containers placed out of beak reach.", - "Furthermore, field observations demonstrate that wild crows remember specific human faces for several years and communicate warnings about hostile individuals to the rest of the flock across generations." - ], - "paragraphs_ru": [ - "Врановые — семейство птиц, включающее воронов и ворон, демонстрируют когнитивные способности, соперничающие со способностями приматов. Лабораторные эксперименты показывают, что вороны могут изготавливать специальные крючки из проволоки, чтобы доставать контейнеры с едой, находящиеся вне досягаемости клюва.", - "Более того, полевые наблюдения доказывают, что дикие вороны помнят конкретные человеческие лица в течение нескольких лет и передают предупреждения о недружелюбных особях остальной стае через поколения." - ], - "vocabulary_highlights": [ - {"term": "corvids", "trans": "врановые (птицы)"}, - {"term": "cognitive abilities", "trans": "когнитивные способности"}, - {"term": "rivaling", "trans": "соперничающий с"}, - {"term": "fashion hooks", "trans": "изготавливать крючки"}, - {"term": "hostile individuals", "trans": "враждебные особи, недоброжелатели"}, - {"term": "flock", "trans": "стая"} - ] - }, - { - "id": "art-04", - "title": "Why We Sleep: The Science of Memory Consolidation", - "title_ru": "Зачем мы спим: наука о консолидации памяти", - "topic": "Health", - "level": "B1", - "read_time_min": 2, - "paragraphs": [ - "While the body rests during deep sleep, the brain is engaged in vigorous maintenance work. The hippocampus transfers newly acquired information into the neocortex for long-term storage, effectively converting fragile short-term memories into enduring knowledge.", - "Simultaneously, the glymphatic system flushes away metabolic waste and toxic proteins that accumulate between neurons during waking hours. Sleep deprivation severely impairs this cleaning cycle, making rapid vocabulary retention far more difficult." - ], - "paragraphs_ru": [ - "Пока тело отдыхает во время глубокого сна, мозг занят активной работой по техобслуживанию. Гиппокамп переносит вновь полученную информацию в неокортекс для долговременного хранения, эффективно преобразуя хрупкие кратковременные воспоминания в прочные знания.", - "Одновременно с этим глимфатическая система вымывает метаболические отходы и токсичные белки, которые накапливаются между нейронами в часы бодрствования. Недосыпание серьёзно нарушает этот цикл очистки, делая быстрое запоминание словарного запаса намного более трудным." - ], - "vocabulary_highlights": [ - {"term": "vigorous maintenance", "trans": "активное техобслуживание / поддержка"}, - {"term": "fragile memories", "trans": "хрупкие воспоминания"}, - {"term": "enduring knowledge", "trans": "прочные, долговечные знания"}, - {"term": "flushes away", "trans": "смывает, вымывает"}, - {"term": "sleep deprivation", "trans": "депривация сна, недосыпание"}, - {"term": "vocabulary retention", "trans": "удержание словарного запаса"} - ] - }, - { - "id": "art-05", - "title": "The Antikythera Mechanism: Ancient Greek Analog Computer", - "title_ru": "Антикитерский механизм: древнегреческий аналоговый компьютер", - "topic": "History", - "level": "B2", - "read_time_min": 2, - "paragraphs": [ - "Discovered by sponge divers inside a Roman shipwreck near the Greek island of Antikythera in 1901, this corroded bronze device bewildered historians for decades. Modern micro-computed tomography revealed an intricate clockwork mechanism consisting of over thirty precision gear wheels.", - "Constructed around the second century BC, the mechanism accurately tracked the astronomical positions of the Sun, Moon, and five known planets. It could even predict solar and lunar eclipses years in advance, showcasing a technological sophistication unmatched until fourteenth-century mechanical clocks." - ], - "paragraphs_ru": [ - "Обнаруженное ловцами губок внутри римского кораблекрушения возле греческого острова Антикитера в 1901 году, это корродированное бронзовое устройство приводило историков в замешательство на протяжении десятилетий. Современная микрокомпьютерная томография выявила сложнейший часовой механизм, состоящий из более чем тридцати прецизионных зубчатых колёс.", - "Созданный около второго века до нашей эры, механизм точно отслеживал астрономические положения Солнца, Луны и пяти известных планет. Он мог даже предсказывать солнечные и лунные затмения на годы вперёд, демонстрируя технологическую сложность, которой не было равных вплоть до механических часов XIV века." - ], - "vocabulary_highlights": [ - {"term": "sponge divers", "trans": "ловцы губок"}, - {"term": "corroded bronze", "trans": "подвергшаяся коррозии бронза"}, - {"term": "bewildered", "trans": "сбивал с толку, озадачивал"}, - {"term": "gear wheels", "trans": "зубчатые колёса, шестерни"}, - {"term": "lunar eclipses", "trans": "лунные затмения"}, - {"term": "sophistication", "trans": "утончённость, сложность конструкции"} - ] - }, - { - "id": "art-06", - "title": "Underground Fungal Networks: The Wood Wide Web", - "title_ru": "Подземные грибные сети: лесная паутина", - "topic": "Nature", - "level": "B1", - "read_time_min": 2, - "paragraphs": [ - "Beneath the floor of an ancient forest lies an astonishing symbiotic network of mycorrhizal fungi. These microscopic fungal threads, known as mycelium, weave through tree roots to exchange mineral nutrients and water for sugars generated through photosynthesis.", - "Remarkably, trees utilize this subterranean internet to transmit chemical distress signals when attacked by pests, allowing neighboring trees to synthesize defensive tannins before the infestation spreads." - ], - "paragraphs_ru": [ - "Под пологом древнего леса скрывается поразительная симбиотическая сеть микоризных грибов. Эти микроскопические грибные нити, известные как мицелий, оплетают корни деревьев, обменивая минеральные питательные вещества и воду на сахара, вырабатываемые в процессе фотосинтеза.", - "Примечательно, что деревья используют этот подземный интернет для передачи химических сигналов бедствия при нападении вредителей, позволяя соседним деревьям синтезировать защитные танины до того, как заражение распространится." - ], - "vocabulary_highlights": [ - {"term": "mycorrhizal fungi", "trans": "микоризные грибы"}, - {"term": "mycelium", "trans": "мицелий, грибница"}, - {"term": "subterranean", "trans": "подземный"}, - {"term": "distress signals", "trans": "сигналы бедствия"}, - {"term": "infestation", "trans": "заражение вредителями, нашествие"} - ] - }, - { - "id": "art-07", - "title": "Quantum Superposition and the Threshold of Reality", - "title_ru": "Квантовая суперпозиция и порог реальности", - "topic": "Science", - "level": "B2", - "read_time_min": 2, - "paragraphs": [ - "In quantum mechanics, subatomic particles exist simultaneously in multiple probable states until an observation forces the wave function to collapse into a single definitive outcome. This fundamental counterintuitive principle is known as quantum superposition.", - "Quantum computers harness this phenomenon by employing qubits instead of classical binary bits. While a traditional bit can only register as a zero or a one, a qubit exists in a superposition of both states, granting exponential computational scaling for cryptographic and molecular simulation algorithms." - ], - "paragraphs_ru": [ - "В квантовой механике субатомные частицы существуют одновременно во множестве вероятностных состояний до тех пор, пока наблюдение не заставляет волновую функцию коллапсировать в один определённый исход. Этот фундаментальный парадоксальный принцип известен как квантовая суперпозиция.", - "Квантовые компьютеры используют этот феномен, применяя кубиты вместо классических двоичных битов. В то время как традиционный бит может принимать значение только ноль или единица, кубит существует в суперпозиции обоих состояний, обеспечивая экспоненциальное масштабирование вычислений для алгоритмов криптографии и моделирования молекул." - ], - "vocabulary_highlights": [ - {"term": "subatomic particles", "trans": "субатомные частицы"}, - {"term": "counterintuitive", "trans": "парадоксальный, нелогичный на первый взгляд"}, - {"term": "harness", "trans": "укрощать, эффективно использовать"}, - {"term": "qubits", "trans": "кубиты"}, - {"term": "exponential scaling", "trans": "экспоненциальное масштабирование"} - ] - }, - { - "id": "art-08", - "title": "The Evolution of Coffee Culture and the Age of Enlightenment", - "title_ru": "Эволюция кофейной культуры и Эпоха Просвещения", - "topic": "Culture", - "level": "A2", - "read_time_min": 2, - "paragraphs": [ - "During the seventeenth century, European coffee houses emerged as lively hubs for intellectual debate, political discussion, and commercial trade. In London, these establishments were nicknamed 'penny universities' because for the price of a cup of coffee, any customer could participate in philosophical discourse.", - "Scientists like Isaac Newton and economists like Adam Smith regularly met in coffee houses to draft treatises and debate ideas that laid the foundations of the scientific revolution and modern commerce." - ], - "paragraphs_ru": [ - "В XVII веке европейские кофейни стали оживлёнными центрами интеллектуальных дебатов, политических дискуссий и коммерческой торговли. В Лондоне эти заведения называли «пенни-университетами», потому что по цене чашки кофе любой посетитель мог поучаствовать в философских рассуждениях.", - "Учёные вроде Исаака Ньютона и экономисты вроде Адама Смита регулярно собирались в кофейнях, чтобы составлять трактаты и обсуждать идеи, заложившие основы научной революции и современной коммерции." - ], - "vocabulary_highlights": [ - {"term": "lively hubs", "trans": "оживлённые центры"}, - {"term": "philosophical discourse", "trans": "философские рассуждения / дискуссии"}, - {"term": "draft treatises", "trans": "составлять трактаты"}, - {"term": "laid the foundations", "trans": "заложили основы"} - ] - } -] + +from pathlib import Path +from app import config + +_CURATED_ARTICLES_CACHE = None + +def get_curated_articles_list(): + global _CURATED_ARTICLES_CACHE + if _CURATED_ARTICLES_CACHE is None: + seeds_file = config.BASE_DIR / 'data' / 'seeds' / 'reading_articles.json' + if seeds_file.is_file(): + try: + with open(seeds_file, 'r', encoding='utf-8') as f: + _CURATED_ARTICLES_CACHE = json.load(f) + except Exception: + _CURATED_ARTICLES_CACHE = [] + else: + _CURATED_ARTICLES_CACHE = [] + return _CURATED_ARTICLES_CACHE + +class _LazyArticlesList(list): + def __iter__(self): + return iter(get_curated_articles_list()) + def __len__(self): + return len(get_curated_articles_list()) + def __getitem__(self, idx): + return get_curated_articles_list()[idx] + +CURATED_ARTICLES = _LazyArticlesList() + # ----------------------------------------------------------------------------- # Default Lesson Presets (Ready-to-use Configurations) diff --git a/app/phrasal.py b/app/phrasal.py index 3e7c343..464000c 100644 --- a/app/phrasal.py +++ b/app/phrasal.py @@ -56,200 +56,29 @@ PHRASAL_PARTICLES = { "to", "together", "under", "up", "upon", "with" } -# Curated high-frequency English phrasal verbs (CEFR A2-B2) with clean translations -CURATED_PHRASAL_VERBS: Dict[str, str] = { - # take - "take off": "взлетать; снимать (одежду); быстро уходить", - "take up": "браться за (хобби/дело); занимать (место, время)", - "take on": "брать на себя (ответственность); нанимать", - "take over": "захватывать контроль; вступать во владение", - "take in": "усваивать; приютить; обманывать", - "take out": "вынимать; приглашать (в ресторан); устранять", - "take back": "возвращать (вещь); брать свои слова назад", - "take after": "быть похожим на (родителей)", - "take apart": "разбирать на части", - # give - "give up": "сдаваться; бросать (привычку)", - "give in": "уступать, сдаваться под натиском", - "give away": "раздавать даром; выдавать (секрет)", - "give out": "раздавать; иссякать, отказывать", - "give back": "возвращать", - # get - "get along with": "ладить, быть в хороших отношениях с кем-то", - "get along": "ладить; справляться", - "get away": "убегать, уезжать в отпуск", - "get away with": "выходить сухим из воды", - "get back": "возвращаться", - "get by": "сводить концы с концами, выживать", - "get off": "выходить (из автобуса/поезда); отделываться", - "get on": "садиться (на транспорт); ладить; продолжать", - "get over": "преодолевать, оправляться (от болезни/потери)", - "get rid of": "избавляться от", - "get through": "справляться; дозваниваться", - "get up": "вставать (с постели); подниматься", - # go - "go on": "продолжать; происходить", - "go out": "выходить в свет; встречаться; гаснуть (об огне/свете)", - "go through": "проходить через, испытывать (трудности); просматривать", - "go back": "возвращаться", - "go off": "звонить (о будильнике); взрываться; портиться (о еде)", - "go over": "проверять, внимательно просматривать; повторять", - "go ahead": "начинать, продолжать; давать добро", - "go with": "сочетаться с, подходить к", - "go down": "спускаться, снижаться; входить в историю", - "go up": "подниматься, расти (о цене)", - # come - "come up with": "придумывать, предлагать (идею, решение)", - "come across": "случайно натолкнуться на, производить впечатление", - "come back": "возвращаться", - "come in": "входить", - "come out": "выходить (в свет); выясняться, обнаруживаться", - "come over": "приходить в гости; охватывать", - "come on": "давай!; появляться; начинаться", - "come up": "возникать, всплывать (о вопросе); подходить", - "come down to": "сводиться к", - # look - "look forward to": "ждать с нетерпением, предвкушать", - "look for": "искать", - "look after": "присматривать за, заботиться", - "look into": "исследовать, изучать, разбираться", - "look up": "искать (в словаре/справочнике); улучшаться", - "look up to": "уважать, брать пример с", - "look down on": "смотреть свысока, презирать", - "look out": "остерегаться, быть начеку", - "look around": "осматриваться", - # turn - "turn off": "выключать (прибор, свет, воду)", - "turn on": "включать (прибор, свет, воду)", - "turn up": "прибавлять громкость; неожиданно объявляться", - "turn down": "убавлять громкость; отклонять, отвергать", - "turn out": "оказываться; оборачиваться (результатом)", - "turn into": "превращаться в", - "turn back": "поворачивать назад, разворачиваться", - "turn over": "переворачивать; передавать", - # set - "set up": "устанавливать, организовывать, подготавливать", - "set off": "отправляться в путь; вызывать (реакцию)", - "set out": "отправляться в путь; намереваться", - # put - "put on": "надевать (одежду); включать; прибавлять в весе", - "put off": "откладывать (на потом); вызывать отвращение", - "put out": "тушить (огонь); выпускать (продукцию)", - "put up with": "мириться с, терпеть", - "put away": "убирать на место", - "put forward": "выдвигать (идею/предложение)", - # run - "run out of": "заканчиваться, исчерпать запасы", - "run out": "иссякать, заканчиваться", - "run into": "случайно встретить; сталкиваться", - "run away": "убегать, сбегать", - "run over": "переехать, сбить; повторить бегло", - # bring - "bring up": "воспитывать (детей); поднимать (тему в разговоре)", - "bring about": "вызывать, приводить к", - "bring back": "возвращать, вызывать воспоминания", - "bring in": "привлекать, вводить (закон/доход)", - # call - "call off": "отменять (встречу/мероприятие)", - "call back": "перезванивать; отзывать", - "call on": "навещать; призывать к ответу", - "call for": "требовать, предусматривать", - # carry - "carry out": "выполнять, приводить в исполнение (план/исследование)", - "carry on": "продолжать (дело/разговор)", - # break - "break down": "ломаться (о технике); терять самообладание", - "break up": "расставаться (об отношениях); распадаться", - "break into": "вламываться, незаконно проникать", - "break out": "разразиться (о войне/пожаре); сбегать (из тюрьмы)", - # fall - "fall apart": "разваливаться на куски, терпеть крах", - "fall behind": "отставать (в графике/учёбе)", - "fall for": "попасться на удочку; влюбиться по уши", - "fall out": "ссориться; выпадать", - # keep - "keep up with": "поспевать за, держаться наравне с", - "keep up": "поддерживать на том же уровне", - "keep on": "упорно продолжать", - "keep away": "держаться подальше, избегать", - # hold - "hold on": "подождать (на линии); крепко держаться", - "hold up": "задерживать; грабить", - "hold back": "сдерживать (эмоции/прогресс)", - # point - "point out": "указывать, обращать внимание на", - # figure - "figure out": "выяснить, понять, разобраться", - # find - "find out": "узнавать, выяснять (информацию)", - # show - "show up": "появляться, приходить (неожиданно)", - "show off": "выпендриваться, хвастаться", - # work - "work out": "тренироваться; решать проблему; складываться успешно", - # catch - "catch up with": "догонять, нагонять (упущенное/кого-то)", - "catch up": "догонять; наверстывать упущенное", - # check - "check in": "регистрироваться (в отеле/аэропорту)", - "check out": "выселяться; проверять, заценить", - # drop - "drop in": "заглянуть в гости без предупреждения", - "drop by": "зайти мимоходом", - "drop off": "подвезти (на машине); заснуть", - # end - "end up": "оказаться в итоге (где-то или в каком-то состоянии)", - # stand - "stand out": "выделяться, бросаться в глаза", - "stand for": "означать; выступать в защиту", - # cut - "cut down on": "сокращать потребление (сахара/расходов)", - "cut down": "срубать; сокращать", - "cut off": "отрезать, прерывать (связь)", - # fill - "fill in": "заполнять (пропуски/форму); вводить в курс дела", - "fill out": "заполнять (анкету/бланк)", - # hang - "hang out": "проводить время, тусоваться", - "hang up": "вешать телефонную трубку", - # pass - "pass away": "умирать, уходить из жизни", - "pass out": "терять сознание, отключаться", - # pick - "pick up": "подбирать; заезжать за кем-то; учить на лету", - # pull - "pull through": "справляться, выкарабкиваться (из кризиса/болезни)", - "pull over": "съехать на обочину, притормозить", - # other essentials - "back up": "поддерживать; создавать резервную копию", - "clear up": "проясняться (о погоде); убирать, наводить порядок", - "slow down": "замедляться", - "speed up": "ускоряться", - "switch on": "включать", - "switch off": "выключать", - "throw away": "выбрасывать (мусор)", - "try on": "примерять (одежду)", - "try out": "пробовать, испытывать", - "watch out": "остерегаться, беречься", - "write down": "записывать на бумаге", - "calm down": "успокаиваться", - "cheer up": "приободряться, поднимать настроение", - "make up for": "компенсировать, заглаживать вину", - "make up": "мириться; сочинять (историю); краситься", - "settle down": "остепениться; успокоиться", - "sort out": "улаживать, разбираться с проблемами", - "blow up": "взрываться; выходить из себя", - "burn down": "сгорать дотла", - "tear down": "сносить (здание)", - "wear out": "изнашиваться; утомлять", - "stick to": "придерживаться (плана/правил)", - "kick off": "начинать, давать старт", - "lock up": "запирать на замок", - "pay off": "окупаться; расплачиваться с долгами", - "count on": "рассчитывать на кого-то", - "stay up": "бодрствовать, не ложиться спать", - "speak up": "говорить громче; высказываться смело", -} + +import json +from pathlib import Path +from app import config + +_CURATED_PHRASAL_VERBS_CACHE: Optional[Dict[str, str]] = None + +def get_curated_phrasal_verbs() -> Dict[str, str]: + global _CURATED_PHRASAL_VERBS_CACHE + if _CURATED_PHRASAL_VERBS_CACHE is None: + seeds_file = config.BASE_DIR / "data" / "seeds" / "phrasal_verbs.json" + if seeds_file.is_file(): + try: + with open(seeds_file, "r", encoding="utf-8") as f: + _CURATED_PHRASAL_VERBS_CACHE = json.load(f) + except Exception: + _CURATED_PHRASAL_VERBS_CACHE = {} + else: + _CURATED_PHRASAL_VERBS_CACHE = {} + return _CURATED_PHRASAL_VERBS_CACHE + +CURATED_PHRASAL_VERBS: Dict[str, str] = get_curated_phrasal_verbs() + def lemmatize_word(w: str) -> List[str]: diff --git a/data/seeds/cefr_questions.json b/data/seeds/cefr_questions.json new file mode 100644 index 0000000..19d4d1e --- /dev/null +++ b/data/seeds/cefr_questions.json @@ -0,0 +1,3902 @@ +[ + { + "level": "A1", + "term": "expensive", + "pos": "adjective", + "phonetic": "/ɪkˈspen.sɪv/", + "translation": "дорогой (по цене)", + "sentence": "This watch is too ___ for me to buy right now.", + "options": [ + "expensive", + "cheap", + "simple", + "clean" + ], + "explanation": "Expensive (дорогой) — имеет высокую стоимость. В контексте: слишком дорого, чтобы купить сейчас." + }, + { + "level": "A1", + "term": "weather", + "pos": "noun", + "phonetic": "/ˈweð.ər/", + "translation": "погода", + "sentence": "The ___ today is sunny and wonderfully warm.", + "options": [ + "weather", + "season", + "journey", + "holiday" + ], + "explanation": "Weather (погода) — состояние атмосферы на данный момент (солнечно, тепло)." + }, + { + "level": "A1", + "term": "remember", + "pos": "verb", + "phonetic": "/rɪˈmem.bər/", + "translation": "помнить, вспоминать", + "sentence": "I cannot ___ his phone number without looking at my phone.", + "options": [ + "remember", + "forget", + "decide", + "repeat" + ], + "explanation": "Remember (помнить) — удерживать информацию в памяти." + }, + { + "level": "A1", + "term": "careful", + "pos": "adjective", + "phonetic": "/ˈkeə.fəl/", + "translation": "осторожный, внимательный", + "sentence": "Be ___ when you cross the busy street!", + "options": [ + "careful", + "boring", + "dangerous", + "wrong" + ], + "explanation": "Careful (осторожный) — обращающий внимание на безопасность." + }, + { + "level": "A1", + "term": "breakfast", + "pos": "noun", + "phonetic": "/ˈbrek.fəst/", + "translation": "завтрак", + "sentence": "She always eats eggs and toast for ___.", + "options": [ + "breakfast", + "dinner", + "kitchen", + "uniform" + ], + "explanation": "Breakfast (завтрак) — первый утренний прием пищи." + }, + { + "level": "A1", + "term": "decide", + "pos": "verb", + "phonetic": "/dɪˈsaɪd/", + "translation": "решать, принимать решение", + "sentence": "We need to ___ where to go for our summer vacation.", + "options": [ + "decide", + "invite", + "listen", + "travel" + ], + "explanation": "Decide (решать) — делать выбор между вариантами." + }, + { + "level": "A1", + "term": "village", + "pos": "noun", + "phonetic": "/ˈvɪl.ɪdʒ/", + "translation": "деревня, село", + "sentence": "My grandparents live in a quiet ___ in the mountains.", + "options": [ + "village", + "airport", + "hospital", + "library" + ], + "explanation": "Village (деревня) — небольшой населенный пункт за городом." + }, + { + "level": "A1", + "term": "dangerous", + "pos": "adjective", + "phonetic": "/ˈdeɪn.dʒər.əs/", + "translation": "опасный", + "sentence": "Swimming in this stormy river is very ___.", + "options": [ + "dangerous", + "exciting", + "healthy", + "wonderful" + ], + "explanation": "Dangerous (опасный) — способный причинить вред или травму." + }, + { + "level": "A1", + "term": "invite", + "pos": "verb", + "phonetic": "/ɪnˈvaɪt/", + "translation": "приглашать", + "sentence": "They want to ___ all their classmates to the birthday party.", + "options": [ + "invite", + "address", + "listen", + "welcome" + ], + "explanation": "Invite (приглашать) — звать кого-то на мероприятие." + }, + { + "level": "A1", + "term": "borrow", + "pos": "verb", + "phonetic": "/ˈbɒr.əʊ/", + "translation": "одалживать, брать взаймы", + "sentence": "Can I ___ your pencil for a minute, please?", + "options": [ + "borrow", + "lend", + "spend", + "repeat" + ], + "explanation": "Borrow (брать взаймы) — брать вещь во временное пользование." + }, + { + "level": "A1", + "term": "healthy", + "pos": "adjective", + "phonetic": "/ˈhel.θi/", + "translation": "здоровый, полезный для здоровья", + "sentence": "Eating fresh fruit and vegetables keeps your body ___.", + "options": [ + "healthy", + "boring", + "wrong", + "famous" + ], + "explanation": "Healthy (здоровый) — способствующий хорошему самочувствию." + }, + { + "level": "A1", + "term": "journey", + "pos": "noun", + "phonetic": "/ˈdʒɜː.ni/", + "translation": "путешествие, поездка", + "sentence": "It was a long ___ by train across the entire country.", + "options": [ + "journey", + "ticket", + "minute", + "station" + ], + "explanation": "Journey (путешествие, поездка) — передвижение из одного места в другое." + }, + { + "level": "A1", + "term": "simple", + "pos": "adjective", + "phonetic": "/ˈsɪm.pəl/", + "translation": "простой, несложный", + "sentence": "The recipe is very ___ and only takes ten minutes.", + "options": [ + "simple", + "expensive", + "dangerous", + "careful" + ], + "explanation": "Simple (простой) — легкий для понимания или выполнения." + }, + { + "level": "A1", + "term": "foreign", + "pos": "adjective", + "phonetic": "/ˈfɒr.ən/", + "translation": "иностранный, зарубежный", + "sentence": "She enjoys learning ___ languages and studying their grammar.", + "options": [ + "foreign", + "famous", + "careful", + "boring" + ], + "explanation": "Foreign (иностранный) — принадлежащий другой стране." + }, + { + "level": "A1", + "term": "neighbor", + "pos": "noun", + "phonetic": "/ˈneɪ.bər/", + "translation": "сосед", + "sentence": "Our next-door ___ has three friendly dogs.", + "options": [ + "neighbor", + "student", + "parent", + "person" + ], + "explanation": "Neighbor (сосед) — человек, живущий рядом." + }, + { + "level": "A1", + "term": "exciting", + "pos": "adjective", + "phonetic": "/ɪkˈsaɪ.tɪŋ/", + "translation": "захватывающий, увлекательный", + "sentence": "Watching the championship final was really ___!", + "options": [ + "exciting", + "boring", + "wrong", + "cheap" + ], + "explanation": "Exciting (захватывающий) — вызывающий сильные положительные эмоции." + }, + { + "level": "A1", + "term": "listen", + "pos": "verb", + "phonetic": "/ˈlɪs.ən/", + "translation": "слушать", + "sentence": "You should ___ carefully to the teacher's instructions.", + "options": [ + "listen", + "invite", + "decide", + "repeat" + ], + "explanation": "Listen (слушать) — обращать слуховое внимание на речь или звук." + }, + { + "level": "A1", + "term": "hospital", + "pos": "noun", + "phonetic": "/ˈhɒs.pɪ.təl/", + "translation": "больница, госпиталь", + "sentence": "The doctor works in the largest city ___.", + "options": [ + "hospital", + "airport", + "station", + "library" + ], + "explanation": "Hospital (больница) — медицинское учреждение для лечения больных." + }, + { + "level": "A1", + "term": "ticket", + "pos": "noun", + "phonetic": "/ˈtɪk.ɪt/", + "translation": "билет", + "sentence": "Don't forget to buy a metro ___ before entering.", + "options": [ + "ticket", + "package", + "message", + "question" + ], + "explanation": "Ticket (билет) — документ на право проезда или посещения." + }, + { + "level": "A1", + "term": "boring", + "pos": "adjective", + "phonetic": "/ˈbɔː.rɪŋ/", + "translation": "скучный", + "sentence": "The lecture was so ___ that half the audience fell asleep.", + "options": [ + "boring", + "exciting", + "wonderful", + "healthy" + ], + "explanation": "Boring (скучный) — не вызывающий интереса." + }, + { + "level": "A1", + "term": "airport", + "pos": "noun", + "phonetic": "/ˈeə.pɔːt/", + "translation": "аэропорт", + "sentence": "We arrived at the ___ two hours before our departure.", + "options": [ + "airport", + "hospital", + "station", + "village" + ], + "explanation": "Airport (аэропорт) — комплекс для взлета, посадки и обслуживания самолетов." + }, + { + "level": "A1", + "term": "clothes", + "pos": "noun", + "phonetic": "/kləʊðz/", + "translation": "одежда", + "sentence": "He bought warm winter ___ because it was snowing outside.", + "options": [ + "clothes", + "luggage", + "tickets", + "packages" + ], + "explanation": "Clothes (одежда) — предметы гардероба, надеваемые на тело." + }, + { + "level": "A1", + "term": "repeat", + "pos": "verb", + "phonetic": "/rɪˈpiːt/", + "translation": "повторять", + "sentence": "Could you please ___ that question? I didn't hear you.", + "options": [ + "repeat", + "decide", + "invite", + "borrow" + ], + "explanation": "Repeat (повторять) — сказать или сделать что-то еще раз." + }, + { + "level": "A1", + "term": "famous", + "pos": "adjective", + "phonetic": "/ˈfeɪ.məs/", + "translation": "знаменитый, известный", + "sentence": "She is a very ___ actress known around the globe.", + "options": [ + "famous", + "careful", + "wrong", + "simple" + ], + "explanation": "Famous (знаменитый) — широко известный многим людям." + }, + { + "level": "A1", + "term": "message", + "pos": "noun", + "phonetic": "/ˈmes.ɪdʒ/", + "translation": "сообщение", + "sentence": "He sent me a text ___ to confirm the meeting time.", + "options": [ + "message", + "question", + "address", + "ticket" + ], + "explanation": "Message (сообщение) — переданная информация в письменном или голосовом виде." + }, + { + "level": "A1", + "term": "wonderful", + "pos": "adjective", + "phonetic": "/ˈwʌn.də.fəl/", + "translation": "замечательный, чудесный", + "sentence": "We had a ___ weekend walking by the lake.", + "options": [ + "wonderful", + "dangerous", + "boring", + "wrong" + ], + "explanation": "Wonderful (чудесный) — приносящий огромное удовольствие или восхищение." + }, + { + "level": "A1", + "term": "station", + "pos": "noun", + "phonetic": "/ˈsteɪ.ʃən/", + "translation": "станция, вокзал", + "sentence": "The train arrived at the central railway ___ on schedule.", + "options": [ + "station", + "airport", + "hospital", + "village" + ], + "explanation": "Station (станция, вокзал) — остановочный пункт поездов или автобусов." + }, + { + "level": "A1", + "term": "library", + "pos": "noun", + "phonetic": "/ˈlaɪ.brər.i/", + "translation": "библиотека", + "sentence": "Students go to the quiet ___ to read textbooks.", + "options": [ + "library", + "hospital", + "station", + "airport" + ], + "explanation": "Library (библиотека) — учреждение для хранения и выдачи книг." + }, + { + "level": "A1", + "term": "package", + "pos": "noun", + "phonetic": "/ˈpæk.ɪdʒ/", + "translation": "посылка, пакет", + "sentence": "The courier delivered a heavy cardboard ___ to my door.", + "options": [ + "package", + "ticket", + "message", + "minute" + ], + "explanation": "Package (посылка, сверток) — упакованный груз для доставки." + }, + { + "level": "A1", + "term": "travel", + "pos": "verb", + "phonetic": "/ˈtræv.əl/", + "translation": "путешествовать", + "sentence": "They plan to ___ across Europe during their holidays.", + "options": [ + "travel", + "decide", + "listen", + "repeat" + ], + "explanation": "Travel (путешествовать) — совершать поездки в другие города или страны." + }, + { + "level": "A1", + "term": "address", + "pos": "noun", + "phonetic": "/əˈdres/", + "translation": "адрес", + "sentence": "Please write down your postal ___ on the delivery form.", + "options": [ + "address", + "message", + "question", + "ticket" + ], + "explanation": "Address (адрес) — указание места жительства или нахождения здания." + }, + { + "level": "A1", + "term": "wrong", + "pos": "adjective", + "phonetic": "/rɒŋ/", + "translation": "неправильный, неверный", + "sentence": "I took the ___ bus and ended up in another neighborhood.", + "options": [ + "wrong", + "simple", + "healthy", + "famous" + ], + "explanation": "Wrong (неправильный) — несоответствующий правде или правильному направлению." + }, + { + "level": "A1", + "term": "yesterday", + "pos": "adverb", + "phonetic": "/ˈjes.tə.deɪ/", + "translation": "вчера", + "sentence": "I bought some new shoes ___ afternoon.", + "options": [ + "yesterday", + "tomorrow", + "always", + "together" + ], + "explanation": "Yesterday (вчера) — в день, предшествующий сегодняшнему." + }, + { + "level": "A1", + "term": "tomorrow", + "pos": "adverb", + "phonetic": "/təˈmɒr.əʊ/", + "translation": "завтра", + "sentence": "The bank will open again ___ morning at nine.", + "options": [ + "tomorrow", + "yesterday", + "always", + "together" + ], + "explanation": "Tomorrow (завтра) — в день, следующий за сегодняшним." + }, + { + "level": "A1", + "term": "holiday", + "pos": "noun", + "phonetic": "/ˈhɒl.ə.deɪ/", + "translation": "праздник, отпуск", + "sentence": "We booked a sunny two-week ___ by the Mediterranean sea.", + "options": [ + "holiday", + "journey", + "station", + "airport" + ], + "explanation": "Holiday (отпуск, праздник) — период отдыха от работы или учебы." + }, + { + "level": "A1", + "term": "uniform", + "pos": "noun", + "phonetic": "/ˈjuː.nɪ.fɔːm/", + "translation": "форма, униформа", + "sentence": "Police officers must wear a neat ___ on duty.", + "options": [ + "uniform", + "clothes", + "package", + "ticket" + ], + "explanation": "Uniform (униформа) — установленная служебная форма одежды." + }, + { + "level": "A1", + "term": "between", + "pos": "preposition", + "phonetic": "/bɪˈtwiːn/", + "translation": "между", + "sentence": "The pharmacy is situated ___ the bakery and the bank.", + "options": [ + "between", + "together", + "always", + "because" + ], + "explanation": "Between (между) — в пространстве, разделяющем два объекта." + }, + { + "level": "A1", + "term": "together", + "pos": "adverb", + "phonetic": "/təˈɡeð.ər/", + "translation": "вместе", + "sentence": "Let's work ___ to complete the project faster.", + "options": [ + "together", + "between", + "yesterday", + "tomorrow" + ], + "explanation": "Together (вместе) — совместно с кем-либо." + }, + { + "level": "A1", + "term": "welcome", + "pos": "noun", + "phonetic": "/ˈwel.kəm/", + "translation": "теплый прием, приветствие", + "sentence": "The host gave a cheerful ___ to all the guests.", + "options": [ + "welcome", + "address", + "message", + "journey" + ], + "explanation": "Welcome (приветствие, радушный прием) — доброе отношение к прибывшим." + }, + { + "level": "A1", + "term": "question", + "pos": "noun", + "phonetic": "/ˈkwes.tʃən/", + "translation": "вопрос", + "sentence": "If you are confused, raise your hand and ask a ___.", + "options": [ + "question", + "message", + "address", + "ticket" + ], + "explanation": "Question (вопрос) — обращение с целью получить ответ." + }, + { + "level": "A1", + "term": "bottle", + "pos": "noun", + "phonetic": "/ˈbɒt.əl/", + "translation": "бутылка", + "sentence": "Could you bring a ___ of cold water from the fridge?", + "options": [ + "bottle", + "ticket", + "weather", + "message" + ], + "explanation": "Bottle (бутылка) — емкость для хранения напитков и жидкостей." + }, + { + "level": "A1", + "term": "island", + "pos": "noun", + "phonetic": "/ˈaɪ.lənd/", + "translation": "остров", + "sentence": "They spent their holiday on a small Greek ___.", + "options": [ + "island", + "village", + "airport", + "station" + ], + "explanation": "Island (остров) — участок суши, окруженный водой." + }, + { + "level": "A1", + "term": "pocket", + "pos": "noun", + "phonetic": "/ˈpɒk.ɪt/", + "translation": "карман", + "sentence": "He put his keys and wallet into his jacket ___.", + "options": [ + "pocket", + "package", + "bottle", + "uniform" + ], + "explanation": "Pocket (карман) — часть одежды в виде мешочка для мелких вещей." + }, + { + "level": "A1", + "term": "mirror", + "pos": "noun", + "phonetic": "/ˈmɪr.ər/", + "translation": "зеркало", + "sentence": "She looked at herself in the bathroom ___.", + "options": [ + "mirror", + "window", + "picture", + "corner" + ], + "explanation": "Mirror (зеркало) — стеклянная поверхность, отражающая изображение." + }, + { + "level": "A1", + "term": "market", + "pos": "noun", + "phonetic": "/ˈmɑː.kɪt/", + "translation": "рынок, базар", + "sentence": "We buy fresh fruit every Saturday at the local ___.", + "options": [ + "market", + "hospital", + "station", + "library" + ], + "explanation": "Market (рынок) — место торговли свежими продуктами и вещами." + }, + { + "level": "A1", + "term": "bridge", + "pos": "noun", + "phonetic": "/brɪdʒ/", + "translation": "мост", + "sentence": "The old stone ___ crosses the wide river.", + "options": [ + "bridge", + "village", + "island", + "corner" + ], + "explanation": "Bridge (мост) — сооружение для перехода через реку или дорогу." + }, + { + "level": "A1", + "term": "corner", + "pos": "noun", + "phonetic": "/ˈkɔː.nər/", + "translation": "угол", + "sentence": "There is a small bakery on the ___ of our street.", + "options": [ + "corner", + "mirror", + "bottle", + "pocket" + ], + "explanation": "Corner (угол) — место пересечения двух стен или улиц." + }, + { + "level": "A1", + "term": "cloud", + "pos": "noun", + "phonetic": "/klaʊd/", + "translation": "облако, туча", + "sentence": "Look at that dark ___ in the sky; it will rain soon.", + "options": [ + "cloud", + "weather", + "season", + "island" + ], + "explanation": "Cloud (облако, туча) — скопление водяных паров на небе." + }, + { + "level": "A1", + "term": "floor", + "pos": "noun", + "phonetic": "/flɔːr/", + "translation": "пол, этаж", + "sentence": "Our new apartment is on the third ___.", + "options": [ + "floor", + "corner", + "market", + "bridge" + ], + "explanation": "Floor (пол, этаж) — ярус в здании или нижняя поверхность комнаты." + }, + { + "level": "A1", + "term": "laugh", + "pos": "verb", + "phonetic": "/lɑːf/", + "translation": "смеяться", + "sentence": "The funny comedy movie made everybody ___.", + "options": [ + "laugh", + "listen", + "borrow", + "decide" + ], + "explanation": "Laugh (смеяться) — выражать радость или веселье характерными звуками." + }, + { + "level": "A1", + "term": "shout", + "pos": "verb", + "phonetic": "/ʃaʊt/", + "translation": "кричать", + "sentence": "Please do not ___ inside the quiet library.", + "options": [ + "shout", + "whisper", + "invite", + "repeat" + ], + "explanation": "Shout (кричать) — издавать громкий звук голосом." + }, + { + "level": "A1", + "term": "wash", + "pos": "verb", + "phonetic": "/wɒʃ/", + "translation": "мыть, стирать", + "sentence": "Remember to ___ your hands before having dinner.", + "options": [ + "wash", + "borrow", + "travel", + "listen" + ], + "explanation": "Wash (мыть) — очищать водой с мылом." + }, + { + "level": "A1", + "term": "catch", + "pos": "verb", + "phonetic": "/kætʃ/", + "translation": "ловить, успеть (на транспорт)", + "sentence": "We must run quickly to ___ the morning bus.", + "options": [ + "catch", + "throw", + "decide", + "invite" + ], + "explanation": "Catch (ловить, успевать) — поймать предмет или успеть сесть на транспорт." + }, + { + "level": "A1", + "term": "throw", + "pos": "verb", + "phonetic": "/θrəʊ/", + "translation": "бросать, кидать", + "sentence": "He tried to ___ the ball over the tall wall.", + "options": [ + "throw", + "catch", + "wash", + "borrow" + ], + "explanation": "Throw (бросать) — метать предмет движением руки." + }, + { + "level": "A1", + "term": "build", + "pos": "verb", + "phonetic": "/bɪld/", + "translation": "строить", + "sentence": "They plan to ___ a new school in our neighborhood.", + "options": [ + "build", + "borrow", + "destroy", + "invite" + ], + "explanation": "Build (строить) — возводить здание или конструкцию." + }, + { + "level": "A1", + "term": "climb", + "pos": "verb", + "phonetic": "/klaɪm/", + "translation": "взбираться, карабкаться", + "sentence": "Children love to ___ the big trees in the park.", + "options": [ + "climb", + "throw", + "catch", + "repeat" + ], + "explanation": "Climb (взбираться) — подниматься вверх, цепляясь руками и ногами." + }, + { + "level": "A1", + "term": "heavy", + "pos": "adjective", + "phonetic": "/ˈhev.i/", + "translation": "тяжелый", + "sentence": "This suitcase is too ___ for me to carry alone.", + "options": [ + "heavy", + "light", + "clean", + "simple" + ], + "explanation": "Heavy (тяжелый) — имеющий большой вес." + }, + { + "level": "A1", + "term": "narrow", + "pos": "adjective", + "phonetic": "/ˈnær.əʊ/", + "translation": "узкий", + "sentence": "The car could not drive down the ___ street.", + "options": [ + "narrow", + "wide", + "expensive", + "famous" + ], + "explanation": "Narrow (узкий) — имеющий небольшую ширину." + }, + { + "level": "A1", + "term": "empty", + "pos": "adjective", + "phonetic": "/ˈemp.ti/", + "translation": "пустой", + "sentence": "The fuel tank is completely ___, so we must stop.", + "options": [ + "empty", + "heavy", + "healthy", + "boring" + ], + "explanation": "Empty (пустой) — не содержащий ничего внутри." + }, + { + "level": "A1", + "term": "hungry", + "pos": "adjective", + "phonetic": "/ˈhʌŋ.ɡri/", + "translation": "голодный", + "sentence": "After the long walk in the forest, we were very ___.", + "options": [ + "hungry", + "thirsty", + "careful", + "dangerous" + ], + "explanation": "Hungry (голодный) — испытывающий потребность в еде." + }, + { + "level": "A1", + "term": "thirsty", + "pos": "adjective", + "phonetic": "/ˈθɜː.sti/", + "translation": "испытывающий жажду", + "sentence": "Drink some water if you feel ___ after running.", + "options": [ + "thirsty", + "hungry", + "empty", + "heavy" + ], + "explanation": "Thirsty (испытывающий жажду) — желающий пить воду." + }, + { + "level": "A1", + "term": "quiet", + "pos": "adjective", + "phonetic": "/ˈkwaɪ.ət/", + "translation": "тихий, спокойный", + "sentence": "This is a very ___ library where people study peacefully.", + "options": [ + "quiet", + "loud", + "dangerous", + "careful" + ], + "explanation": "Quiet (тихий) — не производящий шума, спокойный." + }, + { + "level": "A1", + "term": "loud", + "pos": "adjective", + "phonetic": "/laʊd/", + "translation": "громкий, шумный", + "sentence": "The music was so ___ that I could not hear your voice.", + "options": [ + "loud", + "quiet", + "simple", + "clean" + ], + "explanation": "Loud (громкий) — обладающий большой силой звука." + }, + { + "level": "A1", + "term": "clever", + "pos": "adjective", + "phonetic": "/ˈklev.ər/", + "translation": "умный, сообразительный", + "sentence": "She found a very ___ solution to that difficult riddle.", + "options": [ + "clever", + "wrong", + "boring", + "dangerous" + ], + "explanation": "Clever (сообразительный, умный) — быстро понимающий и находчивый." + }, + { + "level": "A1", + "term": "blanket", + "pos": "noun", + "phonetic": "/ˈblæŋ.kɪt/", + "translation": "одеяло, плед", + "sentence": "It was cold, so she put a warm ___ over the bed.", + "options": [ + "blanket", + "package", + "mirror", + "pocket" + ], + "explanation": "Blanket (одеяло, плед) — теплое шерстяное или хлопковое покрывало." + }, + { + "level": "A2", + "term": "necessary", + "pos": "adjective", + "phonetic": "/ˈnes.ə.ser.i/", + "translation": "необходимый, нужный", + "sentence": "Good sleep is ___ for maintaining proper physical health.", + "options": [ + "necessary", + "temporary", + "available", + "convenient" + ], + "explanation": "Necessary (необходимый) — требуется или обязательно для чего-либо." + }, + { + "level": "A2", + "term": "improve", + "pos": "verb", + "phonetic": "/ɪmˈpruːv/", + "translation": "улучшать, совершенствовать", + "sentence": "Reading articles in English helps to ___ your vocabulary.", + "options": [ + "improve", + "damage", + "refuse", + "doubt" + ], + "explanation": "Improve (улучшать) — делать что-то лучше или качественнее." + }, + { + "level": "A2", + "term": "environment", + "pos": "noun", + "phonetic": "/ɪnˈvaɪ.rən.mənt/", + "translation": "окружающая среда", + "sentence": "Solar energy is clean and protects the ___.", + "options": [ + "environment", + "culture", + "condition", + "experience" + ], + "explanation": "Environment (окружающая среда) — природный мир вокруг нас." + }, + { + "level": "A2", + "term": "believe", + "pos": "verb", + "phonetic": "/bɪˈliːv/", + "translation": "верить, полагать", + "sentence": "I truly ___ that consistent effort brings great results.", + "options": [ + "believe", + "remind", + "avoid", + "refuse" + ], + "explanation": "Believe (верить) — быть уверенным в правдивости чего-либо." + }, + { + "level": "A2", + "term": "experience", + "pos": "noun", + "phonetic": "/ɪkˈspɪə.ri.əns/", + "translation": "опыт", + "sentence": "The applicant has four years of direct practical ___.", + "options": [ + "experience", + "opinion", + "solution", + "culture" + ], + "explanation": "Experience (опыт) — знания и навыки, полученные в процессе деятельности." + }, + { + "level": "A2", + "term": "describe", + "pos": "verb", + "phonetic": "/dɪˈskraɪb/", + "translation": "описывать", + "sentence": "Can you ___ what the missing backpack looks like?", + "options": [ + "describe", + "connect", + "afford", + "damage" + ], + "explanation": "Describe (описывать) — рассказывать о признаках или свойствах предмета." + }, + { + "level": "A2", + "term": "choice", + "pos": "noun", + "phonetic": "/tʃɔɪs/", + "translation": "выбор", + "sentence": "Customers have a wide ___ of fresh dishes on the menu.", + "options": [ + "choice", + "condition", + "reason", + "degree" + ], + "explanation": "Choice (выбор) — возможность предпочесть один вариант другому." + }, + { + "level": "A2", + "term": "condition", + "pos": "noun", + "phonetic": "/kənˈdɪʃ.ən/", + "translation": "состояние, условие", + "sentence": "The used bicycle is still in nearly perfect ___.", + "options": [ + "condition", + "solution", + "opinion", + "culture" + ], + "explanation": "Condition (состояние) — физическая форма или сохранность объекта." + }, + { + "level": "A2", + "term": "explain", + "pos": "verb", + "phonetic": "/ɪkˈspleɪn/", + "translation": "объяснять", + "sentence": "The engineer will ___ how to configure the router.", + "options": [ + "explain", + "refuse", + "avoid", + "doubt" + ], + "explanation": "Explain (объяснять) — делать понятным логику или механизм." + }, + { + "level": "A2", + "term": "reason", + "pos": "noun", + "phonetic": "/ˈriː.zən/", + "translation": "причина, повод", + "sentence": "The main ___ for his absence was a sudden fever.", + "options": [ + "reason", + "effect", + "degree", + "habit" + ], + "explanation": "Reason (причина) — основание или повод для какого-либо события." + }, + { + "level": "A2", + "term": "succeed", + "pos": "verb", + "phonetic": "/səkˈsiːd/", + "translation": "преуспевать, добиваться успеха", + "sentence": "If you prepare thoroughly, you will ___ in your exam.", + "options": [ + "succeed", + "fail", + "refuse", + "avoid" + ], + "explanation": "Succeed (преуспевать) — достигать желаемой цели." + }, + { + "level": "A2", + "term": "afford", + "pos": "verb", + "phonetic": "/əˈfɔːd/", + "translation": "позволить себе (финансово)", + "sentence": "We cannot ___ to rent such an expensive apartment right now.", + "options": [ + "afford", + "connect", + "damage", + "manage" + ], + "explanation": "Afford (позволить себе) — иметь достаточно денег или ресурсов." + }, + { + "level": "A2", + "term": "arrange", + "pos": "verb", + "phonetic": "/əˈreɪndʒ/", + "translation": "организовывать, договариваться", + "sentence": "Let's ___ a video call for Friday morning.", + "options": [ + "arrange", + "refuse", + "damage", + "doubt" + ], + "explanation": "Arrange (организовывать) — согласовать план или встречу." + }, + { + "level": "A2", + "term": "avoid", + "pos": "verb", + "phonetic": "/əˈvɔɪd/", + "translation": "избегать, уклоняться", + "sentence": "Drivers should always ___ speeding in residential areas.", + "options": [ + "avoid", + "afford", + "protect", + "support" + ], + "explanation": "Avoid (избегать) — стараться не допустить нежелательного действия." + }, + { + "level": "A2", + "term": "compare", + "pos": "verb", + "phonetic": "/kəmˈpeər/", + "translation": "сравнивать", + "sentence": "It is useful to ___ prices before buying airline tickets.", + "options": [ + "compare", + "connect", + "damage", + "refuse" + ], + "explanation": "Compare (сравнивать) — сопоставлять объекты для выявления различий." + }, + { + "level": "A2", + "term": "complete", + "pos": "verb", + "phonetic": "/kəmˈpliːt/", + "translation": "завершать, заполнять", + "sentence": "Please ___ the online registration form to continue.", + "options": [ + "complete", + "remind", + "manage", + "avoid" + ], + "explanation": "Complete (завершать, заполнять) — доводить дело или форму до конца." + }, + { + "level": "A2", + "term": "connect", + "pos": "verb", + "phonetic": "/kəˈnekt/", + "translation": "соединять, подключать", + "sentence": "Plug in the cable to ___ your phone to the computer.", + "options": [ + "connect", + "damage", + "refuse", + "doubt" + ], + "explanation": "Connect (подключать) — устанавливать физическую или логическую связь." + }, + { + "level": "A2", + "term": "contain", + "pos": "verb", + "phonetic": "/kənˈteɪn/", + "translation": "содержать в себе", + "sentence": "These citrus fruits ___ large quantities of vitamin C.", + "options": [ + "contain", + "expect", + "manage", + "refuse" + ], + "explanation": "Contain (содержать) — включать в свой состав." + }, + { + "level": "A2", + "term": "crowd", + "pos": "noun", + "phonetic": "/kraʊd/", + "translation": "толпа людей", + "sentence": "A cheering ___ filled the stadium during the game.", + "options": [ + "crowd", + "flight", + "future", + "habit" + ], + "explanation": "Crowd (толпа) — большое скопление людей в одном месте." + }, + { + "level": "A2", + "term": "culture", + "pos": "noun", + "phonetic": "/ˈkʌl.tʃər/", + "translation": "культура", + "sentence": "Living abroad exposes you to a totally different ___.", + "options": [ + "culture", + "condition", + "degree", + "solution" + ], + "explanation": "Culture (культура) — традиции, обычаи и образ жизни народа." + }, + { + "level": "A2", + "term": "damage", + "pos": "noun", + "phonetic": "/ˈdæm.ɪdʒ/", + "translation": "ущерб, повреждение", + "sentence": "The hailstorm caused severe ___ to the parked cars.", + "options": [ + "damage", + "effect", + "reason", + "choice" + ], + "explanation": "Damage (ущерб) — физический вред или разрушение предметов." + }, + { + "level": "A2", + "term": "degree", + "pos": "noun", + "phonetic": "/dɪˈɡriː/", + "translation": "градус, степень", + "sentence": "The temperature dropped by five ___ during the night.", + "options": [ + "degree", + "condition", + "reason", + "choice" + ], + "explanation": "Degree (градус) — единица измерения температуры или угла." + }, + { + "level": "A2", + "term": "depend", + "pos": "verb", + "phonetic": "/dɪˈpend/", + "translation": "зависеть", + "sentence": "Whether we go hiking will ___ on the weather tomorrow.", + "options": [ + "depend", + "expect", + "manage", + "refuse" + ], + "explanation": "Depend (зависеть) — определяться внешними факторами." + }, + { + "level": "A2", + "term": "discover", + "pos": "verb", + "phonetic": "/dɪˈskʌv.ər/", + "translation": "открывать, обнаруживать", + "sentence": "Researchers hope to ___ cleaner methods of energy production.", + "options": [ + "discover", + "damage", + "avoid", + "refuse" + ], + "explanation": "Discover (обнаруживать) — находить ранее неизвестное." + }, + { + "level": "A2", + "term": "discuss", + "pos": "verb", + "phonetic": "/dɪˈskʌs/", + "translation": "обсуждать", + "sentence": "Let's gather in the conference room to ___ the roadmap.", + "options": [ + "discuss", + "refuse", + "damage", + "avoid" + ], + "explanation": "Discuss (обсуждать) — обмениваться мнениями по вопросу." + }, + { + "level": "A2", + "term": "doubt", + "pos": "noun", + "phonetic": "/daʊt/", + "translation": "сомнение", + "sentence": "There is no ___ that he is telling the absolute truth.", + "options": [ + "doubt", + "habit", + "crowd", + "flight" + ], + "explanation": "Doubt (сомнение) — отсутствие твердой уверенности." + }, + { + "level": "A2", + "term": "effect", + "pos": "noun", + "phonetic": "/ɪˈfekt/", + "translation": "эффект, следствие", + "sentence": "The new law had a noticeable positive ___ on the economy.", + "options": [ + "effect", + "reason", + "degree", + "choice" + ], + "explanation": "Effect (эффект) — результат или последствие определенного действия." + }, + { + "level": "A2", + "term": "energy", + "pos": "noun", + "phonetic": "/ˈen.ə.dʒi/", + "translation": "энергия, силы", + "sentence": "Running every morning gives me a lot of positive ___.", + "options": [ + "energy", + "culture", + "condition", + "solution" + ], + "explanation": "Energy (энергия) — физическая или моральная сила для действий." + }, + { + "level": "A2", + "term": "expect", + "pos": "verb", + "phonetic": "/ɪkˈspekt/", + "translation": "ожидать, рассчитывать", + "sentence": "We ___ the parcel to arrive before five in the afternoon.", + "options": [ + "expect", + "refuse", + "damage", + "avoid" + ], + "explanation": "Expect (ожидать) — рассчитывать на наступление события." + }, + { + "level": "A2", + "term": "fail", + "pos": "verb", + "phonetic": "/feɪl/", + "translation": "потерпеть неудачу, провалить", + "sentence": "If students do not study, they may ___ the final test.", + "options": [ + "fail", + "succeed", + "manage", + "support" + ], + "explanation": "Fail (провалить) — не справиться с поставленной задачей." + }, + { + "level": "A2", + "term": "flight", + "pos": "noun", + "phonetic": "/flaɪt/", + "translation": "рейс, полет", + "sentence": "Their transatlantic ___ was smooth and arrived on time.", + "options": [ + "flight", + "crowd", + "habit", + "future" + ], + "explanation": "Flight (рейс, полет) — путешествие на воздушном судне." + }, + { + "level": "A2", + "term": "future", + "pos": "noun", + "phonetic": "/ˈfjuː.tʃər/", + "translation": "будущее", + "sentence": "Artificial intelligence will transform the ___ of work.", + "options": [ + "future", + "culture", + "flight", + "condition" + ], + "explanation": "Future (будущее) — время, которое еще предстоит пережить." + }, + { + "level": "A2", + "term": "guess", + "pos": "noun", + "phonetic": "/ɡes/", + "translation": "догадка, предположение", + "sentence": "If you don't know the exact answer, make an educated ___.", + "options": [ + "guess", + "choice", + "reason", + "degree" + ], + "explanation": "Guess (догадка) — предположение без точных данных." + }, + { + "level": "A2", + "term": "habit", + "pos": "noun", + "phonetic": "/ˈhæb.ɪt/", + "translation": "привычка", + "sentence": "Brushing your teeth before bed is a healthy personal ___.", + "options": [ + "habit", + "crowd", + "flight", + "future" + ], + "explanation": "Habit (привычка) — регулярное автоматическое действие." + }, + { + "level": "A2", + "term": "happen", + "pos": "verb", + "phonetic": "/ˈhæp.ən/", + "translation": "случаться, происходить", + "sentence": "Nobody predicted that such an accident could ___.", + "options": [ + "happen", + "refuse", + "avoid", + "damage" + ], + "explanation": "Happen (происходить) — иметь место, совершаться." + }, + { + "level": "A2", + "term": "imagine", + "pos": "verb", + "phonetic": "/ɪˈmædʒ.ɪn/", + "translation": "представлять, воображать", + "sentence": "It is hard to ___ modern life without high-speed internet.", + "options": [ + "imagine", + "refuse", + "damage", + "avoid" + ], + "explanation": "Imagine (воображать) — создавать мысленный образ в голове." + }, + { + "level": "A2", + "term": "manage", + "pos": "verb", + "phonetic": "/ˈmæn.ɪdʒ/", + "translation": "справляться, суметь сделать", + "sentence": "Despite heavy traffic, she did ___ to reach the office on time.", + "options": [ + "manage", + "refuse", + "avoid", + "damage" + ], + "explanation": "Manage (справляться) — успешно преодолеть трудность и выполнить дело." + }, + { + "level": "A2", + "term": "nature", + "pos": "noun", + "phonetic": "/ˈneɪ.tʃər/", + "translation": "природа", + "sentence": "A weekend hike in the woods lets you enjoy pure ___.", + "options": [ + "nature", + "culture", + "crowd", + "flight" + ], + "explanation": "Nature (природа) — естественный мир растений, животных и ландшафтов." + }, + { + "level": "A2", + "term": "notice", + "pos": "verb", + "phonetic": "/ˈnəʊ.tɪs/", + "translation": "замечать, обращать внимание", + "sentence": "Did you ___ that the bookstore moved to another street?", + "options": [ + "notice", + "refuse", + "damage", + "avoid" + ], + "explanation": "Notice (замечать) — зафиксировать что-то зрением или вниманием." + }, + { + "level": "A2", + "term": "opinion", + "pos": "noun", + "phonetic": "/əˈpɪn.jən/", + "translation": "мнение, точка зрения", + "sentence": "In my humble ___, this is the tastiest coffee in town.", + "options": [ + "opinion", + "condition", + "solution", + "reason" + ], + "explanation": "Opinion (мнение) — личная оценка или суждение о предмете." + }, + { + "level": "A2", + "term": "accident", + "pos": "noun", + "phonetic": "/ˈæk.sɪ.dənt/", + "translation": "авария, несчастный случай", + "sentence": "He had a minor car ___ because of the slippery road.", + "options": [ + "accident", + "condition", + "flight", + "habit" + ], + "explanation": "Accident (авария, несчастный случай) — непредвиденное происшествие с ущербом." + }, + { + "level": "A2", + "term": "advice", + "pos": "noun", + "phonetic": "/ədˈvaɪs/", + "translation": "совет", + "sentence": "My teacher gave me great ___ on how to prepare for exams.", + "options": [ + "advice", + "opinion", + "reason", + "culture" + ], + "explanation": "Advice (совет) — полезная рекомендация или наставление." + }, + { + "level": "A2", + "term": "compete", + "pos": "verb", + "phonetic": "/kəmˈpiːt/", + "translation": "соревноваться, состязаться", + "sentence": "Athletes from thirty countries will ___ in the tournament.", + "options": [ + "compete", + "compare", + "contain", + "succeed" + ], + "explanation": "Compete (соревноваться) — стремиться к победе в состязании с другими." + }, + { + "level": "A2", + "term": "customer", + "pos": "noun", + "phonetic": "/ˈkʌs.tə.mər/", + "translation": "клиент, покупатель", + "sentence": "The shop assistant was polite and helped every ___.", + "options": [ + "customer", + "passenger", + "crowd", + "flight" + ], + "explanation": "Customer (клиент, покупатель) — лицо, приобретающее товары или услуги." + }, + { + "level": "A2", + "term": "earn", + "pos": "verb", + "phonetic": "/ɜːn/", + "translation": "зарабатывать", + "sentence": "He works overtime to ___ enough money for a new laptop.", + "options": [ + "earn", + "afford", + "borrow", + "spend" + ], + "explanation": "Earn (зарабатывать) — получать деньги за выполняемую работу." + }, + { + "level": "A2", + "term": "equipment", + "pos": "noun", + "phonetic": "/ɪˈkwɪp.mənt/", + "translation": "оборудование, снаряжение", + "sentence": "Make sure you bring the right sports ___ for camping.", + "options": [ + "equipment", + "environment", + "culture", + "condition" + ], + "explanation": "Equipment (оборудование, снаряжение) — необходимые инструменты или вещи для занятия." + }, + { + "level": "A2", + "term": "patient", + "pos": "adjective", + "phonetic": "/ˈpeɪ.ʃənt/", + "translation": "терпеливый", + "sentence": "Teachers need to be very ___ with young beginner students.", + "options": [ + "patient", + "careful", + "dangerous", + "healthy" + ], + "explanation": "Patient (терпеливый) — способный спокойно переносить трудности или ожидание." + }, + { + "level": "A2", + "term": "pollute", + "pos": "verb", + "phonetic": "/pəˈluːt/", + "translation": "загрязнять", + "sentence": "Factories should not ___ the air with toxic smoke.", + "options": [ + "pollute", + "improve", + "protect", + "contain" + ], + "explanation": "Pollute (загрязнять) — делать окружающую среду грязной или вредной." + }, + { + "level": "A2", + "term": "proud", + "pos": "adjective", + "phonetic": "/praʊd/", + "translation": "гордый (испытывающий гордость)", + "sentence": "Her parents were very ___ when she won first prize.", + "options": [ + "proud", + "disappointed", + "jealous", + "afraid" + ], + "explanation": "Proud (гордый) — испытывающий чувство глубокого удовлетворения за успех." + }, + { + "level": "A2", + "term": "refuse", + "pos": "verb", + "phonetic": "/rɪˈfjuːz/", + "translation": "отказываться", + "sentence": "I had to ___ his invitation because of urgent work.", + "options": [ + "refuse", + "accept", + "decide", + "suggest" + ], + "explanation": "Refuse (отказываться) — отклонить предложение или просьбу." + }, + { + "level": "A2", + "term": "repair", + "pos": "verb", + "phonetic": "/rɪˈpeər/", + "translation": "чинить, ремонтировать", + "sentence": "Can you help me ___ this broken bicycle wheel?", + "options": [ + "repair", + "damage", + "destroy", + "improve" + ], + "explanation": "Repair (ремонтировать) — восстанавливать поврежденный предмет." + }, + { + "level": "A2", + "term": "salary", + "pos": "noun", + "phonetic": "/ˈsæl.ər.i/", + "translation": "заработная плата", + "sentence": "They offered him a higher monthly ___ in the new position.", + "options": [ + "salary", + "ticket", + "package", + "damage" + ], + "explanation": "Salary (зарплата) — регулярная оплата труда работника." + }, + { + "level": "A2", + "term": "separate", + "pos": "adjective", + "phonetic": "/ˈsep.ər.ət/", + "translation": "отдельный, раздельный", + "sentence": "The children sleep in ___ rooms on the second floor.", + "options": [ + "separate", + "connected", + "complete", + "necessary" + ], + "explanation": "Separate (отдельный) — находящийся отдельно от других, не соединенный." + }, + { + "level": "A2", + "term": "strange", + "pos": "adjective", + "phonetic": "/streɪndʒ/", + "translation": "странный, необычный", + "sentence": "I heard a ___ noise coming from the basement at midnight.", + "options": [ + "strange", + "simple", + "famous", + "boring" + ], + "explanation": "Strange (странный) — непривычный, вызывающий удивление или недоумение." + }, + { + "level": "A2", + "term": "traffic", + "pos": "noun", + "phonetic": "/ˈtræf.ɪk/", + "translation": "дорожное движение", + "sentence": "There was heavy ___ on the highway, so we arrived late.", + "options": [ + "traffic", + "flight", + "crowd", + "weather" + ], + "explanation": "Traffic (дорожное движение) — поток транспортных средств на дороге." + }, + { + "level": "A2", + "term": "urgent", + "pos": "adjective", + "phonetic": "/ˈɜː.dʒənt/", + "translation": "срочный, неотложный", + "sentence": "The doctor received an ___ phone call from the clinic.", + "options": [ + "urgent", + "patient", + "boring", + "slow" + ], + "explanation": "Urgent (срочный) — требующий немедленного внимания или действия." + }, + { + "level": "A2", + "term": "warn", + "pos": "verb", + "phonetic": "/wɔːn/", + "translation": "предупреждать", + "sentence": "The guard tried to ___ the tourists about the thin ice.", + "options": [ + "warn", + "invite", + "explain", + "interrupt" + ], + "explanation": "Warn (предупреждать) — заранее извещать об опасности или неприятности." + }, + { + "level": "A2", + "term": "attend", + "pos": "verb", + "phonetic": "/əˈtend/", + "translation": "посещать, присутствовать", + "sentence": "All staff members are required to ___ the weekly meeting.", + "options": [ + "attend", + "avoid", + "expect", + "improve" + ], + "explanation": "Attend (посещать) — присутствовать на собрании, уроке или мероприятии." + }, + { + "level": "A2", + "term": "benefit", + "pos": "noun", + "phonetic": "/ˈben.ɪ.fɪt/", + "translation": "польза, выгода, преимущество", + "sentence": "Regular exercise offers an enormous health ___ for everyone.", + "options": [ + "benefit", + "damage", + "condition", + "accident" + ], + "explanation": "Benefit (польза, выгода) — положительный эффект или преимущество." + }, + { + "level": "A2", + "term": "celebrate", + "pos": "verb", + "phonetic": "/ˈsel.ə.breɪt/", + "translation": "праздновать, отмечать", + "sentence": "We gathered together to ___ her graduation with a cake.", + "options": [ + "celebrate", + "compete", + "describe", + "separate" + ], + "explanation": "Celebrate (праздновать) — отмечать радостное событие или праздник." + }, + { + "level": "A2", + "term": "protect", + "pos": "verb", + "phonetic": "/prəˈtekt/", + "translation": "защищать, оберегать", + "sentence": "Sunglasses ___ your eyes from strong ultraviolet rays.", + "options": [ + "protect", + "pollute", + "damage", + "interrupt" + ], + "explanation": "Protect (защищать) — предохранять от вреда, опасности или повреждений." + }, + { + "level": "A2", + "term": "remain", + "pos": "verb", + "phonetic": "/rɪˈmeɪn/", + "translation": "оставаться", + "sentence": "Please ___ seated until the aircraft comes to a stop.", + "options": [ + "remain", + "depart", + "change", + "connect" + ], + "explanation": "Remain (оставаться) — продолжать находиться в прежнем месте или состоянии." + }, + { + "level": "A2", + "term": "suggest", + "pos": "verb", + "phonetic": "/səˈdʒest/", + "translation": "предлагать, советовать", + "sentence": "Can you ___ a good Italian restaurant downtown?", + "options": [ + "suggest", + "refuse", + "warn", + "guess" + ], + "explanation": "Suggest (предлагать) — высказать идею, рекомендацию или вариант выбора." + }, + { + "level": "A2", + "term": "transport", + "pos": "noun", + "phonetic": "/ˈtræn.spɔːt/", + "translation": "транспорт", + "sentence": "Public ___ in the capital is fast, clean, and reliable.", + "options": [ + "transport", + "traffic", + "flight", + "journey" + ], + "explanation": "Transport (транспорт) — средства перевозки людей и грузов." + }, + { + "level": "A2", + "term": "wealthy", + "pos": "adjective", + "phonetic": "/ˈwel.θi/", + "translation": "богатый, состоятельный", + "sentence": "He comes from a ___ family that owns several businesses.", + "options": [ + "wealthy", + "expensive", + "proud", + "patient" + ], + "explanation": "Wealthy (состоятельный) — обладающий большим богатством или имуществом." + }, + { + "level": "B1", + "term": "decision", + "pos": "noun", + "phonetic": "/dɪˈsɪʒ.ən/", + "translation": "решение", + "sentence": "Choosing a career path is a major life ___.", + "options": [ + "decision", + "opportunity", + "relationship", + "behavior" + ], + "explanation": "Decision (решение) — сделанный выбор или заключение после размышлений." + }, + { + "level": "B1", + "term": "achieve", + "pos": "verb", + "phonetic": "/əˈtʃiːv/", + "translation": "достигать (цели)", + "sentence": "With persistent practice, you can ___ fluency in English.", + "options": [ + "achieve", + "interrupt", + "hesitate", + "negotiate" + ], + "explanation": "Achieve (достигать) — успешно завершить запланированное упорным трудом." + }, + { + "level": "B1", + "term": "community", + "pos": "noun", + "phonetic": "/kəˈmjuː.nə.ti/", + "translation": "сообщество, общественность", + "sentence": "The local ___ gathered to build a new playground.", + "options": [ + "community", + "relationship", + "behavior", + "mystery" + ], + "explanation": "Community (сообщество) — группа людей, объединенных общим местом или интересами." + }, + { + "level": "B1", + "term": "convenient", + "pos": "adjective", + "phonetic": "/kənˈviː.ni.ənt/", + "translation": "удобный, подходящий", + "sentence": "Living near a subway station is extremely ___ for commuting.", + "options": [ + "convenient", + "generous", + "jealous", + "temporary" + ], + "explanation": "Convenient (удобный) — подходящий по расположению или времени, экономящий силы." + }, + { + "level": "B1", + "term": "develop", + "pos": "verb", + "phonetic": "/dɪˈvel.əp/", + "translation": "развивать, разрабатывать", + "sentence": "Our engineering squad will ___ a modern backend service.", + "options": [ + "develop", + "hesitate", + "interrupt", + "negotiate" + ], + "explanation": "Develop (разрабатывать) — создавать, улучшать и развивать продукт." + }, + { + "level": "B1", + "term": "opportunity", + "pos": "noun", + "phonetic": "/ˌɒp.əˈtʃuː.nə.ti/", + "translation": "возможность, шанс", + "sentence": "An internship abroad provides a rare ___ to gain global experience.", + "options": [ + "opportunity", + "consequence", + "requirement", + "behavior" + ], + "explanation": "Opportunity (возможность) — благоприятное стечение обстоятельств." + }, + { + "level": "B1", + "term": "relationship", + "pos": "noun", + "phonetic": "/rɪˈleɪ.ʃən.ʃɪp/", + "translation": "отношения, взаимосвязь", + "sentence": "Mutual trust is essential for building a lasting professional ___.", + "options": [ + "relationship", + "community", + "behavior", + "mystery" + ], + "explanation": "Relationship (отношения) — связь и взаимодействие между людьми." + }, + { + "level": "B1", + "term": "behavior", + "pos": "noun", + "phonetic": "/bɪˈheɪ.vjər/", + "translation": "поведение", + "sentence": "The teacher commended the student for respectful classroom ___.", + "options": [ + "behavior", + "community", + "decision", + "mystery" + ], + "explanation": "Behavior (поведение) — манера вести себя и действовать." + }, + { + "level": "B1", + "term": "challenge", + "pos": "noun", + "phonetic": "/ˈtʃæl.ɪndʒ/", + "translation": "сложная задача, вызов", + "sentence": "Migrating a legacy database is always a serious technical ___.", + "options": [ + "challenge", + "opportunity", + "consequence", + "requirement" + ], + "explanation": "Challenge (вызов) — сложная задача, требующая усилий." + }, + { + "level": "B1", + "term": "consequence", + "pos": "noun", + "phonetic": "/ˈkɒn.sɪ.kwəns/", + "translation": "последствие", + "sentence": "Losing your data is a direct ___ of not keeping backups.", + "options": [ + "consequence", + "community", + "behavior", + "opportunity" + ], + "explanation": "Consequence (последствие) — результат, вытекающий из действия." + }, + { + "level": "B1", + "term": "consider", + "pos": "verb", + "phonetic": "/kənˈsɪd.ər/", + "translation": "обдумывать, учитывать", + "sentence": "You should carefully ___ all pros and cons before signing.", + "options": [ + "consider", + "hesitate", + "interrupt", + "negotiate" + ], + "explanation": "Consider (обдумывать) — взвешивать факторы перед решением." + }, + { + "level": "B1", + "term": "definitely", + "pos": "adverb", + "phonetic": "/ˈdef.ɪ.nət.li/", + "translation": "определенно, точно", + "sentence": "I will ___ finish this pull request before leaving today.", + "options": [ + "definitely", + "fluently", + "generously", + "logically" + ], + "explanation": "Definitely (определенно) — без малейших сомнений." + }, + { + "level": "B1", + "term": "disappointed", + "pos": "adjective", + "phonetic": "/ˌdɪs.əˈpɔɪn.tɪd/", + "translation": "разочарованный", + "sentence": "We felt ___ when our favorite restaurant was closed.", + "options": [ + "disappointed", + "confident", + "generous", + "sensible" + ], + "explanation": "Disappointed (разочарованный) — огорченный несбывшимися ожиданиями." + }, + { + "level": "B1", + "term": "encourage", + "pos": "verb", + "phonetic": "/ɪnˈkʌr.ɪdʒ/", + "translation": "поощрять, подбадривать", + "sentence": "Mentors should always ___ beginners when learning new skills.", + "options": [ + "encourage", + "interrupt", + "hesitate", + "negotiate" + ], + "explanation": "Encourage (поощрять) — вселять уверенность и поддерживать." + }, + { + "level": "B1", + "term": "essential", + "pos": "adjective", + "phonetic": "/ɪˈsen.ʃəl/", + "translation": "существенный, неотъемлемый", + "sentence": "Writing tests is an ___ part of production software engineering.", + "options": [ + "essential", + "temporary", + "jealous", + "modest" + ], + "explanation": "Essential (существенный) — фундаментально важный." + }, + { + "level": "B1", + "term": "fluent", + "pos": "adjective", + "phonetic": "/ˈfluː.ənt/", + "translation": "беглый, свободно говорящий", + "sentence": "After years in London, she became completely ___ in English.", + "options": [ + "fluent", + "generous", + "modest", + "logical" + ], + "explanation": "Fluent (беглый) — способный свободно и без запинок говорить на языке." + }, + { + "level": "B1", + "term": "generous", + "pos": "adjective", + "phonetic": "/ˈdʒen.ər.əs/", + "translation": "щедрый, великодушный", + "sentence": "The sponsor made a very ___ contribution to the charity.", + "options": [ + "generous", + "jealous", + "temporary", + "sensible" + ], + "explanation": "Generous (щедрый) — готовый охотно делиться ресурсами." + }, + { + "level": "B1", + "term": "hesitate", + "pos": "verb", + "phonetic": "/ˈhez.ɪ.teɪt/", + "translation": "колебаться, сомневаться", + "sentence": "Please do not ___ to ask if any requirement is unclear.", + "options": [ + "hesitate", + "negotiate", + "achieve", + "interrupt" + ], + "explanation": "Hesitate (колебаться) — медлить из-за сомнений или нерешительности." + }, + { + "level": "B1", + "term": "influence", + "pos": "noun", + "phonetic": "/ˈɪn.flu.əns/", + "translation": "влияние, воздействие", + "sentence": "Good books have a deep positive ___ on personal growth.", + "options": [ + "influence", + "behavior", + "mystery", + "challenge" + ], + "explanation": "Influence (влияние) — сила воздействия на мысли или действия других." + }, + { + "level": "B1", + "term": "interrupt", + "pos": "verb", + "phonetic": "/ˌɪn.təˈrʌpt/", + "translation": "перебивать, прерывать", + "sentence": "It is impolite to ___ colleagues while they present their ideas.", + "options": [ + "interrupt", + "hesitate", + "encourage", + "negotiate" + ], + "explanation": "Interrupt (перебивать) — нарушать ход чьей-то речи или действия." + }, + { + "level": "B1", + "term": "jealous", + "pos": "adjective", + "phonetic": "/ˈdʒel.əs/", + "translation": "ревнивый, завистливый", + "sentence": "He was slightly ___ of his friend's new sports car.", + "options": [ + "jealous", + "generous", + "sensible", + "modest" + ], + "explanation": "Jealous (завистливый) — испытывающий досаду от чужого успеха или имущества." + }, + { + "level": "B1", + "term": "maintain", + "pos": "verb", + "phonetic": "/meɪnˈteɪn/", + "translation": "поддерживать, сохранять", + "sentence": "It takes daily habit to ___ high code quality in a repo.", + "options": [ + "maintain", + "interrupt", + "hesitate", + "negotiate" + ], + "explanation": "Maintain (поддерживать) — сохранять объект в надлежащем состоянии." + }, + { + "level": "B1", + "term": "mystery", + "pos": "noun", + "phonetic": "/ˈmɪs.tər.i/", + "translation": "тайна, загадка", + "sentence": "The origin of that ancient ruined temple remains an unsolved ___.", + "options": [ + "mystery", + "behavior", + "relationship", + "decision" + ], + "explanation": "Mystery (загадка) — то, что трудно объяснить или понять." + }, + { + "level": "B1", + "term": "negotiate", + "pos": "verb", + "phonetic": "/nəˈɡəʊ.ʃi.eɪt/", + "translation": "вести переговоры, договариваться", + "sentence": "The founders met to ___ the terms of their partnership.", + "options": [ + "negotiate", + "interrupt", + "hesitate", + "encourage" + ], + "explanation": "Negotiate (вести переговоры) — обсуждать условия для достижения соглашения." + }, + { + "level": "B1", + "term": "obvious", + "pos": "adjective", + "phonetic": "/ˈɒb.vi.əs/", + "translation": "очевидный, явный", + "sentence": "It is ___ that system security must be prioritized from day one.", + "options": [ + "obvious", + "modest", + "temporary", + "jealous" + ], + "explanation": "Obvious (очевидный) — легко заметный и понятный без объяснений." + }, + { + "level": "B1", + "term": "particular", + "pos": "adjective", + "phonetic": "/pəˈtɪk.jə.lər/", + "translation": "конкретный, определенный", + "sentence": "Was there any ___ reason why the service crashed?", + "options": [ + "particular", + "fluent", + "generous", + "jealous" + ], + "explanation": "Particular (конкретный) — относящийся именно к данному случаю или лицу." + }, + { + "level": "B1", + "term": "persuade", + "pos": "verb", + "phonetic": "/pəˈsweɪd/", + "translation": "убеждать", + "sentence": "She was able to ___ the manager with well-prepared statistics.", + "options": [ + "persuade", + "interrupt", + "hesitate", + "maintain" + ], + "explanation": "Persuade (убеждать) — склонять к своей точке зрения доводами." + }, + { + "level": "B1", + "term": "reliable", + "pos": "adjective", + "phonetic": "/rɪˈlaɪ.ə.bəl/", + "translation": "надежный", + "sentence": "We need a ___ database that does not lose data on restart.", + "options": [ + "reliable", + "jealous", + "temporary", + "disappointed" + ], + "explanation": "Reliable (надежный) — верный, заслуживающий доверия." + }, + { + "level": "B1", + "term": "requirement", + "pos": "noun", + "phonetic": "/rɪˈkwaɪə.mənt/", + "translation": "требование, условие", + "sentence": "Having Python installed is a mandatory ___ for this script.", + "options": [ + "requirement", + "consequence", + "community", + "behavior" + ], + "explanation": "Requirement (требование) — обязательное условие." + }, + { + "level": "B1", + "term": "sensible", + "pos": "adjective", + "phonetic": "/ˈsen.sə.bəl/", + "translation": "благоразумный, разумный", + "sentence": "Wearing a warm jacket in sub-zero weather is a very ___ choice.", + "options": [ + "sensible", + "jealous", + "temporary", + "disappointed" + ], + "explanation": "Sensible (благоразумный) — продиктованный здравым смыслом." + }, + { + "level": "B1", + "term": "suitable", + "pos": "adjective", + "phonetic": "/ˈsuː.tə.bəl/", + "translation": "подходящий, годный", + "sentence": "This quiet study room is very ___ for reading long texts.", + "options": [ + "suitable", + "jealous", + "disappointed", + "fluent" + ], + "explanation": "Suitable (подходящий) — соответствующий целям и потребностям." + }, + { + "level": "B1", + "term": "temporary", + "pos": "adjective", + "phonetic": "/ˈtem.pər.ər.i/", + "translation": "временный", + "sentence": "The detour is only ___ while the bridge is repaired.", + "options": [ + "temporary", + "essential", + "reliable", + "fluent" + ], + "explanation": "Temporary (временный) — действующий лишь ограниченный период времени." + }, + { + "level": "B1", + "term": "universal", + "pos": "adjective", + "phonetic": "/ˌjuː.nɪˈvɜː.səl/", + "translation": "всеобщий, универсальный", + "sentence": "Curiosity is a ___ characteristic of human nature.", + "options": [ + "universal", + "temporary", + "jealous", + "modest" + ], + "explanation": "Universal (универсальный) — применимый повсеместно." + }, + { + "level": "B1", + "term": "valuable", + "pos": "adjective", + "phonetic": "/ˈvæl.jə.bəl/", + "translation": "ценный, полезный", + "sentence": "Her feedback on our design provided ___ insights.", + "options": [ + "valuable", + "jealous", + "temporary", + "disappointed" + ], + "explanation": "Valuable (ценный) — обладающий большой пользой или ценностью." + }, + { + "level": "B1", + "term": "vulnerable", + "pos": "adjective", + "phonetic": "/ˈvʌl.nər.ə.bəl/", + "translation": "уязвимый", + "sentence": "Unpatched systems are highly ___ to automated cyber attacks.", + "options": [ + "vulnerable", + "generous", + "fluent", + "sensible" + ], + "explanation": "Vulnerable (уязвимый) — слабо защищенный от вредоносных факторов." + }, + { + "level": "B1", + "term": "ambitious", + "pos": "adjective", + "phonetic": "/æmˈbɪʃ.əs/", + "translation": "амбициозный, целеустремленный", + "sentence": "The startup announced an ___ plan to launch ten satellites.", + "options": [ + "ambitious", + "jealous", + "disappointed", + "temporary" + ], + "explanation": "Ambitious (амбициозный) — ставящий смелые, масштабные цели." + }, + { + "level": "B1", + "term": "confident", + "pos": "adjective", + "phonetic": "/ˈkɒn.fɪ.dənt/", + "translation": "уверенный в себе", + "sentence": "He gave a clear presentation because he felt ___ in his results.", + "options": [ + "confident", + "disappointed", + "jealous", + "temporary" + ], + "explanation": "Confident (уверенный) — не сомневающийся в своих силах." + }, + { + "level": "B1", + "term": "curious", + "pos": "adjective", + "phonetic": "/ˈkjʊə.ri.əs/", + "translation": "любознательный, любопытный", + "sentence": "Young children are endlessly ___ about the world around them.", + "options": [ + "curious", + "disappointed", + "jealous", + "fluent" + ], + "explanation": "Curious (любознательный) — стремящийся узнать что-то новое." + }, + { + "level": "B1", + "term": "efficient", + "pos": "adjective", + "phonetic": "/ɪˈfɪʃ.ənt/", + "translation": "эффективный, продуктивный", + "sentence": "Using keyboard shortcuts makes editing text much more ___.", + "options": [ + "efficient", + "jealous", + "temporary", + "modest" + ], + "explanation": "Efficient (эффективный) — дающий максимальный результат при минимуме затрат." + }, + { + "level": "B1", + "term": "reasonable", + "pos": "adjective", + "phonetic": "/ˈriː.zən.ə.bəl/", + "translation": "разумный, приемлемый", + "sentence": "The hotel offered comfortable clean rooms at a very ___ price.", + "options": [ + "reasonable", + "jealous", + "disappointed", + "temporary" + ], + "explanation": "Reasonable (разумный, приемлемый) — адекватный, справедливый по цене или требованиям." + }, + { + "level": "B1", + "term": "accomplish", + "pos": "verb", + "phonetic": "/əˈkʌm.plɪʃ/", + "translation": "выполнить, достичь", + "sentence": "With proper focus, you can ___ your goals ahead of schedule.", + "options": [ + "accomplish", + "hesitate", + "interrupt", + "negotiate" + ], + "explanation": "Accomplish (достичь, выполнить) — успешно завершить начатое дело или цель." + }, + { + "level": "B1", + "term": "accurate", + "pos": "adjective", + "phonetic": "/ˈæk.jə.rət/", + "translation": "точный, правильный", + "sentence": "The financial report must provide completely ___ figures.", + "options": [ + "accurate", + "vulnerable", + "sensible", + "fluent" + ], + "explanation": "Accurate (точный) — соответствующий истине, без ошибок." + }, + { + "level": "B1", + "term": "adequate", + "pos": "adjective", + "phonetic": "/ˈæd.ə.kwət/", + "translation": "достаточный, соответствующий", + "sentence": "Make sure you get ___ sleep before running the marathon.", + "options": [ + "adequate", + "temporary", + "curious", + "jealous" + ], + "explanation": "Adequate (достаточный) — удовлетворяющий определенным требованиям или норме." + }, + { + "level": "B1", + "term": "anxiety", + "pos": "noun", + "phonetic": "/æŋˈzaɪ.ə.ti/", + "translation": "тревожность, беспокойство", + "sentence": "Meditation helps reduce stress and chronic ___ significantly.", + "options": [ + "anxiety", + "consequence", + "decision", + "mystery" + ], + "explanation": "Anxiety (тревожность) — эмоциональное состояние сильного внутреннего беспокойства." + }, + { + "level": "B1", + "term": "apparent", + "pos": "adjective", + "phonetic": "/əˈpær.ənt/", + "translation": "очевидный, явный", + "sentence": "It soon became ___ that they had made a serious error.", + "options": [ + "apparent", + "valuable", + "ambitious", + "fluent" + ], + "explanation": "Apparent (очевидный) — легко различимый, понятный без объяснений." + }, + { + "level": "B1", + "term": "circumstance", + "pos": "noun", + "phonetic": "/ˈsɜː.kəm.stɑːns/", + "translation": "обстоятельство", + "sentence": "Under no ___ should you share your banking passwords.", + "options": [ + "circumstance", + "community", + "requirement", + "behavior" + ], + "explanation": "Circumstance (обстоятельство) — условие или событие, сопровождающее ситуацию." + }, + { + "level": "B1", + "term": "convince", + "pos": "verb", + "phonetic": "/kənˈvɪns/", + "translation": "убеждать", + "sentence": "He tried hard to ___ the committee of the plan's feasibility.", + "options": [ + "convince", + "interrupt", + "hesitate", + "maintain" + ], + "explanation": "Convince (убеждать) — склонять к согласию аргументами и доводами." + }, + { + "level": "B1", + "term": "critical", + "pos": "adjective", + "phonetic": "/ˈkrɪt.ɪ.kəl/", + "translation": "критический, решающий", + "sentence": "The first few hours after an injury are of ___ importance.", + "options": [ + "critical", + "fluent", + "generous", + "suitable" + ], + "explanation": "Critical (критический, решающий) — имеющий решающее значение для исхода дела." + }, + { + "level": "B1", + "term": "deny", + "pos": "verb", + "phonetic": "/dɪˈnaɪ/", + "translation": "отрицать", + "sentence": "The suspect continued to ___ any involvement in the theft.", + "options": [ + "deny", + "persuade", + "interrupt", + "encourage" + ], + "explanation": "Deny (отрицать) — отвергать утверждение или обвинение." + }, + { + "level": "B1", + "term": "emphasize", + "pos": "verb", + "phonetic": "/ˈem.fə.saɪz/", + "translation": "подчеркивать, акцентировать", + "sentence": "The teacher wished to ___ the importance of consistent practice.", + "options": [ + "emphasize", + "hesitate", + "negotiate", + "consider" + ], + "explanation": "Emphasize (подчеркивать) — обращать особое внимание на что-то." + }, + { + "level": "B1", + "term": "frequent", + "pos": "adjective", + "phonetic": "/ˈfriː.kwənt/", + "translation": "частый", + "sentence": "Bus delays are a ___ problem during snowy winter months.", + "options": [ + "frequent", + "temporary", + "valuable", + "vulnerable" + ], + "explanation": "Frequent (частый) — повторяющийся через короткие промежутки времени." + }, + { + "level": "B1", + "term": "genuine", + "pos": "adjective", + "phonetic": "/ˈdʒen.ju.ɪn/", + "translation": "подлинный, искренний", + "sentence": "She showed ___ interest in learning about foreign cultures.", + "options": [ + "genuine", + "jealous", + "disappointed", + "sensible" + ], + "explanation": "Genuine (подлинный, искренний) — неподдельный, настоящий." + }, + { + "level": "B1", + "term": "intend", + "pos": "verb", + "phonetic": "/ɪnˈtend/", + "translation": "намереваться, планировать", + "sentence": "Do you ___ to stay here permanently or return home soon?", + "options": [ + "intend", + "hesitate", + "interrupt", + "negotiate" + ], + "explanation": "Intend (намереваться) — иметь твердый план или намерение что-то совершить." + }, + { + "level": "B1", + "term": "obtain", + "pos": "verb", + "phonetic": "/əbˈteɪn/", + "translation": "получать, приобретать", + "sentence": "You must ___ an entry visa before traveling abroad.", + "options": [ + "obtain", + "deny", + "hesitate", + "disappoint" + ], + "explanation": "Obtain (получать) — приобретать или добиваться обладания чем-либо." + }, + { + "level": "B1", + "term": "persistent", + "pos": "adjective", + "phonetic": "/pəˈsɪs.tənt/", + "translation": "настойчивый, упорный", + "sentence": "Through ___ hard work, she eventually mastered fluent English.", + "options": [ + "persistent", + "temporary", + "vulnerable", + "jealous" + ], + "explanation": "Persistent (упорный, настойчивый) — продолжающий действовать, невзирая на препятствия." + }, + { + "level": "B1", + "term": "predict", + "pos": "verb", + "phonetic": "/prɪˈdɪkt/", + "translation": "предсказывать, прогнозировать", + "sentence": "Economists struggle to ___ market swings with high accuracy.", + "options": [ + "predict", + "persuade", + "interrupt", + "maintain" + ], + "explanation": "Predict (предсказывать) — делать прогноз о будущем на основе фактов." + }, + { + "level": "B1", + "term": "sufficient", + "pos": "adjective", + "phonetic": "/səˈfɪʃ.ənt/", + "translation": "достаточный", + "sentence": "We have ___ evidence to prove that the hypothesis is sound.", + "options": [ + "sufficient", + "curious", + "jealous", + "ambitious" + ], + "explanation": "Sufficient (достаточный) — в том количестве, которое требуется для цели." + }, + { + "level": "B1", + "term": "threaten", + "pos": "verb", + "phonetic": "/ˈθret.ən/", + "translation": "угрожать", + "sentence": "Rising sea levels ___ low-lying coastal towns worldwide.", + "options": [ + "threaten", + "encourage", + "convince", + "accomplish" + ], + "explanation": "Threaten (угрожать) — представлять потенциальную опасность или риск." + }, + { + "level": "B1", + "term": "approve", + "pos": "verb", + "phonetic": "/əˈpruːv/", + "translation": "одобрять, утверждать", + "sentence": "The board of directors is expected to ___ the budget tomorrow.", + "options": [ + "approve", + "deny", + "hesitate", + "interrupt" + ], + "explanation": "Approve (одобрять) — официально соглашаться или санкционировать." + }, + { + "level": "B1", + "term": "broadcast", + "pos": "verb", + "phonetic": "/ˈbrɔːd.kɑːst/", + "translation": "вещать, транслировать", + "sentence": "The radio station will ___ the live championship match.", + "options": [ + "broadcast", + "negotiate", + "maintain", + "interrupt" + ], + "explanation": "Broadcast (вещать) — передавать информацию по радио, телевидению или сети." + }, + { + "level": "B1", + "term": "cooperate", + "pos": "verb", + "phonetic": "/kəʊˈɒp.ər.eɪt/", + "translation": "сотрудничать, взаимодействовать", + "sentence": "The two research teams decided to ___ on the clinical study.", + "options": [ + "cooperate", + "compete", + "hesitate", + "deny" + ], + "explanation": "Cooperate (сотрудничать) — совместно трудиться ради общей цели." + }, + { + "level": "B1", + "term": "distinguish", + "pos": "verb", + "phonetic": "/dɪˈstɪŋ.ɡwɪʃ/", + "translation": "различать, отличать", + "sentence": "It is difficult to ___ the two identical twin sisters.", + "options": [ + "distinguish", + "convince", + "interrupt", + "persuade" + ], + "explanation": "Distinguish (различать) — замечать разницу между объектами." + }, + { + "level": "B1", + "term": "eliminate", + "pos": "verb", + "phonetic": "/iˈlɪm.ɪ.neɪt/", + "translation": "устранять, ликвидировать", + "sentence": "Automation aims to ___ repetitive manual clerical tasks.", + "options": [ + "eliminate", + "maintain", + "hesitate", + "develop" + ], + "explanation": "Eliminate (устранять) — полностью удалять или избавляться от чего-либо." + }, + { + "level": "B1", + "term": "guarantee", + "pos": "verb", + "phonetic": "/ˌɡær.ənˈtiː/", + "translation": "гарантировать", + "sentence": "We cannot ___ that the shipment will arrive by tomorrow.", + "options": [ + "guarantee", + "deny", + "hesitate", + "threaten" + ], + "explanation": "Guarantee (гарантировать) — давать твердое обещание или заверение." + }, + { + "level": "B1", + "term": "identify", + "pos": "verb", + "phonetic": "/aɪˈden.tɪ.faɪ/", + "translation": "опознавать, определять", + "sentence": "The system uses biometric scans to ___ authorized employees.", + "options": [ + "identify", + "deny", + "hesitate", + "threaten" + ], + "explanation": "Identify (опознавать) — устанавливать точную личность или природу объекта." + }, + { + "level": "B2", + "term": "compromise", + "pos": "noun", + "phonetic": "/ˈkɒm.prə.maɪz/", + "translation": "компромисс, взаимная уступка", + "sentence": "After intense negotiations, both sides reached a workable ___.", + "options": [ + "compromise", + "consensus", + "ambiguity", + "contradiction" + ], + "explanation": "Compromise (компромисс) — соглашение на основе взаимных уступок." + }, + { + "level": "B2", + "term": "inevitable", + "pos": "adjective", + "phonetic": "/ɪnˈev.ɪ.tə.bəl/", + "translation": "неизбежный, неотвратимый", + "sentence": "Some degree of change is ___ in any growing organization.", + "options": [ + "inevitable", + "plausible", + "arbitrary", + "versatile" + ], + "explanation": "Inevitable (неизбежный) — то, что невозможно предотвратить." + }, + { + "level": "B2", + "term": "elaborate", + "pos": "verb", + "phonetic": "/ɪˈlæb.ə.reɪt/", + "translation": "вдаваться в детали, подробно разъяснять", + "sentence": "Could you please ___ on how this algorithm handles edge cases?", + "options": [ + "elaborate", + "diminish", + "facilitate", + "terminate" + ], + "explanation": "Elaborate (подробно разъяснять) — раскрывать тему с дополнительными деталями." + }, + { + "level": "B2", + "term": "coherent", + "pos": "adjective", + "phonetic": "/kəʊˈhɪə.rənt/", + "translation": "связный, логичный, последовательный", + "sentence": "She outlined a remarkably clear and ___ architectural design.", + "options": [ + "coherent", + "arbitrary", + "reluctant", + "ambiguous" + ], + "explanation": "Coherent (связный, последовательный) — логически выстроенный без внутренних противоречий." + }, + { + "level": "B2", + "term": "sophisticated", + "pos": "adjective", + "phonetic": "/səˈfɪs.tɪ.keɪ.tɪd/", + "translation": "сложный, утонченный, высокотехнологичный", + "sentence": "Modern network firewalls utilize ___ pattern detection.", + "options": [ + "sophisticated", + "arbitrary", + "preliminary", + "reluctant" + ], + "explanation": "Sophisticated (высокотехнологичный) — обладающий высоким уровнем сложности и развития." + }, + { + "level": "B2", + "term": "resilient", + "pos": "adjective", + "phonetic": "/rɪˈzɪl.jənt/", + "translation": "устойчивый к сбоям, жизнестойкий", + "sentence": "The distributed cluster proved ___ even when two nodes went down.", + "options": [ + "resilient", + "reluctant", + "arbitrary", + "plausible" + ], + "explanation": "Resilient (жизнестойкий, отказоустойчивый) — способный быстро восстанавливаться после потрясений." + }, + { + "level": "B2", + "term": "ambiguity", + "pos": "noun", + "phonetic": "/ˌæm.bɪˈɡjuː.ə.ti/", + "translation": "двусмысленность, неопределенность", + "sentence": "Good API specifications avoid any semantic ___.", + "options": [ + "ambiguity", + "consensus", + "compromise", + "versatility" + ], + "explanation": "Ambiguity (двусмысленность) — наличие нескольких противоречивых трактовок." + }, + { + "level": "B2", + "term": "comprehensive", + "pos": "adjective", + "phonetic": "/ˌkɒm.prɪˈhen.sɪv/", + "translation": "всесторонний, исчерпывающий", + "sentence": "The documentation provides a ___ guide to all SDK methods.", + "options": [ + "comprehensive", + "reluctant", + "arbitrary", + "preliminary" + ], + "explanation": "Comprehensive (исчерпывающий) — охватывающий предмет целиком и во всех деталях." + }, + { + "level": "B2", + "term": "profound", + "pos": "adjective", + "phonetic": "/prəˈfaʊnd/", + "translation": "глубокий, фундаментальный", + "sentence": "The discovery of antibiotics had a ___ impact on human longevity.", + "options": [ + "profound", + "reluctant", + "arbitrary", + "plausible" + ], + "explanation": "Profound (глубокий) — оказывающий огромное и фундаментальное влияние." + }, + { + "level": "B2", + "term": "contradictory", + "pos": "adjective", + "phonetic": "/ˌkɒn.trəˈdɪk.tər.i/", + "translation": "противоречивый", + "sentence": "The witness gave two completely ___ accounts of what occurred.", + "options": [ + "contradictory", + "versatile", + "preliminary", + "resilient" + ], + "explanation": "Contradictory (противоречивый) — взаимоисключающий." + }, + { + "level": "B2", + "term": "enhance", + "pos": "verb", + "phonetic": "/ɪnˈhɑːns/", + "translation": "усиливать, повышать качество", + "sentence": "Adding indexes to foreign keys will significantly ___ query speed.", + "options": [ + "enhance", + "diminish", + "terminate", + "undermine" + ], + "explanation": "Enhance (усиливать) — увеличивать качество, силу или ценность." + }, + { + "level": "B2", + "term": "facilitate", + "pos": "verb", + "phonetic": "/fəˈsɪl.ɪ.teɪt/", + "translation": "облегчать, способствовать", + "sentence": "Clean APIs ___ integration with third-party mobile applications.", + "options": [ + "facilitate", + "undermine", + "fluctuate", + "terminate" + ], + "explanation": "Facilitate (способствовать) — делать процесс проще и быстрее." + }, + { + "level": "B2", + "term": "advocate", + "pos": "verb", + "phonetic": "/ˈæd.və.keɪt/", + "translation": "выступать в защиту, отстаивать", + "sentence": "Senior developers strongly ___ for automated testing pipelines.", + "options": [ + "advocate", + "terminate", + "undermine", + "fluctuate" + ], + "explanation": "Advocate (отстаивать) — публично поддерживать идею или принцип." + }, + { + "level": "B2", + "term": "diminish", + "pos": "verb", + "phonetic": "/dɪˈmɪn.ɪʃ/", + "translation": "уменьшаться, ослабевать", + "sentence": "Regular backups help to ___ the risks of sudden data loss.", + "options": [ + "diminish", + "enhance", + "facilitate", + "advocate" + ], + "explanation": "Diminish (уменьшать) — сокращать величину, масштаб или силу." + }, + { + "level": "B2", + "term": "feasible", + "pos": "adjective", + "phonetic": "/ˈfiː.zə.bəl/", + "translation": "осуществимый, реальный", + "sentence": "Completing this migration in one sprint is technically ___.", + "options": [ + "feasible", + "reluctant", + "arbitrary", + "ambiguous" + ], + "explanation": "Feasible (осуществимый) — вполне выполнимый при имеющихся ресурсах." + }, + { + "level": "B2", + "term": "substantial", + "pos": "adjective", + "phonetic": "/səbˈstæn.ʃəl/", + "translation": "существенный, значительный", + "sentence": "We noticed a ___ reduction in server memory usage after tuning.", + "options": [ + "substantial", + "preliminary", + "reluctant", + "arbitrary" + ], + "explanation": "Substantial (значительный) — весомый по объему или значению." + }, + { + "level": "B2", + "term": "subsequent", + "pos": "adjective", + "phonetic": "/ˈsʌb.sɪ.kwənt/", + "translation": "последующий", + "sentence": "The initial build broke, but all ___ builds passed cleanly.", + "options": [ + "subsequent", + "reluctant", + "arbitrary", + "versatile" + ], + "explanation": "Subsequent (последующий) — происходящий после чего-либо." + }, + { + "level": "B2", + "term": "perceive", + "pos": "verb", + "phonetic": "/pəˈsiːv/", + "translation": "воспринимать, осознавать", + "sentence": "Different users ___ software latency in very distinct ways.", + "options": [ + "perceive", + "allocate", + "terminate", + "undermine" + ], + "explanation": "Perceive (воспринимать) — осознавать через органы чувств или разум." + }, + { + "level": "B2", + "term": "convey", + "pos": "verb", + "phonetic": "/kənˈveɪ/", + "translation": "передавать, выражать (мысль)", + "sentence": "Clear charts can ___ complex statistical insights at a glance.", + "options": [ + "convey", + "allocate", + "terminate", + "fluctuate" + ], + "explanation": "Convey (передавать) — делать мысль или значение понятными другим." + }, + { + "level": "B2", + "term": "crucial", + "pos": "adjective", + "phonetic": "/ˈkruː.ʃəl/", + "translation": "решающий, критически важный", + "sentence": "Code reviews are ___ for maintaining high quality in shared repos.", + "options": [ + "crucial", + "arbitrary", + "reluctant", + "plausible" + ], + "explanation": "Crucial (критически важный) — определяющий успех или провал." + }, + { + "level": "B2", + "term": "deduce", + "pos": "verb", + "phonetic": "/dɪˈdʒuːs/", + "translation": "делать логический вывод, выводить", + "sentence": "From the error stack trace, we can easily ___ the exact root cause.", + "options": [ + "deduce", + "allocate", + "undermine", + "fluctuate" + ], + "explanation": "Deduce (делать вывод) — приходить к умозаключению на основе фактов." + }, + { + "level": "B2", + "term": "discrete", + "pos": "adjective", + "phonetic": "/dɪˈskriːt/", + "translation": "дискретный, раздельный, обособленный", + "sentence": "The protocol breaks streaming data into small ___ chunks.", + "options": [ + "discrete", + "reluctant", + "arbitrary", + "plausible" + ], + "explanation": "Discrete (дискретный) — состоящий из отдельных четких единиц." + }, + { + "level": "B2", + "term": "explicit", + "pos": "adjective", + "phonetic": "/ɪkˈsplɪs.ɪt/", + "translation": "явный, четко выраженный", + "sentence": "The configuration provides ___ timeout limits for network calls.", + "options": [ + "explicit", + "ambiguous", + "reluctant", + "arbitrary" + ], + "explanation": "Explicit (явный, точный) — сформулированный прямо и без двусмысленности." + }, + { + "level": "B2", + "term": "fundamental", + "pos": "adjective", + "phonetic": "/ˌfʌn.dəˈmen.təl/", + "translation": "фундаментальный, основополагающий", + "sentence": "Understanding pointers is a ___ concept in systems programming.", + "options": [ + "fundamental", + "arbitrary", + "reluctant", + "preliminary" + ], + "explanation": "Fundamental (основополагающий) — служащий базисом для всего остального." + }, + { + "level": "B2", + "term": "hierarchical", + "pos": "adjective", + "phonetic": "/ˌhaɪəˈrɑː.kɪ.kəl/", + "translation": "иерархический", + "sentence": "Filesystems organize documents in a strict ___ folder tree.", + "options": [ + "hierarchical", + "arbitrary", + "reluctant", + "plausible" + ], + "explanation": "Hierarchical (иерархический) — построенный по принципу соподчинения уровней." + }, + { + "level": "B2", + "term": "implicit", + "pos": "adjective", + "phonetic": "/ɪmˈplɪs.ɪt/", + "translation": "неявный, подразумеваемый", + "sentence": "There is an ___ trust assumption between these internal services.", + "options": [ + "implicit", + "explicit", + "arbitrary", + "versatile" + ], + "explanation": "Implicit (неявный, подразумеваемый) — не выраженный прямо, но очевидный по смыслу." + }, + { + "level": "B2", + "term": "inherent", + "pos": "adjective", + "phonetic": "/ɪnˈher.ənt/", + "translation": "присущий, неотъемлемый", + "sentence": "Network latency is an ___ property of distributed cloud systems.", + "options": [ + "inherent", + "preliminary", + "reluctant", + "arbitrary" + ], + "explanation": "Inherent (присущий) — составляющий неотъемлемую природную черту объекта." + }, + { + "level": "B2", + "term": "integrate", + "pos": "verb", + "phonetic": "/ˈɪn.tɪ.ɡreɪt/", + "translation": "интегрировать, объединять", + "sentence": "We want to ___ the payment gateway seamlessly into the checkout.", + "options": [ + "integrate", + "undermine", + "terminate", + "fluctuate" + ], + "explanation": "Integrate (интегрировать) — соединять части в единое целое." + }, + { + "level": "B2", + "term": "justify", + "pos": "verb", + "phonetic": "/ˈdʒʌs.tɪ.faɪ/", + "translation": "оправдывать, обосновывать", + "sentence": "You should bring performance metrics to ___ the rewrite.", + "options": [ + "justify", + "undermine", + "terminate", + "fluctuate" + ], + "explanation": "Justify (обосновывать) — приводить разумные доводы в защиту решения." + }, + { + "level": "B2", + "term": "preliminary", + "pos": "adjective", + "phonetic": "/prɪˈlɪm.ɪ.nər.i/", + "translation": "предварительный", + "sentence": "These are only the ___ benchmark results; full tests run tonight.", + "options": [ + "preliminary", + "reluctant", + "arbitrary", + "versatile" + ], + "explanation": "Preliminary (предварительный) — предшествующий окончательному этапу." + }, + { + "level": "B2", + "term": "random", + "pos": "adjective", + "phonetic": "/ˈræn.dəm/", + "translation": "случайный, произвольный", + "sentence": "The program selects test samples using a uniform ___ distribution.", + "options": [ + "random", + "reluctant", + "plausible", + "resilient" + ], + "explanation": "Random (случайный) — выбранный без закономерности или предвзятости." + }, + { + "level": "B2", + "term": "reluctant", + "pos": "adjective", + "phonetic": "/rɪˈlʌk.tənt/", + "translation": "неохотный, сомневающийся", + "sentence": "He was ___ to rewrite working code without clear justification.", + "options": [ + "reluctant", + "resilient", + "versatile", + "plausible" + ], + "explanation": "Reluctant (неохотный) — делающий что-либо с неохотой или сомнением." + }, + { + "level": "B2", + "term": "simultaneous", + "pos": "adjective", + "phonetic": "/ˌsɪm.əlˈteɪ.ni.əs/", + "translation": "одновременный", + "sentence": "The database engine easily handles hundreds of ___ read queries.", + "options": [ + "simultaneous", + "reluctant", + "arbitrary", + "preliminary" + ], + "explanation": "Simultaneous (одновременный) — происходящий в одно и то же мгновение." + }, + { + "level": "B2", + "term": "undermine", + "pos": "verb", + "phonetic": "/ˌʌn.dəˈmaɪn/", + "translation": "подрывать, ослаблять", + "sentence": "Skipping validation steps will inevitably ___ system reliability.", + "options": [ + "undermine", + "facilitate", + "enhance", + "advocate" + ], + "explanation": "Undermine (подрывать) — постепенно разрушать или ослаблять основы." + }, + { + "level": "B2", + "term": "accommodate", + "pos": "verb", + "phonetic": "/əˈkɒm.ə.deɪt/", + "translation": "вмещать, приспосабливать", + "sentence": "The new server cluster can easily ___ millions of daily visitors.", + "options": [ + "accommodate", + "undermine", + "terminate", + "fluctuate" + ], + "explanation": "Accommodate (вмещать) — иметь достаточно места или ресурсов для кого-либо." + }, + { + "level": "B2", + "term": "allocate", + "pos": "verb", + "phonetic": "/ˈæl.ə.keɪt/", + "translation": "выделять (ресурсы, память)", + "sentence": "We need to ___ sufficient RAM for the in-memory cache.", + "options": [ + "allocate", + "undermine", + "terminate", + "fluctuate" + ], + "explanation": "Allocate (выделять) — распределять или закреплять ресурсы под задачу." + }, + { + "level": "B2", + "term": "arbitrary", + "pos": "adjective", + "phonetic": "/ˈɑː.bɪ.trər.i/", + "translation": "произвольный, случайный (без четкого правила)", + "sentence": "Do not pick an ___ timeout value; measure actual latencies.", + "options": [ + "arbitrary", + "resilient", + "coherent", + "versatile" + ], + "explanation": "Arbitrary (произвольный) — основанный на случайном выборе, а не на правиле." + }, + { + "level": "B2", + "term": "consensus", + "pos": "noun", + "phonetic": "/kənˈsen.səs/", + "translation": "консенсус, общее согласие", + "sentence": "The architecture committee finally reached a general ___.", + "options": [ + "consensus", + "ambiguity", + "contradiction", + "compromise" + ], + "explanation": "Consensus (консенсус) — общее единогласие мнений всех сторон." + }, + { + "level": "B2", + "term": "fluctuate", + "pos": "verb", + "phonetic": "/ˈflʌk.tʃu.eɪt/", + "translation": "колебаться, меняться", + "sentence": "Internet speeds can ___ depending on peak network hours.", + "options": [ + "fluctuate", + "undermine", + "terminate", + "advocate" + ], + "explanation": "Fluctuate (колебаться) — непрерывно изменяться вверх и вниз." + }, + { + "level": "B2", + "term": "plausible", + "pos": "adjective", + "phonetic": "/ˈplɔː.zə.bəl/", + "translation": "правдоподобный, вероятный", + "sentence": "His explanation for the memory leak sounded completely ___.", + "options": [ + "plausible", + "reluctant", + "arbitrary", + "preliminary" + ], + "explanation": "Plausible (правдоподобный) — заслуживающий доверия, вероятный." + }, + { + "level": "B2", + "term": "deteriorate", + "pos": "verb", + "phonetic": "/dɪˈtɪə.ri.ə.reɪt/", + "translation": "ухудшаться", + "sentence": "Without prompt maintenance, old bridges rapidly ___.", + "options": [ + "deteriorate", + "enhance", + "facilitate", + "integrate" + ], + "explanation": "Deteriorate (ухудшаться) — становиться хуже по качеству или состоянию." + }, + { + "level": "B2", + "term": "discrepancy", + "pos": "noun", + "phonetic": "/dɪˈskrep.ən.si/", + "translation": "расхождение, несоответствие", + "sentence": "The audit revealed an unexplained ___ in the quarterly ledgers.", + "options": [ + "discrepancy", + "consensus", + "compromise", + "ambiguity" + ], + "explanation": "Discrepancy (несоответствие) — различие между данными, которые должны совпадать." + }, + { + "level": "B2", + "term": "eligible", + "pos": "adjective", + "phonetic": "/ˈel.ɪ.dʒə.bəl/", + "translation": "имеющий право, подходящий", + "sentence": "Only full-time students are ___ to apply for the grant.", + "options": [ + "eligible", + "reluctant", + "arbitrary", + "plausible" + ], + "explanation": "Eligible (имеющий право) — отвечающий установленным критериям для участия." + }, + { + "level": "B2", + "term": "lucrative", + "pos": "adjective", + "phonetic": "/ˈluː.krə.tɪv/", + "translation": "прибыльный, доходный", + "sentence": "The entrepreneur signed a remarkably ___ contract overseas.", + "options": [ + "lucrative", + "profound", + "vulnerable", + "preliminary" + ], + "explanation": "Lucrative (прибыльный) — приносящий большую финансовую выгоду." + }, + { + "level": "B2", + "term": "meticulous", + "pos": "adjective", + "phonetic": "/məˈtɪk.jə.ləs/", + "translation": "дотошный, скрупулезный", + "sentence": "The researcher kept ___ notes during every phase of the trial.", + "options": [ + "meticulous", + "random", + "arbitrary", + "contradictory" + ], + "explanation": "Meticulous (скрупулезный) — проявляющий исключительное внимание к каждой детали." + }, + { + "level": "B2", + "term": "novel", + "pos": "adjective", + "phonetic": "/ˈnɒv.əl/", + "translation": "новаторский, оригинальный", + "sentence": "The scientists proposed a ___ approach to carbon sequestration.", + "options": [ + "novel", + "coherent", + "inevitable", + "resilient" + ], + "explanation": "Novel (новаторский) — принципиально новый, ранее не применявшийся." + }, + { + "level": "B2", + "term": "relentless", + "pos": "adjective", + "phonetic": "/rɪˈlent.ləs/", + "translation": "неумолимый, непрекращающийся", + "sentence": "Success required years of ___ discipline and daily focus.", + "options": [ + "relentless", + "reluctant", + "arbitrary", + "preliminary" + ], + "explanation": "Relentless (непрекращающийся) — продолжающийся с неослабевающей силой." + }, + { + "level": "B2", + "term": "scrutinize", + "pos": "verb", + "phonetic": "/ˈskruː.tɪ.naɪz/", + "translation": "тщательно исследовать, изучать", + "sentence": "Regulators will closely ___ the proposed merger of both banks.", + "options": [ + "scrutinize", + "diminish", + "undermine", + "fluctuate" + ], + "explanation": "Scrutinize (тщательно исследовать) — подвергать глубокому пристальному анализу." + }, + { + "level": "B2", + "term": "subtle", + "pos": "adjective", + "phonetic": "/ˈsʌt.əl/", + "translation": "тонкий, едва уловимый", + "sentence": "There is a ___ nuance between these two grammatical forms.", + "options": [ + "subtle", + "substantial", + "fundamental", + "explicit" + ], + "explanation": "Subtle (тонкий, неуловимый) — едва заметный, требующий чуткости для восприятия." + }, + { + "level": "B2", + "term": "tangible", + "pos": "adjective", + "phonetic": "/ˈtæn.dʒə.bəl/", + "translation": "осязаемый, реальный", + "sentence": "The new training program yielded ___ improvements in morale.", + "options": [ + "tangible", + "ambiguous", + "arbitrary", + "hierarchical" + ], + "explanation": "Tangible (осязаемый) — конкретный, явный, доступный для непосредственной оценки." + }, + { + "level": "B2", + "term": "ubiquitous", + "pos": "adjective", + "phonetic": "/juːˈbɪk.wɪ.təs/", + "translation": "вездесущий, повсеместный", + "sentence": "Smartphones have become ___ in modern urban society.", + "options": [ + "ubiquitous", + "discrete", + "reluctant", + "preliminary" + ], + "explanation": "Ubiquitous (вездесущий) — встречающийся повсюду одновременно." + }, + { + "level": "B2", + "term": "unprecedented", + "pos": "adjective", + "phonetic": "/ʌnˈpres.ɪ.den.tɪd/", + "translation": "беспрецедентный", + "sentence": "The pandemic caused an ___ shock to global supply chains.", + "options": [ + "unprecedented", + "coherent", + "contradictory", + "plausible" + ], + "explanation": "Unprecedented (беспрецедентный) — не имевший аналогов в прошлом." + }, + { + "level": "B2", + "term": "viable", + "pos": "adjective", + "phonetic": "/ˈvaɪ.ə.bəl/", + "translation": "жизнеспособный", + "sentence": "Solar power has become a commercially ___ source of energy.", + "options": [ + "viable", + "arbitrary", + "reluctant", + "inevitable" + ], + "explanation": "Viable (жизнеспособный) — способный успешно функционировать и развиваться." + }, + { + "level": "B2", + "term": "withstand", + "pos": "verb", + "phonetic": "/wɪðˈstænd/", + "translation": "выдерживать, противостоять", + "sentence": "The newly engineered structure can ___ severe earthquakes.", + "options": [ + "withstand", + "diminish", + "undermine", + "deteriorate" + ], + "explanation": "Withstand (выдерживать) — стойко сопротивляться разрушительному воздействию." + }, + { + "level": "B2", + "term": "yield", + "pos": "verb", + "phonetic": "/jiːld/", + "translation": "приносить (результат, доход)", + "sentence": "Long-term compounding investments ___ significant dividends.", + "options": [ + "yield", + "undermine", + "deduce", + "scrutinize" + ], + "explanation": "Yield (приносить плоды) — давать прибыль, урожай или практический результат." + }, + { + "level": "B2", + "term": "zealous", + "pos": "adjective", + "phonetic": "/ˈzel.əs/", + "translation": "ревностный, ярый", + "sentence": "The attorney was a ___ defender of fundamental civil liberties.", + "options": [ + "zealous", + "complacent", + "reluctant", + "arbitrary" + ], + "explanation": "Zealous (ревностный) — проявляющий горячую увлеченность и преданность делу." + }, + { + "level": "B2", + "term": "ambiguous", + "pos": "adjective", + "phonetic": "/æmˈbɪɡ.ju.əs/", + "translation": "двусмысленный, неясный", + "sentence": "The legal wording of the agreement was intentionally ___.", + "options": [ + "ambiguous", + "explicit", + "coherent", + "tangible" + ], + "explanation": "Ambiguous (двусмысленный) — допускающий двоякое или нечеткое толкование." + }, + { + "level": "B2", + "term": "benevolent", + "pos": "adjective", + "phonetic": "/bəˈnev.əl.ənt/", + "translation": "благожелательный, великодушный", + "sentence": "The charity relies on gifts from ___ private donors.", + "options": [ + "benevolent", + "relentless", + "arbitrary", + "hierarchical" + ], + "explanation": "Benevolent (благожелательный) — настроенный доброжелательно, стремящийся делать добро." + }, + { + "level": "B2", + "term": "complacent", + "pos": "adjective", + "phonetic": "/kəmˈpleɪ.sənt/", + "translation": "самодовольный, беспечный", + "sentence": "After consecutive victories, the team grew dangerously ___.", + "options": [ + "complacent", + "meticulous", + "diligent", + "resilient" + ], + "explanation": "Complacent (самодовольный) — чрезмерно удовлетворенный собой и потерявший бдительность." + }, + { + "level": "B2", + "term": "diligent", + "pos": "adjective", + "phonetic": "/ˈdɪl.ɪ.dʒənt/", + "translation": "прилежный, старательный", + "sentence": "Her ___ pursuit of scientific inquiry earned international acclaim.", + "options": [ + "diligent", + "arbitrary", + "reluctant", + "subsequent" + ], + "explanation": "Diligent (прилежный) — усердно и добросовестно выполняющий работу." + }, + { + "level": "B2", + "term": "ephemeral", + "pos": "adjective", + "phonetic": "/ɪˈfem.ər.əl/", + "translation": "мимолетный, недолговечный", + "sentence": "Social media fame is often ___ and vanishes overnight.", + "options": [ + "ephemeral", + "substantial", + "fundamental", + "comprehensive" + ], + "explanation": "Ephemeral (мимолетный) — длящийся лишь краткий миг." + }, + { + "level": "B2", + "term": "formidable", + "pos": "adjective", + "phonetic": "/ˈfɔː.mɪ.də.bəl/", + "translation": "грозный, внушительный", + "sentence": "The defending chess champion represents a ___ adversary.", + "options": [ + "formidable", + "arbitrary", + "discrete", + "vulnerable" + ], + "explanation": "Formidable (грозный, внушительный) — внушающий уважение или страх своей мощью." + }, + { + "level": "B2", + "term": "gregarious", + "pos": "adjective", + "phonetic": "/ɡrɪˈɡeə.ri.əs/", + "translation": "общительный, стадный", + "sentence": "Dolphins are highly social and ___ marine mammals.", + "options": [ + "gregarious", + "reluctant", + "arbitrary", + "preliminary" + ], + "explanation": "Gregarious (общительный) — любящий находиться среди сородичей или людей." + }, + { + "level": "B2", + "term": "homogeneous", + "pos": "adjective", + "phonetic": "/ˌhɒm.əˈdʒiː.ni.əs/", + "translation": "однородный, гомогенный", + "sentence": "The modern metropolis is far from a culturally ___ enclave.", + "options": [ + "homogeneous", + "contradictory", + "arbitrary", + "ubiquitous" + ], + "explanation": "Homogeneous (однородный) — состоящий из одинаковых по составу частей." + }, + { + "level": "B2", + "term": "innovative", + "pos": "adjective", + "phonetic": "/ˈɪn.ə.və.tɪv/", + "translation": "новаторский, передовой", + "sentence": "The startup patented an ___ algorithm for real-time translation.", + "options": [ + "innovative", + "arbitrary", + "complacent", + "plausible" + ], + "explanation": "Innovative (новаторский) — использующий передовые оригинальные методы." + } +] \ No newline at end of file diff --git a/data/seeds/grammar_units.json b/data/seeds/grammar_units.json new file mode 100644 index 0000000..318fef7 --- /dev/null +++ b/data/seeds/grammar_units.json @@ -0,0 +1,1232 @@ +[ + { + "unit_num": 1, + "level": "A1-A2", + "category": "Present Tenses", + "title": "Present Continuous (I am doing)", + "subtitle": "Действие в процессе прямо сейчас или временная ситуация", + "golden_formula": "S + am / is / are + V-ing\n(I am working / He is sleeping / They are playing)", + "contrast_explanation": [ + { + "situation_a": "Действие происходит в момент речи (Now / at the moment)", + "example_a": "Please be quiet. I am trying to concentrate.", + "trans_a": "Пожалуйста, потише. Я пытаюсь сосредоточиться (прямо сейчас).", + "situation_b": "Временная ситуация в текущий период жизни (Around now / temporarily)", + "example_b": "She is studying computer science at university this year.", + "trans_b": "В этом году она изучает информатику в университете (временный процесс).", + "key_difference": "Present Continuous всегда показывает незавершённое действие — мы находимся внутри процесса." + } + ], + "journaling_prompt": "Запишите в тетрадь золотую формулу маркером. Напишите от руки 2-3 предложения о том, что происходит прямо сейчас вокруг вас или какой временный проект вы делаете на этой неделе (например: 'I am reading an English book right now').", + "exercises": [ + { + "sentence": "Listen to those birds! They ___ so beautifully.", + "target": "are singing", + "clue": "поют (прямо сейчас)", + "options": [ + "are singing", + "sing", + "is singing", + "sang" + ], + "explanation": "Слово-маркер 'Listen!' указывает, что действие происходит прямо сейчас, подлежащее 'They' требует форму 'are singing'." + }, + { + "sentence": "Why ___ you wearing a heavy coat in July?", + "target": "are", + "clue": "почему ты одет (в этот момент)", + "options": [ + "are", + "do", + "have", + "did" + ], + "explanation": "Перед формой глагола с окончанием -ing ('wearing') в вопросе Present Continuous ставится вспомогательный глагол 'are'." + }, + { + "sentence": "The water is boiling, so please ___ the stove.", + "target": "turn off", + "clue": "выключи (действие-команда)", + "options": [ + "turn off", + "turning off", + "is turning", + "turned" + ], + "explanation": "Вода кипит прямо сейчас (is boiling), поэтому обращение-просьба к собеседнику строится в повелительном наклонении: 'turn off'." + }, + { + "sentence": "Look! The bus is coming, we ___ run to catch it.", + "target": "must", + "clue": "должны (нужно поторопиться)", + "options": [ + "must", + "are", + "do", + "have" + ], + "explanation": "'The bus is coming' — автобус подъезжает прямо сейчас, модальный глагол 'must' выражает необходимость действовать немедленно." + }, + { + "sentence": "I ___ for a software company while my friend looks for a job.", + "target": "am currently working", + "clue": "в настоящее время работаю (временная ситуация)", + "options": [ + "am currently working", + "works", + "have worked", + "worked" + ], + "explanation": "Для временного текущего периода занятости используется форма Present Continuous: 'am currently working'." + } + ] + }, + { + "unit_num": 2, + "level": "A1-A2", + "category": "Present Tenses", + "title": "Present Simple (I do)", + "subtitle": "Регулярные привычки, факты, законы природы и расписания", + "golden_formula": "S + V1 (he/she/it + V-s/es)\n(I work / She works / Do you work? / He does not work)", + "contrast_explanation": [ + { + "situation_a": "Регулярное повторяющееся действие или привычка (Habit / Routine)", + "example_a": "I drink a cup of black coffee every morning at 8:00.", + "trans_a": "Я пью чашку чёрного кофе каждое утро в 8:00.", + "situation_b": "Непреложный факт или закон природы (General truth / Fact)", + "example_b": "The Earth moves around the Sun.", + "trans_b": "Земля вращается вокруг Солнца (постоянный факт).", + "key_difference": "Present Simple говорит о том, что верно вообще, регулярно или по расписанию, а не только в данную секунду." + } + ], + "journaling_prompt": "Запишите в тетрадь формулу с окончанием -s для he/she/it. Напишите от руки 2-3 ваших реальных привычки с маркерами частоты: always, usually, every day (например: 'I usually drink green tea after lunch').", + "exercises": [ + { + "sentence": "My brother ___ in a bank in the city center.", + "target": "works", + "clue": "работает (постоянно, факт)", + "options": [ + "works", + "work", + "is working", + "working" + ], + "explanation": "Подлежащее 'My brother' (он) требует глагола с окончанием -s в Present Simple: 'works'." + }, + { + "sentence": "How often ___ you go to the gym during the week?", + "target": "do", + "clue": "вспомогательный глагол вопроса", + "options": [ + "do", + "does", + "are", + "have" + ], + "explanation": "С местоимением 'you' вопрос в Present Simple образуется с помощью вспомогательного глагола 'do'." + }, + { + "sentence": "Water ___ at zero degrees Celsius.", + "target": "freezes", + "clue": "замерзает (закон природы)", + "options": [ + "freezes", + "freeze", + "is freezing", + "froze" + ], + "explanation": "Физические факты и свойства веществ выражаются в Present Simple: неисчисляемое 'Water' требует 'freezes'." + }, + { + "sentence": "She ___ meat because she is a strict vegetarian.", + "target": "does not eat", + "clue": "не ест (постоянная привычка)", + "options": [ + "does not eat", + "do not eat", + "is not eating", + "not eats" + ], + "explanation": "Отрицание для третьего лица единственного числа (she) образуется через 'does not' + начальная форма глагола 'eat'." + }, + { + "sentence": "The train to London ___ at 9:30 every morning.", + "target": "departs", + "clue": "отправляется (по расписанию)", + "options": [ + "departs", + "departing", + "is departing", + "depart" + ], + "explanation": "Общественный транспорт и расписания в английском языке всегда передаются через Present Simple: 'departs'." + } + ] + }, + { + "unit_num": 3, + "level": "A1-A2", + "category": "Present Tenses", + "title": "Present Continuous vs Present Simple (I am doing vs I do)", + "subtitle": "Главный контраст: процесс сейчас vs факт вообще + глаголы состояния (Stative Verbs)", + "golden_formula": "NOW: am/is/are + V-ing | ALWAYS/HABIT: V1(s)\nStative Verbs (NO -ing): know, like, want, understand, remember, believe", + "contrast_explanation": [ + { + "situation_a": "I am doing (Прямо сейчас / процесс в развитии)", + "example_a": "Listen! What language are those tourists speaking?", + "trans_a": "Послушай! На каком языке говорят эти туристы (сейчас)?", + "situation_b": "I do (Вообще / способность / факт)", + "example_b": "My colleague speaks three foreign languages fluently.", + "trans_b": "Мой коллега свободно говорит на трёх иностранных языках (вообще).", + "key_difference": "Глаголы чувств и мыслей (know, understand, want, believe, like) практически никогда не используются в форме -ing!" + } + ], + "journaling_prompt": "Запишите в тетрадь список глаголов состояния (Stative Verbs), которые нельзя ставить в -ing. Составьте от руки 2 контрастных предложения о себе (например: 'I live in Moscow, but this month I am staying with my parents').", + "exercises": [ + { + "sentence": "I ___ what you mean, could you explain it again?", + "target": "do not understand", + "clue": "не понимаю (глагол состояния understand)", + "options": [ + "do not understand", + "am not understanding", + "not understand", + "did not understood" + ], + "explanation": "Глагол 'understand' является глаголом ментального состояния (stative verb) и не употребляется во времени Continuous." + }, + { + "sentence": "Look outside! It ___ heavily, take an umbrella.", + "target": "is raining", + "clue": "идёт дождь (прямо сейчас)", + "options": [ + "is raining", + "rains", + "rained", + "rain" + ], + "explanation": "Призыв 'Look outside!' сигнализирует о действии, разворачивающемся на глазах прямо сейчас: 'is raining'." + }, + { + "sentence": "It seldom ___ in this dry desert region.", + "target": "rains", + "clue": "идёт дождь (редко, постоянное свойство)", + "options": [ + "rains", + "is raining", + "was raining", + "rain" + ], + "explanation": "Наречие частотности 'seldom' (редко) описывает общее климатическое свойство местности $\rightarrow$ Present Simple: 'rains'." + }, + { + "sentence": "Do you ___ this beautiful song?", + "target": "know", + "clue": "знаешь (глагол состояния know)", + "options": [ + "know", + "knowing", + "are knowing", + "knew" + ], + "explanation": "Глагол 'know' — стативный глагол, вопрос строится в Present Simple: 'Do you know?'" + }, + { + "sentence": "Normally I drink tea, but today I ___ coffee.", + "target": "am drinking", + "clue": "пью (сегодня, исключение из привычки)", + "options": [ + "am drinking", + "drink", + "drinks", + "drank" + ], + "explanation": "Контраст: 'Normally I drink' (привычка в Simple), но 'today I am drinking' (временное отклонение от нормы в Continuous)." + } + ] + }, + { + "unit_num": 4, + "level": "A1-A2", + "category": "Past Tenses", + "title": "Past Simple (I did)", + "subtitle": "Завершённое действие в прошлом с точной привязкой ко времени", + "golden_formula": "S + V2 / V-ed | Did + S + V1? | S + did not + V1\n(yesterday, last night, two years ago, in 2021, when I was a child)", + "contrast_explanation": [ + { + "situation_a": "Действие полностью завершилось в прошлом (Finished past time)", + "example_a": "We arrived in London yesterday afternoon.", + "trans_a": "Мы прибыли в Лондон вчера днём (период 'вчера' завершён).", + "situation_b": "Последовательность действий в прошлом (Story sequence)", + "example_b": "He woke up, brushed his teeth, and left the house.", + "trans_b": "Он проснулся, почистил зубы и вышел из дома (цепочка фактов).", + "key_difference": "Past Simple отвечает на вопрос 'Когда это произошло?' и разрывает связь с настоящим моментом." + } + ], + "journaling_prompt": "Нарисуйте в тетради линию времени со стрелкой в прошлое. Напишите от руки 3 реальных вещи, которые вы сделали вчера с точным временем или маркерами (например: 'Yesterday I finished my work at 7 PM and cooked dinner').", + "exercises": [ + { + "sentence": "Mozart ___ more than six hundred pieces of music.", + "target": "wrote", + "clue": "написал (исторический факт в прошлом)", + "options": [ + "wrote", + "has written", + "writes", + "was writing" + ], + "explanation": "Моцарт жил в прошлом, период его жизни завершён $\rightarrow$ употребляется Past Simple: 'wrote'." + }, + { + "sentence": "Where ___ you go on your last summer vacation?", + "target": "did", + "clue": "вспомогательный глагол для прошедшего времени", + "options": [ + "did", + "do", + "were", + "have" + ], + "explanation": "Вопрос о завершённом периоде в прошлом ('last summer') строится с помощью вспомогательного глагола 'did'." + }, + { + "sentence": "I ___ buy the phone because it was ridiculously expensive.", + "target": "did not", + "clue": "не (отрицание в прошедшем времени)", + "options": [ + "did not", + "do not", + "was not", + "have not" + ], + "explanation": "Отрицание смыслового глагола 'buy' в Past Simple требует вспомогательного 'did not' ('didn't')." + }, + { + "sentence": "She ___ her keys in the office two days ago.", + "target": "lost", + "clue": "потеряла (неправильный глагол lose $\rightarrow$ lost)", + "options": [ + "lost", + "losing", + "has lost", + "loses" + ], + "explanation": "Маркер завершённого времени 'two days ago' строго требует формы Past Simple: 'lost'." + }, + { + "sentence": "When the meeting ___, everyone went to have lunch.", + "target": "ended", + "clue": "закончилась (последовательность событий)", + "options": [ + "ended", + "ends", + "has ended", + "is ending" + ], + "explanation": "Последовательность завершённых действий в прошлом передаётся в Past Simple: 'ended ... went'." + } + ] + }, + { + "unit_num": 5, + "level": "A1-A2", + "category": "Past Tenses", + "title": "Past Continuous (I was doing)", + "subtitle": "Процесс в конкретный момент в прошлом или фоновое действие", + "golden_formula": "S + was / were + V-ing\n(At 4 PM yesterday I was driving home / They were sleeping)", + "contrast_explanation": [ + { + "situation_a": "Действие в процессе в конкретный момент времени в прошлом", + "example_a": "At 10:30 last night, I was watching a documentary.", + "trans_a": "В 10:30 вчера вечером я смотрел документальный фильм (был в процессе).", + "situation_b": "Фоновое действие, во время которого произошло короткое событие", + "example_b": "It was raining when we stepped outside.", + "trans_b": "Шёл дождь (фон в процессе), когда мы вышли на улицу (короткий факт).", + "key_difference": "Past Continuous показывает длительность и незавершённость действия в определённый момент прошлого." + } + ], + "journaling_prompt": "Запишите в тетрадь: 'was' для I/he/she/it, 'were' для you/we/they. Напишите от руки 2 предложения о том, чем именно вы занимались в 8 часов вечера вчера (например: 'At 8 PM yesterday I was walking my dog in the park').", + "exercises": [ + { + "sentence": "This time yesterday, we ___ over the Atlantic ocean.", + "target": "were flying", + "clue": "летели (были в процессе в этот момент)", + "options": [ + "were flying", + "flew", + "are flying", + "have flown" + ], + "explanation": "'This time yesterday' указывает на точный момент в прошлом, когда действие находилось в развитии: 'were flying'." + }, + { + "sentence": "What ___ you doing when the fire alarm sounded?", + "target": "were", + "clue": "вспомогательный глагол для you в Past Continuous", + "options": [ + "were", + "was", + "did", + "are" + ], + "explanation": "Для местоимения 'you' во времени Past Continuous используется вспомогательный глагол 'were'." + }, + { + "sentence": "He burned his hand while he ___ cooking dinner.", + "target": "was", + "clue": "был в процессе готовки", + "options": [ + "was", + "is", + "did", + "were" + ], + "explanation": "Придаточное предложение времени с союзом 'while' описывает длительный процесс: 'while he was cooking'." + }, + { + "sentence": "The sun ___ brightly when I woke up this morning.", + "target": "was shining", + "clue": "светило (фон на момент пробуждения)", + "options": [ + "was shining", + "shone", + "has shone", + "shines" + ], + "explanation": "Солнце уже светило (длительный фон), когда произошло единичное пробуждение: 'was shining'." + }, + { + "sentence": "They didn't hear the doorbell because they ___ to loud music.", + "target": "were listening", + "clue": "слушали (процесс, объясняющий причину)", + "options": [ + "were listening", + "listened", + "are listening", + "listen" + ], + "explanation": "Они не услышали звонок, потому что в этот самый момент находились в процессе прослушивания: 'were listening'." + } + ] + }, + { + "unit_num": 6, + "level": "A1-A2", + "category": "Past Tenses", + "title": "Past Simple vs Past Continuous (I did vs I was doing)", + "subtitle": "Короткий факт vs Длительный фон: пересечение двух событий", + "golden_formula": "Background (Long): was/were + V-ing\nInterruption (Short): V2 / V-ed\n(While I was walking, I met my friend)", + "contrast_explanation": [ + { + "situation_a": "Длительное фоновое действие прерывается коротким фактом", + "example_a": "I was taking a shower when the courier knocked on the door.", + "trans_a": "Я принимал душ (фон), когда курьер постучал в дверь (факт).", + "situation_b": "Два завершённых последовательных действия (Одно за другим)", + "example_b": "I heard the knock and opened the door immediately.", + "trans_b": "Я услышал стук и сразу открыл дверь (действие за действием).", + "key_difference": "Was doing = действие уже шло. Did = действие произошло, началось или закончилось." + } + ], + "journaling_prompt": "Запишите в тетрадь формулу: 'While + Past Continuous, Past Simple'. Напишите 2 ситуации из вашей жизни, когда одно прервало другое (например: 'While I was writing code, my laptop ran out of battery').", + "exercises": [ + { + "sentence": "While I was walking in the park, I ___ a rare bird.", + "target": "saw", + "clue": "увидел (короткое событие во время прогулки)", + "options": [ + "saw", + "was seeing", + "have seen", + "see" + ], + "explanation": "Прогулка была длительным фоном (was walking), а наблюдение птицы — мгновенным событием в Past Simple: 'saw'." + }, + { + "sentence": "She ___ her leg while she was skiing in the Alps.", + "target": "broke", + "clue": "сломала (краткое прерывающее событие)", + "options": [ + "broke", + "was breaking", + "breaks", + "has broken" + ], + "explanation": "Травма произошла одномоментно внутри процесса катания на лыжах: 'broke'." + }, + { + "sentence": "When I arrived at the cafe, my colleagues ___ for me.", + "target": "were waiting", + "clue": "ждали (уже находились в процессе ожидания)", + "options": [ + "were waiting", + "waited", + "have waited", + "are waiting" + ], + "explanation": "В момент моего прихода коллеги уже сидели и ждали: фоновый процесс требует 'were waiting'." + }, + { + "sentence": "We ___ television when suddenly the power went out.", + "target": "were watching", + "clue": "смотрели (процесс перед отключением света)", + "options": [ + "were watching", + "watched", + "have watched", + "watch" + ], + "explanation": "Смотрели телевизор (длительное действие), которое было прервано внезапным отключением: 'were watching'." + }, + { + "sentence": "He picked up the phone, ___ the number, and waited.", + "target": "dialed", + "clue": "набрал (цепочка последовательных действий)", + "options": [ + "dialed", + "was dialing", + "has dialed", + "dials" + ], + "explanation": "Цепочка последовательных действий в прошлом передаётся через Past Simple: 'picked up, dialed, and waited'." + } + ] + }, + { + "unit_num": 7, + "level": "B1-B2", + "category": "Present Perfect", + "title": "Present Perfect (I have done)", + "subtitle": "Связь прошлого с настоящим: результат налицо, жизненный опыт и маркеры just / already / yet", + "golden_formula": "S + have / has + V3 (Past Participle)\nResult NOW / Life experience / just, already, yet, ever, never", + "contrast_explanation": [ + { + "situation_a": "Результат действия имеет прямое значение прямо сейчас (Result NOW)", + "example_a": "I have lost my key. (I don't have it now and can't get in)", + "trans_a": "Я потерял ключ (результат сейчас: ключа нет, не могу войти).", + "situation_b": "Жизненный опыт к настоящему моменту (Life experience: ever/never)", + "example_b": "Have you ever visited Japan?", + "trans_b": "Ты когда-нибудь в своей жизни бывал в Японии?", + "key_difference": "Present Perfect — это форма НАСТОЯЩЕГО времени о результатах прошлого. Если время названо (yesterday) — Present Perfect запрещён!" + } + ], + "journaling_prompt": "Запишите в тетрадь маркеры: just (только что), already (уже), yet (ещё нет в отрицаниях и вопросах). Напишите 2 вещи, которые вы УЖЕ сделали сегодня, и 1 вещь, которую ЕЩЁ НЕ сделали (например: 'I have already drunk coffee, but I have not had lunch yet').", + "exercises": [ + { + "sentence": "Would you like something to eat? — No thanks, I ___ lunch.", + "target": "have just had", + "clue": "только что пообедал (сыт прямо сейчас)", + "options": [ + "have just had", + "just had", + "had just", + "am having just" + ], + "explanation": "Маркер 'just' (только что) указывает на свежий результат в настоящем: 'have just had'." + }, + { + "sentence": "Don't forget to pay the electric bill. — I have ___ paid it online.", + "target": "already", + "clue": "уже (действие сделано раньше ожидаемого)", + "options": [ + "already", + "yet", + "still", + "ever" + ], + "explanation": "В утвердительных предложениях для значения 'уже сделано' ставится маркер 'already'." + }, + { + "sentence": "Has the postman delivered the morning letters ___?", + "target": "yet", + "clue": "уже / к этому моменту (в вопросах в конце)", + "options": [ + "yet", + "already", + "just", + "never" + ], + "explanation": "В вопросительных предложениях для проверки свершения действия к данному моменту на конце ставится 'yet'." + }, + { + "sentence": "She has ___ tried sushi in her entire life.", + "target": "never", + "clue": "никогда (жизненный опыт)", + "options": [ + "never", + "ever", + "yet", + "already" + ], + "explanation": "Для выражения отсутствия жизненного опыта в утвердительной грамматической конструкции используется 'never'." + }, + { + "sentence": "Look! Somebody ___ the window, cold air is coming in.", + "target": "has broken", + "clue": "разбил (результат виден прямо сейчас)", + "options": [ + "has broken", + "broke", + "was breaking", + "breaks" + ], + "explanation": "Результат виден прямо сейчас (идёт холодный воздух), важно последствие, а не когда именно разбили $\rightarrow$ 'has broken'." + } + ] + }, + { + "unit_num": 8, + "level": "B1-B2", + "category": "Present Perfect", + "title": "Present Perfect vs Past Simple (I have done vs I did)", + "subtitle": "Главная дилемма: результат в настоящем vs факт в завершённом времени", + "golden_formula": "PRESENT PERFECT: No exact finished time | Connection to NOW\nPAST SIMPLE: Exact finished time (yesterday, in 2018, when, at 5 PM)", + "contrast_explanation": [ + { + "situation_a": "Present Perfect (Период времени ещё НЕ закончился: today, this week)", + "example_a": "I have drunk two cups of tea this morning. (It is still morning)", + "trans_a": "Я выпил две чашки чая этим утром (утро ещё продолжается).", + "situation_b": "Past Simple (Период времени полностью завершён: yesterday, this morning - said at night)", + "example_b": "I drank two cups of tea this morning. (Said in the afternoon/evening)", + "trans_b": "Я выпил две чашки чая этим утром (сказано днём или вечером, утро прошло).", + "key_difference": "Если есть слова yesterday, last year, ago, in 1999, when I was... — ВСЕГДА используем Past Simple!" + } + ], + "journaling_prompt": "Разделите страницу тетради на две колонки: 'Present Perfect' и 'Past Simple'. Запишите контрастную пару: 1) факт из прошлого с точным годом, 2) факт с результатом на сейчас (например: 'I visited Italy in 2019' vs 'I have visited Italy twice').", + "exercises": [ + { + "sentence": "Did you know that Shakespeare ___ in 1616?", + "target": "died", + "clue": "умер (точная дата в завершённом прошлом)", + "options": [ + "died", + "has died", + "had died", + "dies" + ], + "explanation": "Точная дата в прошлом ('in 1616') строго запрещает Present Perfect и требует Past Simple: 'died'." + }, + { + "sentence": "I ___ my phone! Can you call my number to find it?", + "target": "have lost", + "clue": "потерял (результат актуален сейчас: ищу телефон)", + "options": [ + "have lost", + "lost", + "was losing", + "lose" + ], + "explanation": "Актуальный результат в настоящем: телефон нужен прямо сейчас, связь с моментом речи $\rightarrow$ 'have lost'." + }, + { + "sentence": "I ___ my phone yesterday, but fortunately found it in my bag.", + "target": "lost", + "clue": "потерял (вчера, период завершён)", + "options": [ + "lost", + "have lost", + "was lost", + "losing" + ], + "explanation": "Слово-маркер 'yesterday' отсекает связь с настоящим и требует Past Simple: 'lost'." + }, + { + "sentence": "___ you ever eaten fresh oysters?", + "target": "Have", + "clue": "вопрос о жизненном опыте к текущему моменту", + "options": [ + "Have", + "Did", + "Were", + "Do" + ], + "explanation": "Вопрос о жизненном опыте к настоящему моменту ('ever') строится в Present Perfect: 'Have you ever eaten...?'" + }, + { + "sentence": "When ___ you buy that stylish leather jacket?", + "target": "did", + "clue": "вопрос со словом When всегда требует Past Simple", + "options": [ + "did", + "have", + "do", + "were" + ], + "explanation": "Вопрос со словом 'When' всегда нацелен на конкретный момент в прошлом и строится ТОЛЬКО в Past Simple: 'When did you buy...?'" + } + ] + }, + { + "unit_num": 9, + "level": "A1-A2", + "category": "Past Tenses", + "title": "Used to (I used to do)", + "subtitle": "Раньше делал регулярно, но сейчас больше так не делаю", + "golden_formula": "S + used to + V1\nNegative: did not use to + V1 | Question: Did you use to + V1?\n(I used to play tennis a lot, but now I prefer swimming)", + "contrast_explanation": [ + { + "situation_a": "Регулярная привычка в прошлом, которой больше нет (Past habit that stopped)", + "example_a": "I used to smoke twenty cigarettes a day, but I quit five years ago.", + "trans_a": "Я раньше выкуривал по 20 сигарет в день, но бросил 5 лет назад.", + "situation_b": "Состояние или факт в прошлом, изменившийся сейчас (Past state that changed)", + "example_b": "There used to be a movie theater here, but it closed down.", + "trans_b": "Здесь раньше был кинотеатр, но он закрылся.", + "key_difference": "Used to существует ТОЛЬКО в прошедшем времени. Для настоящих привычек используется Present Simple с usually." + } + ], + "journaling_prompt": "Запишите формулу в тетрадь. Напишите 2 предложения о том, чем вы регулярно занимались в детстве или юности, но больше не занимаетесь (например: 'I used to play video games all night, but now I sleep early').", + "exercises": [ + { + "sentence": "She ___ long curly hair when she was a teenager.", + "target": "used to have", + "clue": "раньше имела (сейчас причёска другая)", + "options": [ + "used to have", + "uses to have", + "is used to have", + "use to have" + ], + "explanation": "Конструкция 'used to have' выражает постоянное состояние в прошлом, которое изменилось в настоящем." + }, + { + "sentence": "We ___ live in a small village before moving to the capital.", + "target": "used to", + "clue": "раньше жили (прошлое состояние)", + "options": [ + "used to", + "use to", + "are used to", + "used" + ], + "explanation": "Для описания прежнего места жительства, которое сменилось, используется 'used to'." + }, + { + "sentence": "Did you ___ play the piano when you were younger?", + "target": "use to", + "clue": "форма инфинитива после вспомогательного did", + "options": [ + "use to", + "used to", + "using to", + "used" + ], + "explanation": "После вспомогательного глагола 'Did' в вопросительном предложении пишется форма без окончания -d: 'Did you use to...?'" + }, + { + "sentence": "I didn't ___ like spicy Indian food, but now I love it.", + "target": "use to", + "clue": "раньше не любил (отрицание после didn't)", + "options": [ + "use to", + "used to", + "uses to", + "using" + ], + "explanation": "После 'didn't' используется начальная форма 'use to': 'didn't use to like'." + }, + { + "sentence": "He ___ play football every Sunday, but now he is too busy.", + "target": "used to", + "clue": "раньше играл (привычка прекратилась)", + "options": [ + "used to", + "uses to", + "was used to", + "is used to" + ], + "explanation": "Регулярная прошлая привычка, уступившая место занятости в настоящем $\rightarrow$ 'used to'." + } + ] + }, + { + "unit_num": 10, + "level": "B1-B2", + "category": "Future", + "title": "Future: Will vs Going to vs Present Continuous", + "subtitle": "Спонтанное решение (Will) vs Намерение (Going to) vs 100% договоренность (Present Continuous)", + "golden_formula": "WILL: Spontaneous decision NOW ('I'll help you')\nGOING TO: Prior intention / Evidence ('I am going to buy a car')\nPRESENT CONT: Fixed arrangement with date/people ('I am flying to Rome on Friday')", + "contrast_explanation": [ + { + "situation_a": "Will (Спонтанное решение в момент речи / обещание / прогноз)", + "example_a": "The phone is ringing. — I'll answer it!", + "trans_a": "Телефон звонит. — Я отвечу (решил сию секунду)!", + "situation_b": "Going to (Заранее обдуманное намерение / очевидность по фактам)", + "example_b": "Look at those black clouds! It is going to rain.", + "trans_b": "Посмотри на эти чёрные тучи! Сейчас пойдёт дождь (налицо очевидные признаки).", + "key_difference": "Present Continuous для будущего требует подтверждённой договорённости: куплены билеты, назначена встреча в календаре." + } + ], + "journaling_prompt": "Нарисуйте 3 колонки: Will (спонтанно), Going to (намерение), Pres. Cont. (куплены билеты/запланировано). Напишите по 1 предложению в каждую колонку о своих реальных планах.", + "exercises": [ + { + "sentence": "Have you decided what to drink? — Yes, I ___ a glass of orange juice, please.", + "target": "will have", + "clue": "возьму (спонтанное решение в момент заказа)", + "options": [ + "will have", + "am having", + "am going to have", + "have" + ], + "explanation": "Заказ в кафе или спонтанное решение в момент речи выражается через 'will': 'I'll have...'." + }, + { + "sentence": "Why are you turning on the television? — I ___ watch the evening news.", + "target": "am going to", + "clue": "собираюсь (намерение было сформировано заранее)", + "options": [ + "am going to", + "will", + "am", + "would" + ], + "explanation": "Человек включил телевизор, потому что уже заранее намеревался посмотреть новости: 'am going to watch'." + }, + { + "sentence": "I can't meet you on Friday afternoon because I ___ to the dentist at 3 PM.", + "target": "am going", + "clue": "иду (записан на конкретное время в расписании)", + "options": [ + "am going", + "will go", + "go", + "shall go" + ], + "explanation": "Договорённость с точным временем в расписании передаётся через Present Continuous: 'I am going to the dentist'." + }, + { + "sentence": "Watch out! That unstable stack of boxes ___ fall!", + "target": "is going to", + "clue": "сейчас упадёт (очевидные физические признаки)", + "options": [ + "is going to", + "will", + "is falling", + "shall" + ], + "explanation": "Прогноз на основе видимых прямо сейчас признаков (коробки уже качаются) выражается через 'is going to'." + }, + { + "sentence": "Don't worry about carrying that heavy bag alone. I ___ help you.", + "target": "will", + "clue": "помогу (спонтанное предложение помощи)", + "options": [ + "will", + "am going to", + "am helping", + "help" + ], + "explanation": "Предложение помощи в момент разговора выражается формой 'I will help you'." + } + ] + }, + { + "unit_num": 11, + "level": "B1-B2", + "category": "Modals", + "title": "Modal Verbs: Must, Have to, Should", + "subtitle": "Внутреннее решение (Must) vs Внешнее правило (Have to) vs Совет (Should)", + "golden_formula": "MUST: Speaker's personal feeling ('I must call my mom')\nHAVE TO: External law / rule / obligation ('I have to wear a helmet at work')\nSHOULD: Good idea / friendly advice ('You should sleep more')", + "contrast_explanation": [ + { + "situation_a": "Must (Личное внутреннее убеждение говорящего)", + "example_a": "I must get up earlier tomorrow; I want to do morning exercises.", + "trans_a": "Я должен встать пораньше завтра; я сам этого хочу (моё решение).", + "situation_b": "Have to (Внешнее правило, закон, обстоятельства)", + "example_b": "In the UK, drivers have to drive on the left side of the road.", + "trans_b": "В Великобритании водители обязаны ехать по левой стороне (закон государства).", + "key_difference": "Mustn't = СТРОГО ЗАПРЕЩЕНО. Don't have to = НЕ ОБЯЗАТЕЛЬНО (но можно, если хочешь)." + } + ], + "journaling_prompt": "Запишите в тетрадь контраст: Mustn't (запрет) vs Don't have to (нет необходимости). Напишите 1 вещь, которую вы обязаны делать по работе (have to), и 1 совет самому себе (should).", + "exercises": [ + { + "sentence": "You ___ touch that high-voltage electrical cable! It is lethal.", + "target": "must not", + "clue": "нельзя, строго запрещено", + "options": [ + "must not", + "do not have to", + "should", + "might not" + ], + "explanation": "Категорический запрет опасного действия выражается модальным глаголом 'must not' ('mustn't')." + }, + { + "sentence": "Tomorrow is Sunday, so I ___ wake up early for work.", + "target": "do not have to", + "clue": "нет необходимости, не обязан", + "options": [ + "do not have to", + "must not", + "should", + "cannot" + ], + "explanation": "Отсутствие необходимости ('не нужно вставать, но можно, если захочешь') передаётся через 'do not have to'." + }, + { + "sentence": "You have been coughing for a week; you ___ see a doctor.", + "target": "should", + "clue": "следует (дружеский совет)", + "options": [ + "should", + "have to", + "must", + "shall" + ], + "explanation": "Рекомендация или разумный совет выражается через 'should'." + }, + { + "sentence": "All passengers ___ show a valid boarding pass before boarding.", + "target": "have to", + "clue": "обязаны (официальное правило авиакомпании)", + "options": [ + "have to", + "should", + "might", + "would" + ], + "explanation": "Официальные правила, законы и инструкции третьей стороны передаются через 'have to'." + }, + { + "sentence": "I ___ remember to send birthday flowers to my grandmother.", + "target": "must", + "clue": "должен (личное внутреннее побуждение)", + "options": [ + "must", + "may", + "can", + "ought" + ], + "explanation": "Внутренний моральный долг и личное решение говорящего выражаются через 'must'." + } + ] + }, + { + "unit_num": 12, + "level": "B1-B2", + "category": "Conditionals", + "title": "First vs Second Conditional (If I do vs If I did)", + "subtitle": "Реальное условие на будущее vs Воображаемая / маловероятная ситуация", + "golden_formula": "1st COND (Real Future): If + Present Simple, will + V1\n(If it rains tomorrow, we will stay home)\n2nd COND (Unreal / Imaginary): If + Past Simple, would + V1\n(If I had a million dollars, I would travel the world)", + "contrast_explanation": [ + { + "situation_a": "First Conditional (Вполне реальная ситуация в будущем)", + "example_a": "If you study hard, you will pass the exam easily.", + "trans_a": "Если ты будешь усердно учиться, ты легко сдашь экзамен (реальная вероятность).", + "situation_b": "Second Conditional (Воображаемая или маловероятная ситуация в настоящем/будущем)", + "example_b": "If I knew his phone number, I would call him right now.", + "trans_b": "Если бы я знал его номер (но я не знаю!), я бы позвонил ему прямо сейчас.", + "key_difference": "В части с IF никогда не ставится will или would! (Никаких 'If I will' или 'If I would')." + } + ], + "journaling_prompt": "Запишите формулы 1st и 2nd Conditionals цветными маркерами. Напишите 1 реальное условие на завтра (If...) и 1 мечту/воображаемую ситуацию (If I had / If I were...).", + "exercises": [ + { + "sentence": "If the weather ___ sunny tomorrow, we will go for a picnic.", + "target": "is", + "clue": "будет (в части If ставится Present Simple)", + "options": [ + "is", + "will be", + "was", + "would be" + ], + "explanation": "В 1st Conditional в придаточном с 'if' используется Present Simple ('is'), а не 'will be'." + }, + { + "sentence": "If I ___ more free time, I would learn how to play guitar.", + "target": "had", + "clue": "было бы (нереальное условие в настоящем)", + "options": [ + "had", + "have", + "will have", + "would have" + ], + "explanation": "Во 2nd Conditional для воображаемой ситуации в части 'if' ставится Past Simple: 'had'." + }, + { + "sentence": "What ___ you do if you won the lottery tomorrow?", + "target": "would", + "clue": "сделал бы (гипотетический результат)", + "options": [ + "would", + "will", + "did", + "can" + ], + "explanation": "Маловероятная гипотетическая ситуация (2nd Conditional: 'if you won') требует в главной части 'would you do'." + }, + { + "sentence": "If you don't leave now, you ___ miss your flight.", + "target": "will", + "clue": "опоздаешь (реальное последствие)", + "options": [ + "will", + "would", + "did", + "are" + ], + "explanation": "Реальное предупреждение на ближайшее будущее (1st Conditional): 'If you don't leave ... you will miss'." + }, + { + "sentence": "If I ___ in your position, I would accept the job offer.", + "target": "were", + "clue": "был бы (традиционная сослагательная форма were)", + "options": [ + "were", + "am", + "will be", + "would be" + ], + "explanation": "В условных предложениях 2-го типа для всех лиц часто используется форма 'were' ('If I were you...')." + } + ] + }, + { + "unit_num": 13, + "level": "B1-B2", + "category": "Passive Voice", + "title": "Passive Voice (It is done / It was done)", + "subtitle": "Пассивный залог: фокус на объекте или результате, а не на исполнителе", + "golden_formula": "Present Passive: am / is / are + V3 (Past Participle)\nPast Passive: was / were + V3\nBy + agent: used only when the doer is important ('painted by Da Vinci')", + "contrast_explanation": [ + { + "situation_a": "Active Voice (Фокус на том, КТО совершает действие)", + "example_a": "Alexander Bell invented the telephone in 1876.", + "trans_a": "Александр Белл изобрёл телефон в 1876 году.", + "situation_b": "Passive Voice (Фокус на том, ЧТО произошло с объектом)", + "example_b": "The telephone was invented in 1876.", + "trans_b": "Телефон был изобретён в 1876 году (важен телефон и дата, а не персона).", + "key_difference": "Пассив используется, когда исполнитель неизвестен, очевиден или не имеет решающего значения." + } + ], + "journaling_prompt": "Запишите формулу пассивного залога: be + V3. Напишите от руки 2 примера из сферы технологий (например: 'Python was created in 1991', 'My data is backed up daily').", + "exercises": [ + { + "sentence": "Millions of emails ___ sent around the globe every single minute.", + "target": "are", + "clue": "отправляются (Present Passive с множественным числом)", + "options": [ + "are", + "is", + "were", + "have" + ], + "explanation": "Подлежащее 'Millions of emails' во множественном числе в настоящем времени требует: 'are sent'." + }, + { + "sentence": "This ancient castle ___ built in the fourteenth century.", + "target": "was", + "clue": "был построен (Past Passive в единственном числе)", + "options": [ + "was", + "is", + "were", + "has" + ], + "explanation": "Замок один ('castle'), постройка завершена в XIV веке $\rightarrow$ 'was built'." + }, + { + "sentence": "The Mona Lisa was painted ___ Leonardo da Vinci.", + "target": "by", + "clue": "предлог исполнителя действия в пассиве", + "options": [ + "by", + "with", + "from", + "of" + ], + "explanation": "Исполнитель действия в пассивном залоге вводится предлогом 'by'." + }, + { + "sentence": "The new operating system ___ tested by engineers right now.", + "target": "is being", + "clue": "тестируется прямо сейчас (Present Continuous Passive)", + "options": [ + "is being", + "is", + "was", + "has been" + ], + "explanation": "Пассивное действие в процессе прямо в момент речи требует формы 'is being tested'." + }, + { + "sentence": "All rooms in the hotel ___ cleaned thoroughly every morning.", + "target": "are", + "clue": "убираются (регулярный Present Passive)", + "options": [ + "are", + "is", + "were", + "being" + ], + "explanation": "Регулярное повторяющееся пассивное действие во множественном числе ('rooms') $\rightarrow$ 'are cleaned'." + } + ] + }, + { + "unit_num": 14, + "level": "A1-A2", + "category": "Articles", + "title": "Articles: A/An vs The vs Zero Article", + "subtitle": "Один из многих (A/An) vs Конкретный / единственный (The) vs Обобщение (Zero)", + "golden_formula": "A / AN: Any one non-specific item ('Can I have an apple?')\nTHE: Specific item known to listener / Unique ('Look at the Moon')\nZERO (No article): Plurals & Uncountable in general ('Cats love milk')", + "contrast_explanation": [ + { + "situation_a": "A/An (Первое упоминание / любой один представитель класса)", + "example_a": "I bought a jacket yesterday.", + "trans_a": "Я купил какую-то куртку вчера (собеседник слышит о ней впервые).", + "situation_b": "The (Конкретный предмет, уже известный обоим собеседникам)", + "example_b": "The jacket fits me perfectly.", + "trans_b": "Эта (та самая) куртка сидит на мне идеально.", + "key_difference": "Не используйте артикль со множественным числом или неисчисляемыми существительными, когда говорите о явлении вообще!" + } + ], + "journaling_prompt": "Нарисуйте в тетради 3 колонки: A/An, The, Ø (без артикля). Напишите цепочку из 2 предложений: первое с 'a', второе с 'the' (например: 'I adopted a cat. The cat is black').", + "exercises": [ + { + "sentence": "She wants to buy ___ electric car next month.", + "target": "an", + "clue": "электромобиль (слово начинается с гласного звука)", + "options": [ + "an", + "a", + "the", + "—" + ], + "explanation": "Перед исчисляемым существительным в единственном числе, начинающимся с гласного звука [e], ставится артикль 'an'." + }, + { + "sentence": "Could you please close ___ window? It is getting chilly.", + "target": "the", + "clue": "окно (конкретное окно в этой комнате)", + "options": [ + "the", + "a", + "an", + "—" + ], + "explanation": "Собеседникам понятно, о каком именно окне в комнате идёт речь $\rightarrow$ определённый артикль 'the'." + }, + { + "sentence": "___ apples are good for your health.", + "target": "—", + "clue": "яблоки вообще (без артикля)", + "options": [ + "—", + "The", + "An", + "A" + ], + "explanation": "Когда мы говорим о яблоках в целом как о классе продуктов во множественном числе, артикль отсутствует ('Zero Article')." + }, + { + "sentence": "___ Moon orbits around our planet.", + "target": "The", + "clue": "Луна (уникальный единственный в природе объект)", + "options": [ + "The", + "A", + "An", + "—" + ], + "explanation": "Уникальные астрономические объекты, единственные в своём роде, всегда требуют артикля 'The': 'The Moon'." + }, + { + "sentence": "He ordered a soup and a salad; ___ soup was delicious.", + "target": "the", + "clue": "суп (второе упоминание того же самого супа)", + "options": [ + "the", + "a", + "an", + "—" + ], + "explanation": "При повторном упоминании объекта ('a soup' $\rightarrow$ 'the soup') используется определённый артикль 'the'." + } + ] + }, + { + "unit_num": 15, + "level": "B1-B2", + "category": "Gerund & Infinitive", + "title": "Gerund vs Infinitive (doing vs to do)", + "subtitle": "Герундий (-ing) vs Инфинитив (to do) после глаголов и предлогов", + "golden_formula": "VERB + ING: enjoy, avoid, mind, finish, suggest, look forward to\nVERB + TO DO: decide, hope, promise, refuse, manage, want, afford\nAFTER PREPOSITIONS: ALWAYS -ING (good at coding, interested in learning)", + "contrast_explanation": [ + { + "situation_a": "Глаголы, требующие только герундия (-ing)", + "example_a": "I really enjoy reading books in the evening.", + "trans_a": "Мне очень нравится читать книги по вечерам (enjoy + V-ing).", + "situation_b": "Глаголы, требующие только инфинитива (to do)", + "example_b": "We decided to stay at home because of the storm.", + "trans_b": "Мы решили остаться дома из-за шторма (decide + to do).", + "key_difference": "После любых предлогов (in, at, about, without, before, after) ВСЕГДА используется форма -ing!" + } + ], + "journaling_prompt": "Запишите в тетрадь 2 списка: 1) Глаголы + -ing (enjoy, avoid), 2) Глаголы + to (decide, hope). Напишите 2 предложения: одно с тем, чем вы наслаждаетесь (enjoy doing), другое с тем, что решили сделать (decided to do).", + "exercises": [ + { + "sentence": "I am looking forward to ___ you at the conference.", + "target": "meeting", + "clue": "встретить (после предлога to в устойчивой связке look forward to)", + "options": [ + "meeting", + "meet", + "to meet", + "met" + ], + "explanation": "В выражении 'look forward to' частица 'to' является предлогом, поэтому после неё обязательно используется герундий: 'meeting'." + }, + { + "sentence": "She decided ___ for the scholarship.", + "target": "to apply", + "clue": "подать заявку (после глагола decide)", + "options": [ + "to apply", + "applying", + "apply", + "applied" + ], + "explanation": "Глагол 'decide' требует после себя инфинитива с частицей to: 'decided to apply'." + }, + { + "sentence": "You should avoid ___ heavily right before bedtime.", + "target": "eating", + "clue": "есть (после глагола avoid)", + "options": [ + "eating", + "to eat", + "eat", + "eaten" + ], + "explanation": "Глагол 'avoid' (избегать) управляет исключительно формой герундия: 'avoid eating'." + }, + { + "sentence": "He is very good at ___ complex algorithmic problems.", + "target": "solving", + "clue": "решать (после предлога at)", + "options": [ + "solving", + "to solve", + "solve", + "solved" + ], + "explanation": "После любых английских предлогов (здесь: предлог 'at') глагол принимает форму герундия: 'good at solving'." + }, + { + "sentence": "We can't afford ___ on a luxury cruise this summer.", + "target": "to go", + "clue": "поехать (после глагола afford)", + "options": [ + "to go", + "going", + "go", + "gone" + ], + "explanation": "Глагол 'afford' (позволить себе финансово) требует инфинитива с частицей to: 'afford to go'." + } + ] + } +] \ No newline at end of file diff --git a/data/seeds/phrasal_verbs.json b/data/seeds/phrasal_verbs.json new file mode 100644 index 0000000..2274f4c --- /dev/null +++ b/data/seeds/phrasal_verbs.json @@ -0,0 +1,159 @@ +{ + "take off": "взлетать; снимать (одежду); быстро уходить", + "take up": "браться за (хобби/дело); занимать (место, время)", + "take on": "брать на себя (ответственность); нанимать", + "take over": "захватывать контроль; вступать во владение", + "take in": "усваивать; приютить; обманывать", + "take out": "вынимать; приглашать (в ресторан); устранять", + "take back": "возвращать (вещь); брать свои слова назад", + "take after": "быть похожим на (родителей)", + "take apart": "разбирать на части", + "give up": "сдаваться; бросать (привычку)", + "give in": "уступать, сдаваться под натиском", + "give away": "раздавать даром; выдавать (секрет)", + "give out": "раздавать; иссякать, отказывать", + "give back": "возвращать", + "get along with": "ладить, быть в хороших отношениях с кем-то", + "get along": "ладить; справляться", + "get away": "убегать, уезжать в отпуск", + "get away with": "выходить сухим из воды", + "get back": "возвращаться", + "get by": "сводить концы с концами, выживать", + "get off": "выходить (из автобуса/поезда); отделываться", + "get on": "садиться (на транспорт); ладить; продолжать", + "get over": "преодолевать, оправляться (от болезни/потери)", + "get rid of": "избавляться от", + "get through": "справляться; дозваниваться", + "get up": "вставать (с постели); подниматься", + "go on": "продолжать; происходить", + "go out": "выходить в свет; встречаться; гаснуть (об огне/свете)", + "go through": "проходить через, испытывать (трудности); просматривать", + "go back": "возвращаться", + "go off": "звонить (о будильнике); взрываться; портиться (о еде)", + "go over": "проверять, внимательно просматривать; повторять", + "go ahead": "начинать, продолжать; давать добро", + "go with": "сочетаться с, подходить к", + "go down": "спускаться, снижаться; входить в историю", + "go up": "подниматься, расти (о цене)", + "come up with": "придумывать, предлагать (идею, решение)", + "come across": "случайно натолкнуться на, производить впечатление", + "come back": "возвращаться", + "come in": "входить", + "come out": "выходить (в свет); выясняться, обнаруживаться", + "come over": "приходить в гости; охватывать", + "come on": "давай!; появляться; начинаться", + "come up": "возникать, всплывать (о вопросе); подходить", + "come down to": "сводиться к", + "look forward to": "ждать с нетерпением, предвкушать", + "look for": "искать", + "look after": "присматривать за, заботиться", + "look into": "исследовать, изучать, разбираться", + "look up": "искать (в словаре/справочнике); улучшаться", + "look up to": "уважать, брать пример с", + "look down on": "смотреть свысока, презирать", + "look out": "остерегаться, быть начеку", + "look around": "осматриваться", + "turn off": "выключать (прибор, свет, воду)", + "turn on": "включать (прибор, свет, воду)", + "turn up": "прибавлять громкость; неожиданно объявляться", + "turn down": "убавлять громкость; отклонять, отвергать", + "turn out": "оказываться; оборачиваться (результатом)", + "turn into": "превращаться в", + "turn back": "поворачивать назад, разворачиваться", + "turn over": "переворачивать; передавать", + "set up": "устанавливать, организовывать, подготавливать", + "set off": "отправляться в путь; вызывать (реакцию)", + "set out": "отправляться в путь; намереваться", + "put on": "надевать (одежду); включать; прибавлять в весе", + "put off": "откладывать (на потом); вызывать отвращение", + "put out": "тушить (огонь); выпускать (продукцию)", + "put up with": "мириться с, терпеть", + "put away": "убирать на место", + "put forward": "выдвигать (идею/предложение)", + "run out of": "заканчиваться, исчерпать запасы", + "run out": "иссякать, заканчиваться", + "run into": "случайно встретить; сталкиваться", + "run away": "убегать, сбегать", + "run over": "переехать, сбить; повторить бегло", + "bring up": "воспитывать (детей); поднимать (тему в разговоре)", + "bring about": "вызывать, приводить к", + "bring back": "возвращать, вызывать воспоминания", + "bring in": "привлекать, вводить (закон/доход)", + "call off": "отменять (встречу/мероприятие)", + "call back": "перезванивать; отзывать", + "call on": "навещать; призывать к ответу", + "call for": "требовать, предусматривать", + "carry out": "выполнять, приводить в исполнение (план/исследование)", + "carry on": "продолжать (дело/разговор)", + "break down": "ломаться (о технике); терять самообладание", + "break up": "расставаться (об отношениях); распадаться", + "break into": "вламываться, незаконно проникать", + "break out": "разразиться (о войне/пожаре); сбегать (из тюрьмы)", + "fall apart": "разваливаться на куски, терпеть крах", + "fall behind": "отставать (в графике/учёбе)", + "fall for": "попасться на удочку; влюбиться по уши", + "fall out": "ссориться; выпадать", + "keep up with": "поспевать за, держаться наравне с", + "keep up": "поддерживать на том же уровне", + "keep on": "упорно продолжать", + "keep away": "держаться подальше, избегать", + "hold on": "подождать (на линии); крепко держаться", + "hold up": "задерживать; грабить", + "hold back": "сдерживать (эмоции/прогресс)", + "point out": "указывать, обращать внимание на", + "figure out": "выяснить, понять, разобраться", + "find out": "узнавать, выяснять (информацию)", + "show up": "появляться, приходить (неожиданно)", + "show off": "выпендриваться, хвастаться", + "work out": "тренироваться; решать проблему; складываться успешно", + "catch up with": "догонять, нагонять (упущенное/кого-то)", + "catch up": "догонять; наверстывать упущенное", + "check in": "регистрироваться (в отеле/аэропорту)", + "check out": "выселяться; проверять, заценить", + "drop in": "заглянуть в гости без предупреждения", + "drop by": "зайти мимоходом", + "drop off": "подвезти (на машине); заснуть", + "end up": "оказаться в итоге (где-то или в каком-то состоянии)", + "stand out": "выделяться, бросаться в глаза", + "stand for": "означать; выступать в защиту", + "cut down on": "сокращать потребление (сахара/расходов)", + "cut down": "срубать; сокращать", + "cut off": "отрезать, прерывать (связь)", + "fill in": "заполнять (пропуски/форму); вводить в курс дела", + "fill out": "заполнять (анкету/бланк)", + "hang out": "проводить время, тусоваться", + "hang up": "вешать телефонную трубку", + "pass away": "умирать, уходить из жизни", + "pass out": "терять сознание, отключаться", + "pick up": "подбирать; заезжать за кем-то; учить на лету", + "pull through": "справляться, выкарабкиваться (из кризиса/болезни)", + "pull over": "съехать на обочину, притормозить", + "back up": "поддерживать; создавать резервную копию", + "clear up": "проясняться (о погоде); убирать, наводить порядок", + "slow down": "замедляться", + "speed up": "ускоряться", + "switch on": "включать", + "switch off": "выключать", + "throw away": "выбрасывать (мусор)", + "try on": "примерять (одежду)", + "try out": "пробовать, испытывать", + "watch out": "остерегаться, беречься", + "write down": "записывать на бумаге", + "calm down": "успокаиваться", + "cheer up": "приободряться, поднимать настроение", + "make up for": "компенсировать, заглаживать вину", + "make up": "мириться; сочинять (историю); краситься", + "settle down": "остепениться; успокоиться", + "sort out": "улаживать, разбираться с проблемами", + "blow up": "взрываться; выходить из себя", + "burn down": "сгорать дотла", + "tear down": "сносить (здание)", + "wear out": "изнашиваться; утомлять", + "stick to": "придерживаться (плана/правил)", + "kick off": "начинать, давать старт", + "lock up": "запирать на замок", + "pay off": "окупаться; расплачиваться с долгами", + "count on": "рассчитывать на кого-то", + "stay up": "бодрствовать, не ложиться спать", + "speak up": "говорить громче; высказываться смело" +} \ No newline at end of file diff --git a/data/seeds/reading_articles.json b/data/seeds/reading_articles.json new file mode 100644 index 0000000..f2e83d9 --- /dev/null +++ b/data/seeds/reading_articles.json @@ -0,0 +1,322 @@ +[ + { + "id": "art-01", + "title": "The James Webb Space Telescope: Peering into the Cosmic Dawn", + "title_ru": "Космический телескоп Джеймс Уэбб: взгляд в космический рассвет", + "topic": "Science", + "level": "B1", + "read_time_min": 2, + "paragraphs": [ + "Operating in the cold vacuum of deep space, the James Webb Space Telescope observes the universe in high-resolution infrared light. Its massive gold-coated beryllium mirror captures faint photons emitted by the earliest galaxies over thirteen billion years ago.", + "Unlike optical telescopes, infrared astronomy allows scientists to pierce through dense cosmic dust clouds where stars and planetary systems are born. Recently, the observatory discovered complex organic molecules in distant stellar nurseries, challenging previous models of early cosmic chemistry." + ], + "paragraphs_ru": [ + "Работая в холодном вакууме глубокого космоса, космический телескоп «Джеймс Уэбб» наблюдает за Вселенной в инфракрасном диапазоне высокого разрешения. Его массивное бериллиевое зеркало с золотым покрытием улавливает слабые фотоны, испущенные самыми ранними галактиками более тринадцати миллиардов лет назад.", + "В отличие от оптических телескопов, инфракрасная астрономия позволяет учёным проникать сквозь плотные облака космической пыли, где рождаются звёзды и планетные системы. Недавно обсерватория обнаружила сложные органические молекулы в далёких звёздных колыбелях, что поставило под сомнение прежние модели ранней космической химии." + ], + "vocabulary_highlights": [ + { + "term": "vacuum", + "trans": "вакуум, пустота" + }, + { + "term": "beryllium", + "trans": "бериллий" + }, + { + "term": "faint", + "trans": "слабый, едва заметный" + }, + { + "term": "photons", + "trans": "фотоны" + }, + { + "term": "stellar nurseries", + "trans": "звёздные колыбели" + }, + { + "term": "pierce through", + "trans": "проникать сквозь, протыкать" + } + ] + }, + { + "id": "art-02", + "title": "The Hidden Architecture of Neural Networks", + "title_ru": "Скрытая архитектура нейронных сетей", + "topic": "Technology", + "level": "B2", + "read_time_min": 2, + "paragraphs": [ + "Modern artificial neural networks are loosely inspired by the biological connections in the human cortex. Each artificial neuron computes a weighted sum of its inputs and applies a non-linear activation function before propagating the signal onward.", + "During the backpropagation process, the network calculates gradient vectors to incrementally adjust billions of internal parameters. This iterative mathematical tuning enables language models to perceive subtle nuances of syntax, sentiment, and context without explicit hard-coded rules." + ], + "paragraphs_ru": [ + "Современные искусственные нейронные сети отдалённо вдохновлены биологическими связями в коре головного мозга человека. Каждый искусственный нейрон вычисляет взвешенную сумму своих входов и применяет нелинейную функцию активации перед передачей сигнала дальше.", + "В процессе обратного распространения ошибки сеть вычисляет векторы градиента, чтобы постепенно корректировать миллиарды внутренних параметров. Эта итеративная математическая настройка позволяет языковым моделям улавливать тонкие нюансы синтаксиса, тональности и контекста без явных жестко заданных правил." + ], + "vocabulary_highlights": [ + { + "term": "loosely inspired", + "trans": "отдалённо вдохновлённый" + }, + { + "term": "cortex", + "trans": "кора (головного мозга)" + }, + { + "term": "weighted sum", + "trans": "взвешенная сумма" + }, + { + "term": "propagating", + "trans": "распространяющий, передающий" + }, + { + "term": "gradient vectors", + "trans": "векторы градиента" + }, + { + "term": "subtle nuances", + "trans": "тонкие нюансы" + } + ] + }, + { + "id": "art-03", + "title": "The Remarkable Intelligence of Crows and Ravens", + "title_ru": "Удивительный интеллект ворон и воронов", + "topic": "Nature", + "level": "B1", + "read_time_min": 2, + "paragraphs": [ + "Corvids, the bird family that includes ravens and crows, display cognitive abilities rivaling those of primates. Laboratory experiments reveal that crows can fashion specialized hooks from wire to retrieve food containers placed out of beak reach.", + "Furthermore, field observations demonstrate that wild crows remember specific human faces for several years and communicate warnings about hostile individuals to the rest of the flock across generations." + ], + "paragraphs_ru": [ + "Врановые — семейство птиц, включающее воронов и ворон, демонстрируют когнитивные способности, соперничающие со способностями приматов. Лабораторные эксперименты показывают, что вороны могут изготавливать специальные крючки из проволоки, чтобы доставать контейнеры с едой, находящиеся вне досягаемости клюва.", + "Более того, полевые наблюдения доказывают, что дикие вороны помнят конкретные человеческие лица в течение нескольких лет и передают предупреждения о недружелюбных особях остальной стае через поколения." + ], + "vocabulary_highlights": [ + { + "term": "corvids", + "trans": "врановые (птицы)" + }, + { + "term": "cognitive abilities", + "trans": "когнитивные способности" + }, + { + "term": "rivaling", + "trans": "соперничающий с" + }, + { + "term": "fashion hooks", + "trans": "изготавливать крючки" + }, + { + "term": "hostile individuals", + "trans": "враждебные особи, недоброжелатели" + }, + { + "term": "flock", + "trans": "стая" + } + ] + }, + { + "id": "art-04", + "title": "Why We Sleep: The Science of Memory Consolidation", + "title_ru": "Зачем мы спим: наука о консолидации памяти", + "topic": "Health", + "level": "B1", + "read_time_min": 2, + "paragraphs": [ + "While the body rests during deep sleep, the brain is engaged in vigorous maintenance work. The hippocampus transfers newly acquired information into the neocortex for long-term storage, effectively converting fragile short-term memories into enduring knowledge.", + "Simultaneously, the glymphatic system flushes away metabolic waste and toxic proteins that accumulate between neurons during waking hours. Sleep deprivation severely impairs this cleaning cycle, making rapid vocabulary retention far more difficult." + ], + "paragraphs_ru": [ + "Пока тело отдыхает во время глубокого сна, мозг занят активной работой по техобслуживанию. Гиппокамп переносит вновь полученную информацию в неокортекс для долговременного хранения, эффективно преобразуя хрупкие кратковременные воспоминания в прочные знания.", + "Одновременно с этим глимфатическая система вымывает метаболические отходы и токсичные белки, которые накапливаются между нейронами в часы бодрствования. Недосыпание серьёзно нарушает этот цикл очистки, делая быстрое запоминание словарного запаса намного более трудным." + ], + "vocabulary_highlights": [ + { + "term": "vigorous maintenance", + "trans": "активное техобслуживание / поддержка" + }, + { + "term": "fragile memories", + "trans": "хрупкие воспоминания" + }, + { + "term": "enduring knowledge", + "trans": "прочные, долговечные знания" + }, + { + "term": "flushes away", + "trans": "смывает, вымывает" + }, + { + "term": "sleep deprivation", + "trans": "депривация сна, недосыпание" + }, + { + "term": "vocabulary retention", + "trans": "удержание словарного запаса" + } + ] + }, + { + "id": "art-05", + "title": "The Antikythera Mechanism: Ancient Greek Analog Computer", + "title_ru": "Антикитерский механизм: древнегреческий аналоговый компьютер", + "topic": "History", + "level": "B2", + "read_time_min": 2, + "paragraphs": [ + "Discovered by sponge divers inside a Roman shipwreck near the Greek island of Antikythera in 1901, this corroded bronze device bewildered historians for decades. Modern micro-computed tomography revealed an intricate clockwork mechanism consisting of over thirty precision gear wheels.", + "Constructed around the second century BC, the mechanism accurately tracked the astronomical positions of the Sun, Moon, and five known planets. It could even predict solar and lunar eclipses years in advance, showcasing a technological sophistication unmatched until fourteenth-century mechanical clocks." + ], + "paragraphs_ru": [ + "Обнаруженное ловцами губок внутри римского кораблекрушения возле греческого острова Антикитера в 1901 году, это корродированное бронзовое устройство приводило историков в замешательство на протяжении десятилетий. Современная микрокомпьютерная томография выявила сложнейший часовой механизм, состоящий из более чем тридцати прецизионных зубчатых колёс.", + "Созданный около второго века до нашей эры, механизм точно отслеживал астрономические положения Солнца, Луны и пяти известных планет. Он мог даже предсказывать солнечные и лунные затмения на годы вперёд, демонстрируя технологическую сложность, которой не было равных вплоть до механических часов XIV века." + ], + "vocabulary_highlights": [ + { + "term": "sponge divers", + "trans": "ловцы губок" + }, + { + "term": "corroded bronze", + "trans": "подвергшаяся коррозии бронза" + }, + { + "term": "bewildered", + "trans": "сбивал с толку, озадачивал" + }, + { + "term": "gear wheels", + "trans": "зубчатые колёса, шестерни" + }, + { + "term": "lunar eclipses", + "trans": "лунные затмения" + }, + { + "term": "sophistication", + "trans": "утончённость, сложность конструкции" + } + ] + }, + { + "id": "art-06", + "title": "Underground Fungal Networks: The Wood Wide Web", + "title_ru": "Подземные грибные сети: лесная паутина", + "topic": "Nature", + "level": "B1", + "read_time_min": 2, + "paragraphs": [ + "Beneath the floor of an ancient forest lies an astonishing symbiotic network of mycorrhizal fungi. These microscopic fungal threads, known as mycelium, weave through tree roots to exchange mineral nutrients and water for sugars generated through photosynthesis.", + "Remarkably, trees utilize this subterranean internet to transmit chemical distress signals when attacked by pests, allowing neighboring trees to synthesize defensive tannins before the infestation spreads." + ], + "paragraphs_ru": [ + "Под пологом древнего леса скрывается поразительная симбиотическая сеть микоризных грибов. Эти микроскопические грибные нити, известные как мицелий, оплетают корни деревьев, обменивая минеральные питательные вещества и воду на сахара, вырабатываемые в процессе фотосинтеза.", + "Примечательно, что деревья используют этот подземный интернет для передачи химических сигналов бедствия при нападении вредителей, позволяя соседним деревьям синтезировать защитные танины до того, как заражение распространится." + ], + "vocabulary_highlights": [ + { + "term": "mycorrhizal fungi", + "trans": "микоризные грибы" + }, + { + "term": "mycelium", + "trans": "мицелий, грибница" + }, + { + "term": "subterranean", + "trans": "подземный" + }, + { + "term": "distress signals", + "trans": "сигналы бедствия" + }, + { + "term": "infestation", + "trans": "заражение вредителями, нашествие" + } + ] + }, + { + "id": "art-07", + "title": "Quantum Superposition and the Threshold of Reality", + "title_ru": "Квантовая суперпозиция и порог реальности", + "topic": "Science", + "level": "B2", + "read_time_min": 2, + "paragraphs": [ + "In quantum mechanics, subatomic particles exist simultaneously in multiple probable states until an observation forces the wave function to collapse into a single definitive outcome. This fundamental counterintuitive principle is known as quantum superposition.", + "Quantum computers harness this phenomenon by employing qubits instead of classical binary bits. While a traditional bit can only register as a zero or a one, a qubit exists in a superposition of both states, granting exponential computational scaling for cryptographic and molecular simulation algorithms." + ], + "paragraphs_ru": [ + "В квантовой механике субатомные частицы существуют одновременно во множестве вероятностных состояний до тех пор, пока наблюдение не заставляет волновую функцию коллапсировать в один определённый исход. Этот фундаментальный парадоксальный принцип известен как квантовая суперпозиция.", + "Квантовые компьютеры используют этот феномен, применяя кубиты вместо классических двоичных битов. В то время как традиционный бит может принимать значение только ноль или единица, кубит существует в суперпозиции обоих состояний, обеспечивая экспоненциальное масштабирование вычислений для алгоритмов криптографии и моделирования молекул." + ], + "vocabulary_highlights": [ + { + "term": "subatomic particles", + "trans": "субатомные частицы" + }, + { + "term": "counterintuitive", + "trans": "парадоксальный, нелогичный на первый взгляд" + }, + { + "term": "harness", + "trans": "укрощать, эффективно использовать" + }, + { + "term": "qubits", + "trans": "кубиты" + }, + { + "term": "exponential scaling", + "trans": "экспоненциальное масштабирование" + } + ] + }, + { + "id": "art-08", + "title": "The Evolution of Coffee Culture and the Age of Enlightenment", + "title_ru": "Эволюция кофейной культуры и Эпоха Просвещения", + "topic": "Culture", + "level": "A2", + "read_time_min": 2, + "paragraphs": [ + "During the seventeenth century, European coffee houses emerged as lively hubs for intellectual debate, political discussion, and commercial trade. In London, these establishments were nicknamed 'penny universities' because for the price of a cup of coffee, any customer could participate in philosophical discourse.", + "Scientists like Isaac Newton and economists like Adam Smith regularly met in coffee houses to draft treatises and debate ideas that laid the foundations of the scientific revolution and modern commerce." + ], + "paragraphs_ru": [ + "В XVII веке европейские кофейни стали оживлёнными центрами интеллектуальных дебатов, политических дискуссий и коммерческой торговли. В Лондоне эти заведения называли «пенни-университетами», потому что по цене чашки кофе любой посетитель мог поучаствовать в философских рассуждениях.", + "Учёные вроде Исаака Ньютона и экономисты вроде Адама Смита регулярно собирались в кофейнях, чтобы составлять трактаты и обсуждать идеи, заложившие основы научной революции и современной коммерции." + ], + "vocabulary_highlights": [ + { + "term": "lively hubs", + "trans": "оживлённые центры" + }, + { + "term": "philosophical discourse", + "trans": "философские рассуждения / дискуссии" + }, + { + "term": "draft treatises", + "trans": "составлять трактаты" + }, + { + "term": "laid the foundations", + "trans": "заложили основы" + } + ] + } +] \ No newline at end of file