diff --git a/backend/scripts/create-bisaya-course-content.js b/backend/scripts/create-bisaya-course-content.js index 2ad5231..f870de5 100644 --- a/backend/scripts/create-bisaya-course-content.js +++ b/backend/scripts/create-bisaya-course-content.js @@ -2064,6 +2064,244 @@ const BISAYA_EXERCISES = { } ], + // Lektion 17: Einkaufen & Preise + 'Einkaufen & Preise': [ + { + exerciseTypeId: 2, // multiple_choice + title: 'Preisfrage erkennen', + instruction: 'Wähle die richtige Übersetzung.', + questionData: { + type: 'multiple_choice', + question: 'Was bedeutet "Tagpila ni?"', + options: ['Wie viel kostet das?', 'Wo ist das?', 'Was ist das?', 'Wann ist das?'] + }, + answerData: { type: 'multiple_choice', correctAnswer: 0 }, + explanation: '"Tagpila ni?" ist die Standardfrage nach dem Preis.' + }, + { + exerciseTypeId: 4, // transformation + title: 'Preis erfragen', + instruction: 'Übersetze ins Bisaya.', + questionData: { + type: 'transformation', + text: 'Wie viel kostet das?', + sourceLanguage: 'Deutsch', + targetLanguage: 'Bisaya' + }, + answerData: { + type: 'transformation', + correct: 'Tagpila ni?', + alternatives: ['Tag pila ni?'] + }, + explanation: 'Mit „Tagpila ni?“ fragst du kurz und natürlich nach dem Preis.' + }, + { + exerciseTypeId: 1, // gap_fill + title: 'Markt-Dialog ergänzen', + instruction: 'Setze die fehlenden Ausdrücke ein.', + questionData: { + type: 'gap_fill', + text: '{gap} ni? (Wie viel kostet das?) | {gap} barato? (Geht es günstiger?) | Sige, {gap} nako. (Ich nehme es.)', + gaps: 3 + }, + answerData: { + type: 'gap_fill', + answers: ['Tagpila', 'Pwede', 'paliton'] + }, + explanation: '„Pwede barato?“ ist eine kurze freundliche Verhandlungsformel.' + }, + { + exerciseTypeId: 4, // transformation + title: 'Kurze Kaufentscheidung', + instruction: 'Übersetze ins Bisaya.', + questionData: { + type: 'transformation', + text: 'Okay, ich nehme es.', + sourceLanguage: 'Deutsch', + targetLanguage: 'Bisaya' + }, + answerData: { + type: 'transformation', + correct: 'Sige, paliton nako.', + alternatives: ['Sige paliton nako'] + }, + explanation: 'Mit „Sige“ bestätigst du; „paliton nako“ heißt hier „ich kaufe es“.' + } + ], + + // Lektion 18: Zahlen & Preise + 'Zahlen & Preise': [ + { + exerciseTypeId: 2, // multiple_choice + title: 'Zahlwort zuordnen', + instruction: 'Wähle die richtige Bedeutung.', + questionData: { + type: 'multiple_choice', + question: 'Was bedeutet "baynte"?', + options: ['zwanzig', 'zehn', 'dreißig', 'hundert'] + }, + answerData: { type: 'multiple_choice', correctAnswer: 0 }, + explanation: '"baynte" = zwanzig.' + }, + { + exerciseTypeId: 1, // gap_fill + title: 'Zahlenreihe ergänzen', + instruction: 'Fülle die Zahlwörter ein.', + questionData: { + type: 'gap_fill', + text: '{gap} (1) | {gap} (2) | {gap} (3) | {gap} (10) | {gap} (20)', + gaps: 5 + }, + answerData: { + type: 'gap_fill', + answers: ['Usa', 'Duha', 'Tulo', 'Napulo', 'Baynte'] + }, + explanation: 'Die Grundzahlen sind für Preisgespräche zentral.' + }, + { + exerciseTypeId: 4, // transformation + title: 'Preis auf Bisaya', + instruction: 'Übersetze ins Bisaya.', + questionData: { + type: 'transformation', + text: 'Zwanzig Peso', + sourceLanguage: 'Deutsch', + targetLanguage: 'Bisaya' + }, + answerData: { + type: 'transformation', + correct: 'Baynte pesos', + alternatives: ['Baynte pesos.'] + }, + explanation: 'Preisangaben werden meist als „Zahl + pesos“ gesprochen.' + }, + { + exerciseTypeId: 2, // multiple_choice + title: 'Preisfrage auswählen', + instruction: 'Wähle die passende Frage aus.', + questionData: { + type: 'multiple_choice', + question: 'Wie fragst du nach einem Betrag in Peso?', + options: ['Pila ka pesos?', 'Asa ka pesos?', 'Unsa ka pesos?', 'Kinsa ka pesos?'] + }, + answerData: { type: 'multiple_choice', correctAnswer: 0 }, + explanation: '"Pila ka pesos?" ist die direkte Frage nach der Menge bzw. dem Betrag.' + } + ], + + // Lektion 19: Woche 2 - Wiederholung + 'Woche 2 - Wiederholung': [ + { + exerciseTypeId: 2, // multiple_choice + title: 'Ort + Zeit kombinieren', + instruction: 'Wähle den passendsten Satz aus.', + questionData: { + type: 'multiple_choice', + question: 'Welcher Satz bedeutet: "Ich gehe morgen zum Markt"?', + options: [ + 'Mo-adto ko sa merkado ugma.', + 'Ni-adto ko sa merkado ugma.', + 'Naa ko sa merkado ugma.', + 'Tagpila ko sa merkado ugma.' + ] + }, + answerData: { type: 'multiple_choice', correctAnswer: 0 }, + explanation: 'Für Zukunft passt im Kurskontext meist „mo-“ zusammen mit „ugma“.' + }, + { + exerciseTypeId: 1, // gap_fill + title: 'Woche-2-Mix', + instruction: 'Setze die passenden Wörter ein.', + questionData: { + type: 'gap_fill', + text: 'Naa ko sa {gap}. (Haus) | Mo-adto ko {gap}. (morgen) | {gap} ni? (Wie viel kostet das?)', + gaps: 3 + }, + answerData: { + type: 'gap_fill', + answers: ['balay', 'ugma', 'Tagpila'] + }, + explanation: 'Diese Mischung verbindet Ortswort, Zeitwort und Preisfrage aus Woche 2.' + }, + { + exerciseTypeId: 4, // transformation + title: 'Kurzer Wiederholungsdialog', + instruction: 'Übersetze ins Bisaya.', + questionData: { + type: 'transformation', + text: 'Wohin gehst du später?', + sourceLanguage: 'Deutsch', + targetLanguage: 'Bisaya' + }, + answerData: { + type: 'transformation', + correct: 'Asa ka moadto unya?', + alternatives: ['Asa ka mo adto unya?'] + }, + explanation: '„Asa … moadto unya?“ ist eine zentrale Struktur aus den Alltagsgesprächen.' + } + ], + + // Lektion 20: Woche 2 - Vokabeltest + 'Woche 2 - Vokabeltest': [ + { + exerciseTypeId: 2, // multiple_choice + title: 'Vokabeltest: Zeitwort', + instruction: 'Wähle die richtige Bedeutung.', + questionData: { + type: 'multiple_choice', + question: 'Was bedeutet "karon"?', + options: ['jetzt/heute', 'gestern', 'morgen', 'später'] + }, + answerData: { type: 'multiple_choice', correctAnswer: 0 }, + explanation: '"karon" steht für „jetzt/heute“.' + }, + { + exerciseTypeId: 2, // multiple_choice + title: 'Vokabeltest: Ort', + instruction: 'Wähle die richtige Übersetzung.', + questionData: { + type: 'multiple_choice', + question: 'Was bedeutet "balay"?', + options: ['Haus', 'Küche', 'Markt', 'Zimmer'] + }, + answerData: { type: 'multiple_choice', correctAnswer: 0 }, + explanation: '"balay" = Haus.' + }, + { + exerciseTypeId: 1, // gap_fill + title: 'Vokabeltest: Zahlen und Preis', + instruction: 'Fülle die Lücken passend aus.', + questionData: { + type: 'gap_fill', + text: '{gap} (20) | {gap} pesos (20 Peso) | {gap} ni? (Wie viel kostet das?)', + gaps: 3 + }, + answerData: { + type: 'gap_fill', + answers: ['Baynte', 'Baynte', 'Tagpila'] + }, + explanation: 'Die Kombination aus Zahlwort und Preisfrage ist Kernstoff aus Woche 2.' + }, + { + exerciseTypeId: 4, // transformation + title: 'Vokabeltest: Kurzsatz', + instruction: 'Übersetze ins Bisaya.', + questionData: { + type: 'transformation', + text: 'Ich bin zu Hause.', + sourceLanguage: 'Deutsch', + targetLanguage: 'Bisaya' + }, + answerData: { + type: 'transformation', + correct: 'Naa ko sa balay.', + alternatives: ['Naa ko sa balay'] + }, + explanation: '„Naa ko sa balay.“ verbindet einen häufigen Ortsausdruck mit Grundwortschatz.' + } + ], + // Lektion 25: Höflichkeitsformen 'Höflichkeitsformen': [ { @@ -4835,6 +5073,10 @@ async function createBisayaCourseContent() { 'Ort & Richtung', 'Zeitformen - Grundlagen', 'Zeit & Datum', + 'Einkaufen & Preise', + 'Zahlen & Preise', + 'Woche 2 - Wiederholung', + 'Woche 2 - Vokabeltest', 'Familie - Verwandte & Stieffamilie' ].includes(lesson.title); const existingCount = await VocabGrammarExercise.count({ diff --git a/backend/scripts/create-bisaya-course.js b/backend/scripts/create-bisaya-course.js index 920b474..1017f0c 100755 --- a/backend/scripts/create-bisaya-course.js +++ b/backend/scripts/create-bisaya-course.js @@ -527,6 +527,154 @@ const LESSON_DIDACTICS = { } ] }, + 'Zeit & Datum': { + learningGoals: [ + 'Die drei wichtigsten Zeitwörter (gestern/heute/morgen) sicher erkennen.', + 'Zeitmarker in kurzen Sätzen verwenden (ganiha/karon/ugma).', + 'Einfache Datums- und Zeitfragen verstehen.' + ], + corePatterns: [ + { target: 'Ganiha', gloss: 'vorhin / früher heute' }, + { target: 'Gahapon', gloss: 'gestern' }, + { target: 'Karon', gloss: 'jetzt / heute' }, + { target: 'Ugma', gloss: 'morgen' }, + { target: 'Unya', gloss: 'später' }, + { target: 'Unsang adlaw karon?', gloss: 'Welcher Wochentag ist heute?' }, + { target: 'Alas pila na?', gloss: 'Wie spät ist es?' } + ], + grammarFocus: [ + { + title: 'Zeitmarker statt komplexer Tempora', + text: 'Cebuano nutzt häufig Zeitwörter wie karon, gahapon und ugma, um den Zeitpunkt klarzumachen.', + example: 'Ni-adto ko gahapon. Mo-adto ko ugma.' + } + ], + speakingPrompts: [ + { + title: 'Gestern-heute-morgen', + prompt: 'Sprich drei Mini-Sätze mit denselben Verb über gestern, heute und morgen.', + cue: 'Ni-adto ko gahapon. Naa ko diri karon. Mo-adto ko ugma.' + } + ], + practicalTasks: [ + { + title: 'Zeitanker', + text: 'Nenne fünf Aktivitäten und hänge je nach Zeitpunkt „gahapon“, „karon“ oder „ugma“ an.' + } + ] + }, + 'Einkaufen & Preise': { + learningGoals: [ + 'Preise erfragen und auf einfache Antworten reagieren.', + 'Beim Einkauf höflich nachfragen oder um einen besseren Preis bitten.', + 'Einen kurzen Markt-Dialog mit Frage und Antwort führen.' + ], + corePatterns: [ + { target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' }, + { target: 'Mahal ba ni?', gloss: 'Ist das teuer?' }, + { target: 'Pwede barato?', gloss: 'Geht es günstiger?' }, + { target: 'Sige, paliton nako.', gloss: 'Okay, ich nehme es.' }, + { target: 'Unsaon pagbayad?', gloss: 'Wie bezahle ich?' } + ], + speakingPrompts: [ + { + title: 'Kaufgespräch', + prompt: 'Frage nach dem Preis, handle kurz und entscheide dann, ob du kaufst.', + cue: 'Tagpila ni? Pwede barato? Sige, paliton nako.' + } + ], + practicalTasks: [ + { + title: 'Preisrunde', + text: 'Frage zu drei Gegenständen laut nach dem Preis und antworte dir jeweils selbst.' + } + ] + }, + 'Zahlen & Preise': { + learningGoals: [ + 'Zahlen im Preis-Kontext sicher verstehen und aussprechen.', + 'Geldbeträge in Bisaya hören, nachsprechen und einordnen.', + 'Einfache Preisangaben in kurzen Sätzen verwenden.' + ], + corePatterns: [ + { target: 'Usa', gloss: 'eins' }, + { target: 'Duha', gloss: 'zwei' }, + { target: 'Tulo', gloss: 'drei' }, + { target: 'Napulo', gloss: 'zehn' }, + { target: 'Baynte', gloss: 'zwanzig' }, + { target: 'Usa ka gatos', gloss: 'einhundert' }, + { target: 'Baynte pesos', gloss: 'zwanzig Peso' }, + { target: 'Pila ka pesos?', gloss: 'Wie viele Peso?' } + ], + grammarFocus: [ + { + title: 'Zahl + Währung', + text: 'Bei Preisangaben stehen Zahl und Währung meist direkt zusammen.', + example: 'Baynte pesos. Usa ka gatos.' + } + ], + speakingPrompts: [ + { + title: 'Zahlen im Marktalltag', + prompt: 'Nenne drei Preise laut und frage einmal nach einem Betrag.', + cue: 'Napulo pesos. Baynte pesos. Pila ka pesos?' + } + ], + practicalTasks: [ + { + title: 'Preislesen', + text: 'Lies fünf Zahlen laut auf Bisaya und ergänze jeweils „pesos“.' + } + ] + }, + 'Woche 2 - Wiederholung': { + learningGoals: [ + 'Die zentralen Muster von Lektion 11-18 sicher wiedererkennen.', + 'Orte, Zeitangaben und Preisfragen in einem Durchgang kombinieren.', + 'Kurze Alltagssituationen ohne Hilfe formulieren.' + ], + corePatterns: [ + { target: 'Naa ko sa balay.', gloss: 'Ich bin zu Hause.' }, + { target: 'Asa ka moadto unya?', gloss: 'Wohin gehst du später?' }, + { target: 'Mo-adto ko ugma.', gloss: 'Ich gehe morgen.' }, + { target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' }, + { target: 'Baynte pesos.', gloss: 'Zwanzig Peso.' } + ], + speakingPrompts: [ + { + title: 'Woche-2-Mix', + prompt: 'Baue einen Mini-Dialog mit Ort, Zeit und Preis.', + cue: 'Asa ka moadto unya? Tagpila ni? Baynte pesos.' + } + ], + practicalTasks: [ + { + title: 'Spiral-Wiederholung', + text: 'Sprich nacheinander je einen Satz zu Ort, Zeit und Einkauf.' + } + ] + }, + 'Woche 2 - Vokabeltest': { + learningGoals: [ + 'Wortschatz aus Woche 2 schnell abrufen.', + 'Ähnliche Zeit- und Ortswörter sicher unterscheiden.', + 'Zahlen und Preisvokabeln fehlerfrei zuordnen.' + ], + corePatterns: [ + { target: 'Balay', gloss: 'Haus' }, + { target: 'Kusina', gloss: 'Küche' }, + { target: 'Karon', gloss: 'heute/jetzt' }, + { target: 'Ugma', gloss: 'morgen' }, + { target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' }, + { target: 'Baynte', gloss: 'zwanzig' } + ], + practicalTasks: [ + { + title: 'Selbsttest', + text: 'Nimm zehn Wörter aus Woche 2 und übersetze sie laut in beide Richtungen.' + } + ] + }, 'Alltagsgespräche - Teil 2': { learningGoals: [ 'Ziele, Wege und Zeitpunkte im Alltag genauer angeben.', diff --git a/backend/scripts/update-bisaya-didactics.js b/backend/scripts/update-bisaya-didactics.js index 9d80a01..dfb73c8 100644 --- a/backend/scripts/update-bisaya-didactics.js +++ b/backend/scripts/update-bisaya-didactics.js @@ -279,6 +279,94 @@ const LESSON_DIDACTICS = { { title: 'Alltag einordnen', text: 'Nenne laut drei Dinge, die du heute machst, und ergänze jeweils „karon“ oder „unya“.' } ] }, + 'Einkaufen & Preise': { + learningGoals: [ + 'Preise erfragen und auf einfache Antworten reagieren.', + 'Beim Einkauf höflich nachfragen oder um einen besseren Preis bitten.', + 'Einen kurzen Markt-Dialog mit Frage und Antwort führen.' + ], + corePatterns: [ + { target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' }, + { target: 'Mahal ba ni?', gloss: 'Ist das teuer?' }, + { target: 'Pwede barato?', gloss: 'Geht es günstiger?' }, + { target: 'Sige, paliton nako.', gloss: 'Okay, ich nehme es.' }, + { target: 'Salamat, suki.', gloss: 'Danke (vertraulich beim Händler).' }, + { target: 'Unsaon pagbayad?', gloss: 'Wie bezahle ich?' } + ], + grammarFocus: [ + { title: 'Marktfragen kurz halten', text: 'Auf dem Markt funktionieren sehr kurze Fragen oft am besten.', example: 'Tagpila ni? Mahal ba ni?' } + ], + speakingPrompts: [ + { title: 'Kaufgespräch', prompt: 'Frage nach dem Preis, handle kurz und entscheide dann, ob du kaufst.', cue: 'Tagpila ni? Pwede barato? Sige, paliton nako.' } + ], + practicalTasks: [ + { title: 'Preisrunde', text: 'Nimm drei Gegenstände in deiner Umgebung und frage zu jedem einmal „Tagpila ni?“ laut.' } + ] + }, + 'Zahlen & Preise': { + learningGoals: [ + 'Zahlen im Preis-Kontext sicher verstehen und aussprechen.', + 'Geldbeträge in Bisaya hören, nachsprechen und einordnen.', + 'Einfache Preisangaben in kurzen Sätzen verwenden.' + ], + corePatterns: [ + { target: 'Usa', gloss: 'eins' }, + { target: 'Duha', gloss: 'zwei' }, + { target: 'Tulo', gloss: 'drei' }, + { target: 'Napulo', gloss: 'zehn' }, + { target: 'Baynte', gloss: 'zwanzig' }, + { target: 'Usa ka gatos', gloss: 'einhundert' }, + { target: 'Baynte pesos', gloss: 'zwanzig Peso' }, + { target: 'Pila ka pesos?', gloss: 'Wie viele Peso?' } + ], + grammarFocus: [ + { title: 'Zahl + Währung', text: 'Bei Preisen stehen Zahlwort und Währung meist direkt zusammen.', example: 'Baynte pesos. Usa ka gatos.' } + ], + speakingPrompts: [ + { title: 'Zahlen im Marktalltag', prompt: 'Nenne drei Preise laut und frage einmal nach einem Betrag.', cue: 'Napulo pesos. Baynte pesos. Pila ka pesos?' } + ], + practicalTasks: [ + { title: 'Preislesen', text: 'Lies fünf Zahlen laut auf Bisaya und ergänze jeweils „pesos“.' } + ] + }, + 'Woche 2 - Wiederholung': { + learningGoals: [ + 'Die zentralen Muster von Lektion 11–18 sicher wiedererkennen.', + 'Orte, Zeitangaben und Preisfragen in einem Durchgang kombinieren.', + 'Kurze Alltagssituationen ohne Hilfe formulieren.' + ], + corePatterns: [ + { target: 'Naa ko sa balay.', gloss: 'Ich bin zu Hause.' }, + { target: 'Asa ka moadto unya?', gloss: 'Wohin gehst du später?' }, + { target: 'Mo-adto ko ugma.', gloss: 'Ich gehe morgen.' }, + { target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' }, + { target: 'Baynte pesos.', gloss: 'Zwanzig Peso.' } + ], + speakingPrompts: [ + { title: 'Woche-2-Mix', prompt: 'Baue einen Mini-Dialog mit Ort, Zeit und Preis.', cue: 'Asa ka moadto unya? Tagpila ni? Baynte pesos.' } + ], + practicalTasks: [ + { title: 'Spiral-Wiederholung', text: 'Sprich nacheinander je einen Satz zu Ort, Zeit und Einkauf.' } + ] + }, + 'Woche 2 - Vokabeltest': { + learningGoals: [ + 'Wortschatz aus Woche 2 schnell abrufen.', + 'Ähnliche Zeit- und Ortswörter sicher unterscheiden.', + 'Zahlen und Preisvokabeln fehlerfrei zuordnen.' + ], + corePatterns: [ + { target: 'Balay', gloss: 'Haus' }, + { target: 'Kusina', gloss: 'Küche' }, + { target: 'Karon', gloss: 'heute/jetzt' }, + { target: 'Ugma', gloss: 'morgen' }, + { target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' }, + { target: 'Baynte', gloss: 'zwanzig' } + ], + practicalTasks: [ + { title: 'Selbsttest', text: 'Nimm zehn Wörter aus Woche 2 und übersetze sie laut in beide Richtungen.' } + ] + }, 'Woche 1 - Wiederholung': { learningGoals: [ 'Die Kernmuster der ersten Woche ohne Hilfe wiederholen.',