From 291bcc89d2ec105a90174d31d206f3dd05d8b2f7 Mon Sep 17 00:00:00 2001 From: HDW Date: Tue, 21 Jul 2026 20:30:18 +0200 Subject: [PATCH] nihongo: CM_5-1/5-4/3-2 + Adjektiv-Drill --- apps/nihongo/configmap.yaml | 143 ++++++++++++++++++++++++++++++++++-- 1 file changed, 137 insertions(+), 6 deletions(-) diff --git a/apps/nihongo/configmap.yaml b/apps/nihongo/configmap.yaml index a13f479..4f14c22 100644 --- a/apps/nihongo/configmap.yaml +++ b/apps/nihongo/configmap.yaml @@ -57,6 +57,7 @@ data: .p-de{color:#8e44ad;font-weight:800} .p-ga{color:#2e8b57;font-weight:800} .p-wa{color:#b8860b;font-weight:800} + .p-mo{color:#0d9488;font-weight:800} .grammarnote{background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:12px 16px;margin-bottom:14px; font-size:14px;border-left:4px solid var(--orange-d)} .grammarnote b{color:var(--orange-d)} @@ -125,6 +126,7 @@ data: + @@ -236,7 +238,7 @@ data: {parts:['ไป•ไบ‹ใ—ใ”ใจ',"___",'่กŒใ„ใฃใฆ ๅƒใฏใŸใ‚‰ใใพใ—ใŸใ€‚'], ans:["ใซ"], hint:"zur Arbeit gehen"}, {parts:['ๅœฐไธ‹ๅฎคใกใ‹ใ—ใค',"___","ใใ†ใ˜ใ—ใพใ—ใŸใ€‚"], ans:["ใ‚’"], hint:"das Objekt, das geputzt wird"}, ]; - const CHOICES = ["ใซ","ใ‚’","ใง","ใฏ","ใ‹"]; + const CHOICES = ["ใฏ","ใŒ","ใซ","ใ‚’","ใง","ใ‚‚","ใ‹"]; /* ================= LEKTIONEN (hier hรคngt Kody-san neue Lektionen an) ================= */ const LESSONS = [ @@ -290,6 +292,10 @@ data: {de:"Ich gehe nicht oft ins Fitnessstudio.", en:"I don't go to the gym very often.", r:'๏ผˆใ‚ใŸใ—ใฏ๏ผ‰ใ‚ใ‚“ใพใ‚Š ใ‚ธใƒ ใซ ใ„ใใพใ›ใ‚“ใ€‚', read:"ใ‚ใŸใ—ใฏ ใ‚ใ‚“ใพใ‚Š ใ˜ใ‚€ใซ ใ„ใใพใ›ใ‚“ใ€‚"}, {de:"Ich mag Bier, aber ich trinke nicht viel.", en:"I like beer, but I don't drink much.", r:'ใƒ“ใƒผใƒซใŒ ๅฅฝใ™ใใงใ™ใ€‚ใงใ‚‚ ใ‚ใ‚“ใพใ‚Š ้ฃฒใฎใฟใพใ›ใ‚“ใ€‚', read:"ใณใƒผใ‚‹ใŒ ใ™ใใงใ™ใ€‚ใงใ‚‚ ใ‚ใ‚“ใพใ‚Š ใฎใฟใพใ›ใ‚“ใ€‚"}, ], + adjectives:[ + {jpr:'ใ‹ใ‚‰ใ„', read:"ใ‹ใ‚‰ใ„", de:"scharf", type:'i', negr:'ใ‹ใ‚‰ใใชใ„', negKana:"ใ‹ใ‚‰ใใชใ„", rule:"ใ„-Adj: ใ„ weg โ†’ ใใชใ„"}, + {jpr:'้ซ˜ใŸใ‹ใ„', read:"ใŸใ‹ใ„", de:"teuer / hoch", type:'i', negr:'้ซ˜ใŸใ‹ใใชใ„', negKana:"ใŸใ‹ใใชใ„", rule:"ใ„-Adj: ใ„ weg โ†’ ใใชใ„"}, + ], particles:[ {parts:['ใจใใฉใ ใ‚ธใƒ ',"___",'ใ„ใใพใ™ใ€‚'], ans:["ใซ"], hint:"Bewegungsziel"}, {parts:['ใ‚ซใƒฌใƒผ',"___",'้ฃŸใŸในใพใ™ใ€‚'], ans:["ใ‚’"], hint:"Objekt"}, @@ -348,6 +354,11 @@ data: {de:"Mein Freund ist gut in Japanisch.", en:"As for my friend, they're good at Japanese.", r:'็งใ‚ใŸใ—ใฎๅ‹้”ใจใ‚‚ใ ใกใฏ ๆ—ฅๆœฌ่ชžใซใปใ‚“ใ”ใŒ ไธŠๆ‰‹ใ˜ใ‚‡ใ†ใšใงใ™ใ€‚', read:"ใ‚ใŸใ—ใฎใจใ‚‚ใ ใกใฏ ใซใปใ‚“ใ”ใŒ ใ˜ใ‚‡ใ†ใšใงใ™ใ€‚"}, {de:"Meine Schwester ist gut in Videospielen.", en:"My sister is good at games.", r:'็งใ‚ใŸใ—ใฎๅฆนใ„ใ‚‚ใ†ใจใฏ ใ‚ฒใƒผใƒ ใŒ ไธŠๆ‰‹ใ˜ใ‚‡ใ†ใšใงใ™ใ€‚', read:"ใ‚ใŸใ—ใฎใ„ใ‚‚ใ†ใจใฏ ใ’ใƒผใ‚€ใŒ ใ˜ใ‚‡ใ†ใšใงใ™ใ€‚"}, ], + adjectives:[ + {jpr:'ใŠใ„ใ—ใ„', read:"ใŠใ„ใ—ใ„", de:"lecker", type:'i', negr:'ใŠใ„ใ—ใใชใ„', negKana:"ใŠใ„ใ—ใใชใ„", rule:"ใ„-Adj: ใ„ weg โ†’ ใใชใ„"}, + {jpr:'ๆœ‰ๅใ‚†ใ†ใ‚ใ„', read:"ใ‚†ใ†ใ‚ใ„", de:"berรผhmt", type:'na', negr:'ๆœ‰ๅใ‚†ใ†ใ‚ใ„ใ˜ใ‚ƒใชใ„', negKana:"ใ‚†ใ†ใ‚ใ„ใ˜ใ‚ƒใชใ„", rule:"ใช-Adj: + ใ˜ใ‚ƒใชใ„ (kein ใใชใ„!)"}, + {jpr:'ไธŠๆ‰‹ใ˜ใ‚‡ใ†ใš', read:"ใ˜ใ‚‡ใ†ใš", de:"gut kรถnnen", type:'na', negr:'ไธŠๆ‰‹ใ˜ใ‚‡ใ†ใšใ˜ใ‚ƒใชใ„', negKana:"ใ˜ใ‚‡ใ†ใšใ˜ใ‚ƒใชใ„", rule:"ใช-Adj: + ใ˜ใ‚ƒใชใ„"}, + ], particles:[ {parts:['ไธ€้ขจๅ ‚ใ„ใฃใทใ†ใฉใ†',"___",'ใฟใใƒฉใƒผใƒกใƒณ',"___",'ใŠใ„ใ—ใ„ใงใ™ใ€‚'], ans:["ใฏ","ใŒ"], hint:"Thema ใฏ โ€ฆ Merkmal ใŒ"}, {parts:['ไบฌ้ƒฝใใ‚‡ใ†ใจ',"___",'ใŠๅฏบใฆใ‚‰',"___",'ๆœ‰ๅใ‚†ใ†ใ‚ใ„ใงใ™ใ€‚'], ans:["ใฏ","ใŒ"], hint:"Thema ใฏ โ€ฆ Merkmal ใŒ"}, @@ -421,6 +432,9 @@ data: {de:"Nakamoto ist extrem scharf!", en:"Nakamoto is crazy spicy!", r:'ไปฒๆœฌใชใ‹ใ‚‚ใจใฏ ใ‚ใฃใกใ‚ƒ ใ‹ใ‚‰ใ„ใงใ™๏ผ', read:"ใชใ‹ใ‚‚ใจใฏ ใ‚ใฃใกใ‚ƒ ใ‹ใ‚‰ใ„ใงใ™๏ผ"}, {de:"Erdbeer-Eis ist extrem sรผรŸ!", en:"Strawberry ice cream is crazy sweet!", r:'ใ„ใกใ”ใฎ ใ‚ขใ‚คใ‚นใ‚ฏใƒชใƒผใƒ ใฏ ใ‚ใฃใกใ‚ƒ ็”˜ใ‚ใพใ„ใงใ™๏ผ', read:"ใ„ใกใ”ใฎ ใ‚ใ„ใ™ใใ‚Šใƒผใ‚€ใฏ ใ‚ใฃใกใ‚ƒ ใ‚ใพใ„ใงใ™๏ผ"}, ], + adjectives:[ + {jpr:'็”˜ใ‚ใพใ„', read:"ใ‚ใพใ„", de:"sรผรŸ", type:'i', negr:'็”˜ใ‚ใพใใชใ„', negKana:"ใ‚ใพใใชใ„", rule:"ใ„-Adj: ใ„ weg โ†’ ใใชใ„"}, + ], particles:[ {parts:['ไปฒๆœฌใชใ‹ใ‚‚ใจ',"___",'ใ‚ใฃใกใ‚ƒ ใ‹ใ‚‰ใ„ใงใ™ใ€‚'], ans:["ใฏ"], hint:"Themenpartikel"}, ]}, @@ -443,6 +457,9 @@ data: {de:"Dieses Restaurant ist okay.", en:"This restaurant is okay.", r:'ใ“ใฎใƒฌใ‚นใƒˆใƒฉใƒณใฏ ใพใ‚ใพใ‚ใงใ™ใ€‚', read:"ใ“ใฎใ‚Œใ™ใจใ‚‰ใ‚“ใฏ ใพใ‚ใพใ‚ใงใ™ใ€‚"}, {de:"Bescheidene Antwort auf Lob (โ€šAch, noch lange nicht.').", en:"Response to a compliment: I still have a long way to go.", r:'ใพใ ใพใ ใงใ™ใ€‚', read:"ใพใ ใพใ ใงใ™ใ€‚"}, ], + adjectives:[ + {jpr:'ใŠใ‚‚ใ—ใ‚ใ„', read:"ใŠใ‚‚ใ—ใ‚ใ„", de:"interessant", type:'i', negr:'ใŠใ‚‚ใ—ใ‚ใใชใ„', negKana:"ใŠใ‚‚ใ—ใ‚ใใชใ„", rule:"ใ„-Adj: ใ„ weg โ†’ ใใชใ„"}, + ], particles:[ {parts:['ใ“ใฎใƒฉใƒผใƒกใƒณ',"___",'ใพใ‚ใพใ‚ ใ‹ใ‚‰ใ„ใงใ™ใ€‚'], ans:["ใฏ"], hint:"Themenpartikel"}, {parts:['ใ“ใฎใ‚ขใƒ‹ใƒก',"___",'ใพใ‚ใพใ‚ใงใ™ใ€‚'], ans:["ใฏ"], hint:"Themenpartikel"}, @@ -513,6 +530,109 @@ data: {de:"ใฆ-Form von ๆฅใ‚‹ (kommen)? โ€” unregelmรครŸig", en:"", r:'ๆฅใใฆ', read:"ใใฆ"}, ], particles:[]}, + + /* ---------- CM_5-1 Adjectives Present Tense ---------- */ + {id:'cm5-1', code:'CM_5-1', title:'Adjectives Present Tense', + grammar:'ใ„-Adj: {Nomen ใฏ}{โ€ฆใ„ใงใ™}, verneint {โ€ฆใใชใ„ใงใ™} (ใ‹ใ‚‰ใ„โ†’ใ‹ใ‚‰ใใชใ„). Ausnahme ใ„ใ„โ†’ใ‚ˆใใชใ„. ใช-Adj: {โ€ฆใงใ™}, verneint {โ€ฆใ˜ใ‚ƒใชใ„ใงใ™}. Achtung: ใใ‚Œใ„ใƒปใ‚†ใ†ใ‚ใ„ sehen aus wie ใ„-Adj, sind aber ใช-Adj! Grad: ใจใฆใ‚‚/ใกใ‚‡ใฃใจ/ใ‚ใ‚“ใพใ‚Š + Adj.', + vocab:[ + {jpr:'ใ‹ใ‚‰ใ„', read:"ใ‹ใ‚‰ใ„", de:"scharf", en:"spicy", kana:"ใ‹ใ‚‰ใ„"}, + {jpr:'ใ‚ใŸใ‚‰ใ—ใ„', read:"ใ‚ใŸใ‚‰ใ—ใ„", de:"neu", en:"new", kana:"ใ‚ใŸใ‚‰ใ—ใ„"}, + {jpr:'ใ„ใ„', read:"ใ„ใ„", de:"gut", en:"good", kana:"ใ„ใ„"}, + {jpr:'ใ‚ใŸใŸใ‹ใ„', read:"ใ‚ใŸใŸใ‹ใ„", de:"warm", en:"warm", kana:"ใ‚ใŸใŸใ‹ใ„"}, + {jpr:'ใ•ใ‚€ใ„', read:"ใ•ใ‚€ใ„", de:"kalt", en:"cold", kana:"ใ•ใ‚€ใ„"}, + {jpr:'ใใ‚Œใ„', read:"ใใ‚Œใ„", de:"schรถn / sauber", en:"beautiful, clean", kana:"ใใ‚Œใ„"}, + {jpr:'ๆœ‰ๅใ‚†ใ†ใ‚ใ„', read:"ใ‚†ใ†ใ‚ใ„", de:"berรผhmt", en:"famous", kana:"ใ‚†ใ†ใ‚ใ„"}, + {jpr:'ไบบๆฐ—ใซใ‚“ใ', read:"ใซใ‚“ใ", de:"beliebt", en:"popular", kana:"ใซใ‚“ใ"}, + {jpr:'็ฐกๅ˜ใ‹ใ‚“ใŸใ‚“', read:"ใ‹ใ‚“ใŸใ‚“", de:"einfach", en:"easy", kana:"ใ‹ใ‚“ใŸใ‚“"}, + {jpr:'ใƒ‘ใ‚ฝใ‚ณใƒณ', read:"ใฑใใ“ใ‚“", de:"Computer / Laptop", en:"computer", kana:"ใฑใใ“ใ‚“"}, + {jpr:'ใจใฆใ‚‚', read:"ใจใฆใ‚‚", de:"sehr", en:"very", kana:"ใจใฆใ‚‚"}, + {jpr:'ใกใ‚‡ใฃใจ', read:"ใกใ‚‡ใฃใจ", de:"ein bisschen", en:"a little", kana:"ใกใ‚‡ใฃใจ"}, + ], + verbs:[], + adjectives:[ + {jpr:'ใ‹ใ‚‰ใ„', read:"ใ‹ใ‚‰ใ„", de:"scharf", type:'i', negr:'ใ‹ใ‚‰ใใชใ„', negKana:"ใ‹ใ‚‰ใใชใ„", rule:"ใ„-Adj: ใ„ weg โ†’ ใใชใ„"}, + {jpr:'ใ‚ใŸใ‚‰ใ—ใ„', read:"ใ‚ใŸใ‚‰ใ—ใ„", de:"neu", type:'i', negr:'ใ‚ใŸใ‚‰ใ—ใใชใ„', negKana:"ใ‚ใŸใ‚‰ใ—ใใชใ„", rule:"ใ„-Adj: ใ„ weg โ†’ ใใชใ„"}, + {jpr:'ใ‚ใŸใŸใ‹ใ„', read:"ใ‚ใŸใŸใ‹ใ„", de:"warm", type:'i', negr:'ใ‚ใŸใŸใ‹ใใชใ„', negKana:"ใ‚ใŸใŸใ‹ใใชใ„", rule:"ใ„-Adj: ใ„ weg โ†’ ใใชใ„"}, + {jpr:'ใ•ใ‚€ใ„', read:"ใ•ใ‚€ใ„", de:"kalt", type:'i', negr:'ใ•ใ‚€ใใชใ„', negKana:"ใ•ใ‚€ใใชใ„", rule:"ใ„-Adj: ใ„ weg โ†’ ใใชใ„"}, + {jpr:'ใ„ใ„', read:"ใ„ใ„", de:"gut", type:'i-exc', negr:'ใ‚ˆใใชใ„', negKana:"ใ‚ˆใใชใ„", rule:"โš  Ausnahme: ใ„ใ„ โ†’ ใ‚ˆใใชใ„ (nicht ใ„ใใชใ„!)"}, + {jpr:'ใใ‚Œใ„', read:"ใใ‚Œใ„", de:"schรถn / sauber", type:'na', negr:'ใใ‚Œใ„ใ˜ใ‚ƒใชใ„', negKana:"ใใ‚Œใ„ใ˜ใ‚ƒใชใ„", rule:"ใช-Adj: + ใ˜ใ‚ƒใชใ„ (kein ใใชใ„!)"}, + {jpr:'ๆœ‰ๅใ‚†ใ†ใ‚ใ„', read:"ใ‚†ใ†ใ‚ใ„", de:"berรผhmt", type:'na', negr:'ๆœ‰ๅใ‚†ใ†ใ‚ใ„ใ˜ใ‚ƒใชใ„', negKana:"ใ‚†ใ†ใ‚ใ„ใ˜ใ‚ƒใชใ„", rule:"ใช-Adj (sieht aus wie ใ„-Adj!): + ใ˜ใ‚ƒใชใ„"}, + {jpr:'ไบบๆฐ—ใซใ‚“ใ', read:"ใซใ‚“ใ", de:"beliebt", type:'na', negr:'ไบบๆฐ—ใซใ‚“ใใ˜ใ‚ƒใชใ„', negKana:"ใซใ‚“ใใ˜ใ‚ƒใชใ„", rule:"ใช-Adj: + ใ˜ใ‚ƒใชใ„"}, + {jpr:'็ฐกๅ˜ใ‹ใ‚“ใŸใ‚“', read:"ใ‹ใ‚“ใŸใ‚“", de:"einfach", type:'na', negr:'็ฐกๅ˜ใ‹ใ‚“ใŸใ‚“ใ˜ใ‚ƒใชใ„', negKana:"ใ‹ใ‚“ใŸใ‚“ใ˜ใ‚ƒใชใ„", rule:"ใช-Adj: + ใ˜ใ‚ƒใชใ„"}, + ], + sentences:[ + {de:"Dieser Ramen ist scharf.", en:"This ramen is spicy.", r:'ใ“ใฎใƒฉใƒผใƒกใƒณใฏ ใ‹ใ‚‰ใ„ใงใ™ใ€‚', read:"ใ“ใฎใ‚‰ใƒผใ‚ใ‚“ใฏ ใ‹ใ‚‰ใ„ใงใ™ใ€‚"}, + {de:"Dieser Ramen ist nicht scharf.", en:"This ramen is not spicy.", r:'ใ“ใฎใƒฉใƒผใƒกใƒณใฏ ใ‹ใ‚‰ใใชใ„ใงใ™ใ€‚', read:"ใ“ใฎใ‚‰ใƒผใ‚ใ‚“ใฏ ใ‹ใ‚‰ใใชใ„ใงใ™ใ€‚"}, + {de:"Dieses Sushi-Restaurant ist neu.", en:"This sushi restaurant is new.", r:'ใ“ใฎ ใŠใ™ใ—ใ‚„ใฏ ใ‚ใŸใ‚‰ใ—ใ„ใงใ™ใ€‚', read:"ใ“ใฎ ใŠใ™ใ—ใ‚„ใฏ ใ‚ใŸใ‚‰ใ—ใ„ใงใ™ใ€‚"}, + {de:"Dieser Computer ist gut.", en:"This computer is good.", r:'ใ“ใฎใƒ‘ใ‚ฝใ‚ณใƒณใฏ ใ„ใ„ใงใ™ใ€‚', read:"ใ“ใฎใฑใใ“ใ‚“ใฏ ใ„ใ„ใงใ™ใ€‚"}, + {de:"Dieser Computer ist nicht gut. (Ausnahme ใ„ใ„โ†’ใ‚ˆใใชใ„!)", en:"This computer is not good.", r:'ใ“ใฎใƒ‘ใ‚ฝใ‚ณใƒณใฏ ใ‚ˆใใชใ„ใงใ™ใ€‚', read:"ใ“ใฎใฑใใ“ใ‚“ใฏ ใ‚ˆใใชใ„ใงใ™ใ€‚"}, + {de:"Diese Stadt ist schรถn.", en:"This city is beautiful.", r:'ใ“ใฎ็”บใพใกใฏ ใใ‚Œใ„ใงใ™ใ€‚', read:"ใ“ใฎใพใกใฏ ใใ‚Œใ„ใงใ™ใ€‚"}, + {de:"Diese Stadt ist nicht schรถn. (ใช-Adj โ†’ ใ˜ใ‚ƒใชใ„)", en:"This city is not beautiful.", r:'ใ“ใฎ็”บใพใกใฏ ใใ‚Œใ„ใ˜ใ‚ƒใชใ„ใงใ™ใ€‚', read:"ใ“ใฎใพใกใฏ ใใ‚Œใ„ใ˜ใ‚ƒใชใ„ใงใ™ใ€‚"}, + {de:"Japanisches Essen ist beliebt.", en:"Japanese food is popular.", r:'ๆ—ฅๆœฌใซใปใ‚“ใฎ้ฃŸใŸใน็‰ฉใ‚‚ใฎใฏ ไบบๆฐ—ใซใ‚“ใใงใ™ใ€‚', read:"ใซใปใ‚“ใฎใŸในใ‚‚ใฎใฏ ใซใ‚“ใใงใ™ใ€‚"}, + {de:"Dieses Buch ist einfach.", en:"This book is easy.", r:'ใ“ใฎๆœฌใปใ‚“ใฏ ็ฐกๅ˜ใ‹ใ‚“ใŸใ‚“ใงใ™ใ€‚', read:"ใ“ใฎใปใ‚“ใฏ ใ‹ใ‚“ใŸใ‚“ใงใ™ใ€‚"}, + {de:"Dieses Buch ist nicht einfach.", en:"This book is not easy.", r:'ใ“ใฎๆœฌใปใ‚“ใฏ ็ฐกๅ˜ใ‹ใ‚“ใŸใ‚“ใ˜ใ‚ƒใชใ„ใงใ™ใ€‚', read:"ใ“ใฎใปใ‚“ใฏ ใ‹ใ‚“ใŸใ‚“ใ˜ใ‚ƒใชใ„ใงใ™ใ€‚"}, + {de:"Dieser Ramen ist sehr scharf.", en:"This ramen is very spicy.", r:'ใ“ใฎใƒฉใƒผใƒกใƒณใฏ ใจใฆใ‚‚ ใ‹ใ‚‰ใ„ใงใ™ใ€‚', read:"ใ“ใฎใ‚‰ใƒผใ‚ใ‚“ใฏ ใจใฆใ‚‚ ใ‹ใ‚‰ใ„ใงใ™ใ€‚"}, + {de:"Dieser Ramen ist ein bisschen scharf.", en:"This ramen is a little spicy.", r:'ใ“ใฎใƒฉใƒผใƒกใƒณใฏ ใกใ‚‡ใฃใจ ใ‹ใ‚‰ใ„ใงใ™ใ€‚', read:"ใ“ใฎใ‚‰ใƒผใ‚ใ‚“ใฏ ใกใ‚‡ใฃใจ ใ‹ใ‚‰ใ„ใงใ™ใ€‚"}, + {de:"Dieser Ramen ist nicht sehr scharf.", en:"This ramen is not very spicy.", r:'ใ“ใฎใƒฉใƒผใƒกใƒณใฏ ใ‚ใ‚“ใพใ‚Š ใ‹ใ‚‰ใใชใ„ใงใ™ใ€‚', read:"ใ“ใฎใ‚‰ใƒผใ‚ใ‚“ใฏ ใ‚ใ‚“ใพใ‚Š ใ‹ใ‚‰ใใชใ„ใงใ™ใ€‚"}, + ], + particles:[ + {parts:['ใ“ใฎใƒฉใƒผใƒกใƒณ',"___",'ใ‹ใ‚‰ใ„ใงใ™ใ€‚'], ans:["ใฏ"], hint:"Themenpartikel"}, + {parts:['ใ“ใฎ็”บใพใก',"___",'ใใ‚Œใ„ใ˜ใ‚ƒใชใ„ใงใ™ใ€‚'], ans:["ใฏ"], hint:"Themenpartikel"}, + ]}, + + /* ---------- CM_5-4 ใ™ใใช (Lieblings-X) ---------- */ + {id:'cm5-4', code:'CM_5-4', title:'ใ™ใใช (My favorite X is Y)', + grammar:'{๏ผˆใ‚ใŸใ—ใฎ๏ผ‰ใ™ใใช Nomen1 ใฏ}{Nomen2 ใงใ™} โ€” โ€žMein Lieblings-โ€ฆ(N1) ist โ€ฆ(N2)". Frage: {๏ผˆโ€ฆใฎ๏ผ‰ใ™ใใช Nomen ใฏ}{ใชใ‚“ใงใ™ใ‹}. ใ™ใ ist ein ใช-Adj โ†’ attributiv ใ™ใใช. Antwort mit ใŒ: PythonใŒใ™ใใงใ™ ยท noch eins: Bashใ‚‚ใ™ใใงใ™.', + vocab:[ + {jpr:'ๅฅฝใ™ใใช', read:"ใ™ใใช", de:"Lieblings- / am liebsten", en:"favorite", kana:"ใ™ใใช"}, + {jpr:'้ฃฒใฎใฟ็‰ฉใ‚‚ใฎ', read:"ใฎใฟใ‚‚ใฎ", de:"Getrรคnk", en:"drink", kana:"ใฎใฟใ‚‚ใฎ"}, + {jpr:'้ŸณๆฅฝใŠใ‚“ใŒใ', read:"ใŠใ‚“ใŒใ", de:"Musik", en:"music", kana:"ใŠใ‚“ใŒใ"}, + {jpr:'ใƒ‰ใƒฉใƒž', read:"ใฉใ‚‰ใพ", de:"Serie / Drama", en:"drama", kana:"ใฉใ‚‰ใพ"}, + {jpr:'ใŠๅฅฝใ“ใฎใฟ็„ผใ‚„ใ', read:"ใŠใ“ใฎใฟใ‚„ใ", de:"Okonomiyaki", en:"okonomiyaki", kana:"ใŠใ“ใฎใฟใ‚„ใ"}, + {jpr:'ใ‚ฐใƒซใƒผใƒ—', read:"ใใ‚‹ใƒผใท", de:"Gruppe / Band", en:"group", kana:"ใใ‚‹ใƒผใท"}, + {jpr:'่จ€่ชžใ’ใ‚“ใ”', read:"ใ’ใ‚“ใ”", de:"Sprache", en:"language", kana:"ใ’ใ‚“ใ”"}, + {jpr:'ใชใ‚“', read:"ใชใ‚“", de:"was", en:"what", kana:"ใชใ‚“"}, + ], + verbs:[], + sentences:[ + {de:"Mein Lieblingsessen ist Ramen.", en:"My favorite food is ramen.", r:'ๅฅฝใ™ใใช ้ฃŸใŸใน็‰ฉใ‚‚ใฎใฏ ใƒฉใƒผใƒกใƒณใงใ™ใ€‚', read:"ใ™ใใช ใŸในใ‚‚ใฎใฏ ใ‚‰ใƒผใ‚ใ‚“ใงใ™ใ€‚"}, + {de:"Mein Lieblingsgetrรคnk ist Kaffee.", en:"My favorite drink is coffee.", r:'ๅฅฝใ™ใใช ้ฃฒใฎใฟ็‰ฉใ‚‚ใฎใฏ ใ‚ณใƒผใƒ’ใƒผใงใ™ใ€‚', read:"ใ™ใใช ใฎใฟใ‚‚ใฎใฏ ใ“ใƒผใฒใƒผใงใ™ใ€‚"}, + {de:"Mein Lieblingsessen ist Okonomiyaki.", en:"My favorite food is okonomiyaki.", r:'ๅฅฝใ™ใใช ้ฃŸใŸใน็‰ฉใ‚‚ใฎใฏ ใŠๅฅฝใ“ใฎใฟ็„ผใ‚„ใใงใ™ใ€‚', read:"ใ™ใใช ใŸในใ‚‚ใฎใฏ ใŠใ“ใฎใฟใ‚„ใใงใ™ใ€‚"}, + {de:"Was ist dein Lieblings-Anime?", en:"What is your favorite anime?", r:'Dใ•ใ‚“ใฎ ๅฅฝใ™ใใช ใ‚ขใƒ‹ใƒกใฏ ใชใ‚“ใงใ™ใ‹ใ€‚', read:"Dใ•ใ‚“ใฎ ใ™ใใช ใ‚ใซใ‚ใฏ ใชใ‚“ใงใ™ใ‹ใ€‚"}, + {de:"Was ist deine Lieblingsmusik?", en:"What is your favorite music?", r:'ๅฅฝใ™ใใช ้ŸณๆฅฝใŠใ‚“ใŒใใฏ ใชใ‚“ใงใ™ใ‹ใ€‚', read:"ใ™ใใช ใŠใ‚“ใŒใใฏ ใชใ‚“ใงใ™ใ‹ใ€‚"}, + {de:"Was ist deine Lieblings-Programmiersprache?", en:"What is your favorite programming language?", r:'ๅฅฝใ™ใใช ใ‚ณใƒณใƒ”ใƒฅใƒผใ‚ฟใƒผ่จ€่ชžใ’ใ‚“ใ”ใฏ ใชใ‚“ใงใ™ใ‹ใ€‚', read:"ใ™ใใช ใ“ใ‚“ใดใ‚…ใƒผใŸใƒผใ’ใ‚“ใ”ใฏ ใชใ‚“ใงใ™ใ‹ใ€‚"}, + {de:"Ich mag Python.", en:"I like Python.", r:'PythonใŒ ๅฅฝใ™ใใงใ™ใ€‚', read:"PythonใŒ ใ™ใใงใ™ใ€‚"}, + {de:"Bash mag ich auch.", en:"I like Bash too.", r:'Bashใ‚‚ ๅฅฝใ™ใใงใ™ใ€‚', read:"Bashใ‚‚ ใ™ใใงใ™ใ€‚"}, + ], + particles:[ + {parts:['ๅฅฝใ™ใใช ้ฃŸใŸใน็‰ฉใ‚‚ใฎ',"___",'ใƒฉใƒผใƒกใƒณใงใ™ใ€‚'], ans:["ใฏ"], hint:"Thema (Lieblings-X)"}, + {parts:['Python',"___",'ๅฅฝใ™ใใงใ™ใ€‚'], ans:["ใŒ"], hint:"bei ๅฅฝใ steht ใŒ"}, + {parts:['Bash',"___",'ๅฅฝใ™ใใงใ™ใ€‚'], ans:["ใ‚‚"], hint:"auch โ†’ ใ‚‚ (noch eins dazu)"}, + ]}, + + /* ---------- CM_3-2 Question words 1 (ใชใซใ‚’) ---------- */ + {id:'cm3-2', code:'CM_3-2', title:'Question words 1 (ใชใซใ‚’)', + grammar:'{๏ผˆโ€ฆใฏ๏ผ‰Zeitangabe}{ใชใซใ‚’}{V ใพใ™ใ‹} โ€” โ€žWas machst du (wann)?". Antwort mit einem Verb: โ€ฆใ‚’ใ—ใพใ™ / โ€ฆใ‚’ใŸในใพใ™. Das Objekt (auch das Fragewort ใชใซ) trรคgt ใ‚’.', + vocab:[ + {jpr:'ใชใซ', read:"ใชใซ", de:"was", en:"what", kana:"ใชใซ"}, + {jpr:'ๆ˜Žๆ—ฅใ‚ใ—ใŸ', read:"ใ‚ใ—ใŸ", de:"morgen", en:"tomorrow", kana:"ใ‚ใ—ใŸ"}, + {jpr:'้€ฑๆœซใ—ใ‚…ใ†ใพใค', read:"ใ—ใ‚…ใ†ใพใค", de:"Wochenende", en:"weekend", kana:"ใ—ใ‚…ใ†ใพใค"}, + {jpr:'ใ‚„ใใใฐ', read:"ใ‚„ใใใฐ", de:"Yakisoba", en:"yakisoba", kana:"ใ‚„ใใใฐ"}, + {jpr:'ใ‚ซใƒผใƒ‰ใ‚ฒใƒผใƒ ', read:"ใ‹ใƒผใฉใ’ใƒผใ‚€", de:"Kartenspiel", en:"card game", kana:"ใ‹ใƒผใฉใ’ใƒผใ‚€"}, + {jpr:'ไผ‘ใ‚„ใ™ใ‚€', read:"ใ‚„ใ™ใ‚€๏ผˆใ‚„ใ™ใฟใพใ™๏ผ‰", de:"sich ausruhen / freihaben", en:"to rest", kana:"ใ‚„ใ™ใ‚€"}, + ], + verbs:[], + sentences:[ + {de:"Was machst du morgen?", en:"What will you do tomorrow?", r:'Dใ•ใ‚“ใฏ ๆ˜Žๆ—ฅใ‚ใ—ใŸ ไฝ•ใชใซใ‚’ ใ—ใพใ™ใ‹ใ€‚', read:"Dใ•ใ‚“ใฏ ใ‚ใ—ใŸ ใชใซใ‚’ ใ—ใพใ™ใ‹ใ€‚"}, + {de:"Was machst du am Wochenende?", en:"What will you do on the weekend?", r:'้€ฑๆœซใ—ใ‚…ใ†ใพใค ไฝ•ใชใซใ‚’ ใ—ใพใ™ใ‹ใ€‚', read:"ใ—ใ‚…ใ†ใพใค ใชใซใ‚’ ใ—ใพใ™ใ‹ใ€‚"}, + {de:"ร„hm, ich ruhe mich aus.", en:"Um, I'll rest.", r:'ใˆใˆใจ ใ‚„ใ™ใฟใพใ™ใ€‚', read:"ใˆใˆใจ ใ‚„ใ™ใฟใพใ™ใ€‚"}, + {de:"Ich spiele mit Freunden ein Kartenspiel.", en:"I'll play a card game with friends.", r:'ๅ‹้”ใจใ‚‚ใ ใกใจ ใ‚ซใƒผใƒ‰ใ‚ฒใƒผใƒ ใ‚’ ใ—ใพใ™ใ€‚', read:"ใจใ‚‚ใ ใกใจ ใ‹ใƒผใฉใ’ใƒผใ‚€ใ‚’ ใ—ใพใ™ใ€‚"}, + {de:"Ich esse Yakisoba.", en:"I'll eat yakisoba.", r:'ใ‚„ใใใฐใ‚’ ้ฃŸใŸในใพใ™ใ€‚', read:"ใ‚„ใใใฐใ‚’ ใŸในใพใ™ใ€‚"}, + ], + particles:[ + {parts:['ๆ˜Žๆ—ฅใ‚ใ—ใŸ ไฝ•ใชใซ',"___",'ใ—ใพใ™ใ‹ใ€‚'], ans:["ใ‚’"], hint:"Fragewort ใชใซ als Objekt"}, + {parts:['ใ‚ซใƒผใƒ‰ใ‚ฒใƒผใƒ ',"___",'ใ—ใพใ™ใ€‚'], ans:["ใ‚’"], hint:"Objekt"}, + ]}, ]; /* ================= RลŒMAJI โ†’ KANA ================= */ @@ -593,6 +713,7 @@ data: lessonsActive().forEach(L=>{ L.vocab.forEach((v,i)=>o.push({id:L.id+':v'+i, label:v.jpr+' ยท '+v.de, deck:'Vokabel'})); L.verbs.forEach((v,i)=>o.push({id:L.id+':vb'+i, label:v.jpr+' โ†’ '+v.stemr, deck:'ใพใ™Stamm'})); + (L.adjectives||[]).forEach((a,i)=>o.push({id:L.id+':a'+i, label:a.jpr+' โ†’ '+(a.negr||a.negKana), deck:'Adjektiv'})); L.sentences.forEach((s,i)=>o.push({id:L.id+':s'+i, label:s.de, deck:'Satz'})); }); PHRASES.forEach((p,i)=>o.push({id:'p'+i, label:p.jpr, deck:'Unterricht'})); @@ -602,7 +723,7 @@ data: function cardIndex(){ const m={}; const savedLesson=lesson; lesson='all'; - [...vocabReview(),...verbItems(),...sentenceItems(),...phraseItems()].forEach(it=>m[it.id]=it); + [...vocabReview(),...verbItems(),...adjItems(),...sentenceItems(),...phraseItems()].forEach(it=>m[it.id]=it); lesson=savedLesson; return m; } @@ -654,6 +775,14 @@ data: lessonsActive().forEach(L=>L.particles.forEach((p,i)=>out.push({...p, id:L.id+':pt'+i}))); return out; } + function adjItems(){ + const out=[]; + lessonsActive().forEach(L=>(L.adjectives||[]).forEach((a,i)=>out.push({id:L.id+':a'+i, + front:`
${a.de}
${a.jpr}
verneinen โ†’ โ€ฆใชใ„ใงใ™ ${a.type==='na'?'(ใช-Adj)':a.type==='i-exc'?'(โš  Ausnahme)':'(ใ„-Adj)'}
`, + back:`
${a.negr||a.negKana} ใงใ™
${a.read} โ†’ ${a.negKana}ใงใ™
${a.rule}
`, + typeTarget:a.negKana}))); + return out; + } function phraseItems(){ return PHRASES.map((p,i)=>({id:'p'+i, front:`
${p.de}
`, @@ -661,7 +790,7 @@ data: typeTarget:p.read})); } function reviewDeck(){ - const items=[...vocabReview(), ...verbItems(), ...phraseItems()]; + const items=[...vocabReview(), ...verbItems(), ...adjItems(), ...phraseItems()]; return items.sort((a,b)=>boxOf(a.id)-boxOf(b.id)); // schwache zuerst } @@ -671,7 +800,7 @@ data: let method = localStorage.getItem('kody_method')||'self'; // 'self' | 'type' let lesson = localStorage.getItem('kody_lesson')||LESSONS[0].id; // Lektions-Filter oder 'all' if(lesson!=='all' && !LESSONS.some(l=>l.id===lesson)) lesson=LESSONS[0].id; - const GENERIC=['review','weak','vocab','verbstem','sentence','phrases']; + const GENERIC=['review','weak','vocab','verbstem','sentence','phrases','adj']; const app=document.getElementById("app"); const bar=document.getElementById("bar"); @@ -688,6 +817,7 @@ data: if(m==="sentence") return shuffle(sentenceItems()); if(m==="phrases") return shuffle(phraseItems()); if(m==="particle") return shuffle(particleItems()); + if(m==="adj") return shuffle(adjItems()); return []; } function start(m, all=false){ @@ -702,7 +832,7 @@ data: function updateGrammarNote(){ const el=document.getElementById('grammarNote'); if(!el)return; const ls=lessonsActive(); - if(ls.length===1 && ls[0].grammar && ['review','vocab','verbstem','sentence','particle'].includes(mode)){ + if(ls.length===1 && ls[0].grammar && ['review','vocab','verbstem','sentence','particle','adj'].includes(mode)){ el.style.display='block'; el.innerHTML=''+ls[0].code+' ยท '+ls[0].grammar; } else el.style.display='none'; } @@ -771,7 +901,8 @@ data: } function modeLabel(){ return {review:'Wiederholen',vocab:dir==='deJp'?'Deutsch โ†’ ๆ—ฅๆœฌ่ชž':'ๆ—ฅๆœฌ่ชž โ†’ Deutsch', - verbstem:'Verbstamm bilden',sentence:'Satz bauen',phrases:'Unterrichts-Satz'}[mode]||''; + verbstem:'Verbstamm bilden',sentence:'Satz bauen',phrases:'Unterrichts-Satz', + adj:'Adjektiv verneinen'}[mode]||''; } function renderCard(){