nihongo: CM_5-1/5-4/3-2 + Adjektiv-Drill
This commit is contained in:
@@ -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:
|
||||
<button data-mode="unterricht">🗣️ Unterricht</button>
|
||||
<button data-mode="vocab">📇 Vokabeln</button>
|
||||
<button data-mode="verbstem">🔀 ますStamm</button>
|
||||
<button data-mode="adj">🔤 Adjektiv</button>
|
||||
<button data-mode="sentence">✍️ Satzbau</button>
|
||||
<button data-mode="particle">🧩 Partikel</button>
|
||||
</nav>
|
||||
@@ -236,7 +238,7 @@ data:
|
||||
{parts:['<ruby>仕事<rt>しごと</rt></ruby>',"___",'<ruby>行<rt>い</rt></ruby>って <ruby>働<rt>はたら</rt></ruby>きました。'], ans:["に"], hint:"zur Arbeit gehen"},
|
||||
{parts:['<ruby>地下室<rt>ちかしつ</rt></ruby>',"___","そうじしました。"], 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:'(わたし<span class="p-wa">は</span>)あんまり ジム<span class="p-ni">に</span> いきません。', read:"わたしは あんまり じむに いきません。"},
|
||||
{de:"Ich mag Bier, aber ich trinke nicht viel.", en:"I like beer, but I don't drink much.", r:'ビール<span class="p-ga">が</span> <ruby>好<rt>す</rt></ruby>きです。でも あんまり <ruby>飲<rt>の</rt></ruby>みません。', read:"びーるが すきです。でも あんまり のみません。"},
|
||||
],
|
||||
adjectives:[
|
||||
{jpr:'からい', read:"からい", de:"scharf", type:'i', negr:'からくない', negKana:"からくない", rule:"い-Adj: い weg → くない"},
|
||||
{jpr:'<ruby>高<rt>たか</rt></ruby>い', read:"たかい", de:"teuer / hoch", type:'i', negr:'<ruby>高<rt>たか</rt></ruby>くない', negKana:"たかくない", rule:"い-Adj: い weg → くない"},
|
||||
],
|
||||
particles:[
|
||||
{parts:['ときどき ジム',"___",'いきます。'], ans:["に"], hint:"Bewegungsziel"},
|
||||
{parts:['カレー',"___",'<ruby>食<rt>た</rt></ruby>べます。'], 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:'<ruby>私<rt>わたし</rt></ruby>の<ruby>友達<rt>ともだち</rt></ruby><span class="p-wa">は</span> <ruby>日本語<rt>にほんご</rt></ruby><span class="p-ga">が</span> <ruby>上手<rt>じょうず</rt></ruby>です。', read:"わたしのともだちは にほんごが じょうずです。"},
|
||||
{de:"Meine Schwester ist gut in Videospielen.", en:"My sister is good at games.", r:'<ruby>私<rt>わたし</rt></ruby>の<ruby>妹<rt>いもうと</rt></ruby><span class="p-wa">は</span> ゲーム<span class="p-ga">が</span> <ruby>上手<rt>じょうず</rt></ruby>です。', read:"わたしのいもうとは げーむが じょうずです。"},
|
||||
],
|
||||
adjectives:[
|
||||
{jpr:'おいしい', read:"おいしい", de:"lecker", type:'i', negr:'おいしくない', negKana:"おいしくない", rule:"い-Adj: い weg → くない"},
|
||||
{jpr:'<ruby>有名<rt>ゆうめい</rt></ruby>', read:"ゆうめい", de:"berühmt", type:'na', negr:'<ruby>有名<rt>ゆうめい</rt></ruby>じゃない', negKana:"ゆうめいじゃない", rule:"な-Adj: + じゃない (kein くない!)"},
|
||||
{jpr:'<ruby>上手<rt>じょうず</rt></ruby>', read:"じょうず", de:"gut können", type:'na', negr:'<ruby>上手<rt>じょうず</rt></ruby>じゃない', negKana:"じょうずじゃない", rule:"な-Adj: + じゃない"},
|
||||
],
|
||||
particles:[
|
||||
{parts:['<ruby>一風堂<rt>いっぷうどう</rt></ruby>',"___",'みそラーメン',"___",'おいしいです。'], ans:["は","が"], hint:"Thema は … Merkmal が"},
|
||||
{parts:['<ruby>京都<rt>きょうと</rt></ruby>',"___",'お<ruby>寺<rt>てら</rt></ruby>',"___",'<ruby>有名<rt>ゆうめい</rt></ruby>です。'], ans:["は","が"], hint:"Thema は … Merkmal が"},
|
||||
@@ -421,6 +432,9 @@ data:
|
||||
{de:"Nakamoto ist extrem scharf!", en:"Nakamoto is crazy spicy!", r:'<ruby>仲本<rt>なかもと</rt></ruby><span class="p-wa">は</span> めっちゃ からいです!', read:"なかもとは めっちゃ からいです!"},
|
||||
{de:"Erdbeer-Eis ist extrem süß!", en:"Strawberry ice cream is crazy sweet!", r:'いちごの アイスクリーム<span class="p-wa">は</span> めっちゃ <ruby>甘<rt>あま</rt></ruby>いです!', read:"いちごの あいすくりーむは めっちゃ あまいです!"},
|
||||
],
|
||||
adjectives:[
|
||||
{jpr:'<ruby>甘<rt>あま</rt></ruby>い', read:"あまい", de:"süß", type:'i', negr:'<ruby>甘<rt>あま</rt></ruby>くない', negKana:"あまくない", rule:"い-Adj: い weg → くない"},
|
||||
],
|
||||
particles:[
|
||||
{parts:['<ruby>仲本<rt>なかもと</rt></ruby>',"___",'めっちゃ からいです。'], ans:["は"], hint:"Themenpartikel"},
|
||||
]},
|
||||
@@ -443,6 +457,9 @@ data:
|
||||
{de:"Dieses Restaurant ist okay.", en:"This restaurant is okay.", r:'このレストラン<span class="p-wa">は</span> まあまあです。', 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:'<ruby>来<rt>き</rt></ruby>て', read:"きて"},
|
||||
],
|
||||
particles:[]},
|
||||
|
||||
/* ---------- CM_5-1 Adjectives Present Tense ---------- */
|
||||
{id:'cm5-1', code:'CM_5-1', title:'Adjectives Present Tense',
|
||||
grammar:'<b>い-Adj:</b> {Nomen は}{…いです}, verneint {…<b>くない</b>です} (からい→から<b>くない</b>). Ausnahme <b>いい→よくない</b>. <b>な-Adj:</b> {…です}, verneint {…<b>じゃない</b>です}. Achtung: <b>きれい・ゆうめい</b> sehen aus wie い-Adj, sind aber な-Adj! Grad: <b>とても</b>/<b>ちょっと</b>/<b>あんまり</b> + 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:'<ruby>有名<rt>ゆうめい</rt></ruby>', read:"ゆうめい", de:"berühmt", en:"famous", kana:"ゆうめい"},
|
||||
{jpr:'<ruby>人気<rt>にんき</rt></ruby>', read:"にんき", de:"beliebt", en:"popular", kana:"にんき"},
|
||||
{jpr:'<ruby>簡単<rt>かんたん</rt></ruby>', 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:'<ruby>有名<rt>ゆうめい</rt></ruby>', read:"ゆうめい", de:"berühmt", type:'na', negr:'<ruby>有名<rt>ゆうめい</rt></ruby>じゃない', negKana:"ゆうめいじゃない", rule:"な-Adj (sieht aus wie い-Adj!): + じゃない"},
|
||||
{jpr:'<ruby>人気<rt>にんき</rt></ruby>', read:"にんき", de:"beliebt", type:'na', negr:'<ruby>人気<rt>にんき</rt></ruby>じゃない', negKana:"にんきじゃない", rule:"な-Adj: + じゃない"},
|
||||
{jpr:'<ruby>簡単<rt>かんたん</rt></ruby>', read:"かんたん", de:"einfach", type:'na', negr:'<ruby>簡単<rt>かんたん</rt></ruby>じゃない', negKana:"かんたんじゃない", rule:"な-Adj: + じゃない"},
|
||||
],
|
||||
sentences:[
|
||||
{de:"Dieser Ramen ist scharf.", en:"This ramen is spicy.", r:'このラーメン<span class="p-wa">は</span> からいです。', read:"このらーめんは からいです。"},
|
||||
{de:"Dieser Ramen ist nicht scharf.", en:"This ramen is not spicy.", r:'このラーメン<span class="p-wa">は</span> からくないです。', read:"このらーめんは からくないです。"},
|
||||
{de:"Dieses Sushi-Restaurant ist neu.", en:"This sushi restaurant is new.", r:'この おすしや<span class="p-wa">は</span> あたらしいです。', read:"この おすしやは あたらしいです。"},
|
||||
{de:"Dieser Computer ist gut.", en:"This computer is good.", r:'このパソコン<span class="p-wa">は</span> いいです。', read:"このぱそこんは いいです。"},
|
||||
{de:"Dieser Computer ist nicht gut. (Ausnahme いい→よくない!)", en:"This computer is not good.", r:'このパソコン<span class="p-wa">は</span> よくないです。', read:"このぱそこんは よくないです。"},
|
||||
{de:"Diese Stadt ist schön.", en:"This city is beautiful.", r:'この<ruby>町<rt>まち</rt></ruby><span class="p-wa">は</span> きれいです。', read:"このまちは きれいです。"},
|
||||
{de:"Diese Stadt ist nicht schön. (な-Adj → じゃない)", en:"This city is not beautiful.", r:'この<ruby>町<rt>まち</rt></ruby><span class="p-wa">は</span> きれいじゃないです。', read:"このまちは きれいじゃないです。"},
|
||||
{de:"Japanisches Essen ist beliebt.", en:"Japanese food is popular.", r:'<ruby>日本<rt>にほん</rt></ruby>の<ruby>食<rt>た</rt></ruby>べ<ruby>物<rt>もの</rt></ruby><span class="p-wa">は</span> <ruby>人気<rt>にんき</rt></ruby>です。', read:"にほんのたべものは にんきです。"},
|
||||
{de:"Dieses Buch ist einfach.", en:"This book is easy.", r:'この<ruby>本<rt>ほん</rt></ruby><span class="p-wa">は</span> <ruby>簡単<rt>かんたん</rt></ruby>です。', read:"このほんは かんたんです。"},
|
||||
{de:"Dieses Buch ist nicht einfach.", en:"This book is not easy.", r:'この<ruby>本<rt>ほん</rt></ruby><span class="p-wa">は</span> <ruby>簡単<rt>かんたん</rt></ruby>じゃないです。', read:"このほんは かんたんじゃないです。"},
|
||||
{de:"Dieser Ramen ist sehr scharf.", en:"This ramen is very spicy.", r:'このラーメン<span class="p-wa">は</span> とても からいです。', read:"このらーめんは とても からいです。"},
|
||||
{de:"Dieser Ramen ist ein bisschen scharf.", en:"This ramen is a little spicy.", r:'このラーメン<span class="p-wa">は</span> ちょっと からいです。', read:"このらーめんは ちょっと からいです。"},
|
||||
{de:"Dieser Ramen ist nicht sehr scharf.", en:"This ramen is not very spicy.", r:'このラーメン<span class="p-wa">は</span> あんまり からくないです。', read:"このらーめんは あんまり からくないです。"},
|
||||
],
|
||||
particles:[
|
||||
{parts:['このラーメン',"___",'からいです。'], ans:["は"], hint:"Themenpartikel"},
|
||||
{parts:['この<ruby>町<rt>まち</rt></ruby>',"___",'きれいじゃないです。'], ans:["は"], hint:"Themenpartikel"},
|
||||
]},
|
||||
|
||||
/* ---------- CM_5-4 すきな (Lieblings-X) ---------- */
|
||||
{id:'cm5-4', code:'CM_5-4', title:'すきな (My favorite X is Y)',
|
||||
grammar:'<b>{(わたしの)すきな Nomen1 は}{Nomen2 です}</b> — „Mein Lieblings-…(N1) ist …(N2)". Frage: <b>{(…の)すきな Nomen は}{なんですか}</b>. <b>すき</b> ist ein な-Adj → attributiv <b>すきな</b>. Antwort mit <b>が</b>: Python<b>が</b>すきです · noch eins: Bash<b>も</b>すきです.',
|
||||
vocab:[
|
||||
{jpr:'<ruby>好<rt>す</rt></ruby>きな', read:"すきな", de:"Lieblings- / am liebsten", en:"favorite", kana:"すきな"},
|
||||
{jpr:'<ruby>飲<rt>の</rt></ruby>み<ruby>物<rt>もの</rt></ruby>', read:"のみもの", de:"Getränk", en:"drink", kana:"のみもの"},
|
||||
{jpr:'<ruby>音楽<rt>おんがく</rt></ruby>', read:"おんがく", de:"Musik", en:"music", kana:"おんがく"},
|
||||
{jpr:'ドラマ', read:"どらま", de:"Serie / Drama", en:"drama", kana:"どらま"},
|
||||
{jpr:'お<ruby>好<rt>この</rt></ruby>み<ruby>焼<rt>や</rt></ruby>き', read:"おこのみやき", de:"Okonomiyaki", en:"okonomiyaki", kana:"おこのみやき"},
|
||||
{jpr:'グループ', read:"ぐるーぷ", de:"Gruppe / Band", en:"group", kana:"ぐるーぷ"},
|
||||
{jpr:'<ruby>言語<rt>げんご</rt></ruby>', 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:'<ruby>好<rt>す</rt></ruby>きな <ruby>食<rt>た</rt></ruby>べ<ruby>物<rt>もの</rt></ruby><span class="p-wa">は</span> ラーメンです。', read:"すきな たべものは らーめんです。"},
|
||||
{de:"Mein Lieblingsgetränk ist Kaffee.", en:"My favorite drink is coffee.", r:'<ruby>好<rt>す</rt></ruby>きな <ruby>飲<rt>の</rt></ruby>み<ruby>物<rt>もの</rt></ruby><span class="p-wa">は</span> コーヒーです。', read:"すきな のみものは こーひーです。"},
|
||||
{de:"Mein Lieblingsessen ist Okonomiyaki.", en:"My favorite food is okonomiyaki.", r:'<ruby>好<rt>す</rt></ruby>きな <ruby>食<rt>た</rt></ruby>べ<ruby>物<rt>もの</rt></ruby><span class="p-wa">は</span> お<ruby>好<rt>この</rt></ruby>み<ruby>焼<rt>や</rt></ruby>きです。', read:"すきな たべものは おこのみやきです。"},
|
||||
{de:"Was ist dein Lieblings-Anime?", en:"What is your favorite anime?", r:'Dさんの <ruby>好<rt>す</rt></ruby>きな アニメ<span class="p-wa">は</span> なんですか。', read:"Dさんの すきな あにめは なんですか。"},
|
||||
{de:"Was ist deine Lieblingsmusik?", en:"What is your favorite music?", r:'<ruby>好<rt>す</rt></ruby>きな <ruby>音楽<rt>おんがく</rt></ruby><span class="p-wa">は</span> なんですか。', read:"すきな おんがくは なんですか。"},
|
||||
{de:"Was ist deine Lieblings-Programmiersprache?", en:"What is your favorite programming language?", r:'<ruby>好<rt>す</rt></ruby>きな コンピューター<ruby>言語<rt>げんご</rt></ruby><span class="p-wa">は</span> なんですか。', read:"すきな こんぴゅーたーげんごは なんですか。"},
|
||||
{de:"Ich mag Python.", en:"I like Python.", r:'Python<span class="p-ga">が</span> <ruby>好<rt>す</rt></ruby>きです。', read:"Pythonが すきです。"},
|
||||
{de:"Bash mag ich auch.", en:"I like Bash too.", r:'Bash<span class="p-mo">も</span> <ruby>好<rt>す</rt></ruby>きです。', read:"Bashも すきです。"},
|
||||
],
|
||||
particles:[
|
||||
{parts:['<ruby>好<rt>す</rt></ruby>きな <ruby>食<rt>た</rt></ruby>べ<ruby>物<rt>もの</rt></ruby>',"___",'ラーメンです。'], ans:["は"], hint:"Thema (Lieblings-X)"},
|
||||
{parts:['Python',"___",'<ruby>好<rt>す</rt></ruby>きです。'], ans:["が"], hint:"bei 好き steht が"},
|
||||
{parts:['Bash',"___",'<ruby>好<rt>す</rt></ruby>きです。'], ans:["も"], hint:"auch → も (noch eins dazu)"},
|
||||
]},
|
||||
|
||||
/* ---------- CM_3-2 Question words 1 (なにを) ---------- */
|
||||
{id:'cm3-2', code:'CM_3-2', title:'Question words 1 (なにを)',
|
||||
grammar:'<b>{(…は)Zeitangabe}{なに<span class="p-wo">を</span>}{V ますか}</b> — „Was machst du (wann)?". Antwort mit einem Verb: <b>…をします / …をたべます</b>. Das Objekt (auch das Fragewort なに) trägt <b>を</b>.',
|
||||
vocab:[
|
||||
{jpr:'なに', read:"なに", de:"was", en:"what", kana:"なに"},
|
||||
{jpr:'<ruby>明日<rt>あした</rt></ruby>', read:"あした", de:"morgen", en:"tomorrow", kana:"あした"},
|
||||
{jpr:'<ruby>週末<rt>しゅうまつ</rt></ruby>', read:"しゅうまつ", de:"Wochenende", en:"weekend", kana:"しゅうまつ"},
|
||||
{jpr:'やきそば', read:"やきそば", de:"Yakisoba", en:"yakisoba", kana:"やきそば"},
|
||||
{jpr:'カードゲーム', read:"かーどげーむ", de:"Kartenspiel", en:"card game", kana:"かーどげーむ"},
|
||||
{jpr:'<ruby>休<rt>やす</rt></ruby>む', read:"やすむ(やすみます)", de:"sich ausruhen / freihaben", en:"to rest", kana:"やすむ"},
|
||||
],
|
||||
verbs:[],
|
||||
sentences:[
|
||||
{de:"Was machst du morgen?", en:"What will you do tomorrow?", r:'Dさん<span class="p-wa">は</span> <ruby>明日<rt>あした</rt></ruby> <ruby>何<rt>なに</rt></ruby><span class="p-wo">を</span> しますか。', read:"Dさんは あした なにを しますか。"},
|
||||
{de:"Was machst du am Wochenende?", en:"What will you do on the weekend?", r:'<ruby>週末<rt>しゅうまつ</rt></ruby> <ruby>何<rt>なに</rt></ruby><span class="p-wo">を</span> しますか。', 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:'<ruby>友達<rt>ともだち</rt></ruby>と カードゲーム<span class="p-wo">を</span> します。', read:"ともだちと かーどげーむを します。"},
|
||||
{de:"Ich esse Yakisoba.", en:"I'll eat yakisoba.", r:'やきそば<span class="p-wo">を</span> <ruby>食<rt>た</rt></ruby>べます。', read:"やきそばを たべます。"},
|
||||
],
|
||||
particles:[
|
||||
{parts:['<ruby>明日<rt>あした</rt></ruby> <ruby>何<rt>なに</rt></ruby>',"___",'しますか。'], 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:`<div class="de">${a.de}</div><div class="jp">${a.jpr}</div><div class="q">verneinen → …ないです ${a.type==='na'?'(な-Adj)':a.type==='i-exc'?'(⚠ Ausnahme)':'(い-Adj)'}</div>`,
|
||||
back:`<div class="jp">${a.negr||a.negKana}<span style="font-size:.6em"> です</span></div><div class="reading">${a.read} → ${a.negKana}です</div><div class="note">${a.rule}</div>`,
|
||||
typeTarget:a.negKana})));
|
||||
return out;
|
||||
}
|
||||
function phraseItems(){
|
||||
return PHRASES.map((p,i)=>({id:'p'+i,
|
||||
front:`<div class="de">${p.de}</div>`,
|
||||
@@ -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='<b>'+ls[0].code+'</b> · '+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(){
|
||||
|
||||
Reference in New Issue
Block a user