feat(bisaya-course): enhance lesson structure and didactics integration
All checks were successful
Deploy to production / deploy (push) Successful in 2m52s
All checks were successful
Deploy to production / deploy (push) Successful in 2m52s
- Added an auto-incrementing primary key to the UserHouse model for improved database management. - Integrated new didactics fragments from the Bisaya course plan, including relationship anchor didactics and lessons for enhanced curriculum depth. - Updated lesson retrieval logic to utilize planned lesson titles, improving the accuracy of didactics resolution. - Refactored course content generation scripts to incorporate new didactics, ensuring a comprehensive learning experience for users.
This commit is contained in:
@@ -13,6 +13,11 @@ import VocabCourseProgress from '../models/community/vocab_course_progress.js';
|
||||
import VocabGrammarExerciseProgress from '../models/community/vocab_grammar_exercise_progress.js';
|
||||
import { Op } from 'sequelize';
|
||||
import { getBisayaLessonPedagogy } from './bisaya-course-phase2-pedagogy.js';
|
||||
import {
|
||||
BISAYA_DIDACTICS_24_43,
|
||||
BISAYA_LESSONS_24_43_BY_NUMBER,
|
||||
BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS
|
||||
} from './bisaya-course-plan-24-43.js';
|
||||
|
||||
const LESSON_DIDACTICS = {
|
||||
'Begrüßungen & Höflichkeit': {
|
||||
@@ -368,9 +373,19 @@ const LESSON_DIDACTICS = {
|
||||
'Von einzelnen Wörtern zu kurzen Sätzen übergehen.'
|
||||
],
|
||||
corePatterns: ['Kumusta', 'Salamat', 'Lami', 'Mingaw ko nimo']
|
||||
}
|
||||
},
|
||||
...BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS,
|
||||
...BISAYA_DIDACTICS_24_43
|
||||
};
|
||||
|
||||
function resolveDidacticsForLesson(lesson) {
|
||||
const direct = LESSON_DIDACTICS[lesson.title];
|
||||
if (direct) return direct;
|
||||
const plannedTitle = BISAYA_LESSONS_24_43_BY_NUMBER[Number(lesson.lessonNumber)]?.title;
|
||||
if (plannedTitle && LESSON_DIDACTICS[plannedTitle]) return LESSON_DIDACTICS[plannedTitle];
|
||||
return null;
|
||||
}
|
||||
|
||||
async function resetBisayaProgress(courseIds) {
|
||||
if (courseIds.length === 0) return { lessonProgress: 0, exerciseProgress: 0 };
|
||||
|
||||
@@ -443,12 +458,24 @@ async function applyBisayaCourseRefresh() {
|
||||
});
|
||||
|
||||
for (const lesson of lessons) {
|
||||
const didactics = LESSON_DIDACTICS[lesson.title];
|
||||
const didactics = resolveDidacticsForLesson(lesson);
|
||||
const plannedLesson = BISAYA_LESSONS_24_43_BY_NUMBER[Number(lesson.lessonNumber)];
|
||||
const pedagogy = getBisayaLessonPedagogy(lesson.lessonNumber);
|
||||
if (!didactics && !pedagogy) continue;
|
||||
const normalizedDidactics = didactics || {};
|
||||
|
||||
await lesson.update({
|
||||
...(plannedLesson ? {
|
||||
title: plannedLesson.title,
|
||||
description: plannedLesson.desc,
|
||||
weekNumber: plannedLesson.week,
|
||||
dayNumber: plannedLesson.day,
|
||||
lessonType: plannedLesson.type,
|
||||
culturalNotes: plannedLesson.cultural,
|
||||
targetMinutes: plannedLesson.targetMin,
|
||||
targetScorePercent: plannedLesson.targetScore,
|
||||
requiresReview: plannedLesson.review
|
||||
} : {}),
|
||||
learningGoals: normalizedDidactics.learningGoals || [],
|
||||
corePatterns: normalizedDidactics.corePatterns || [],
|
||||
grammarFocus: normalizedDidactics.grammarFocus || [],
|
||||
|
||||
540
backend/scripts/bisaya-course-plan-24-43.js
Normal file
540
backend/scripts/bisaya-course-plan-24-43.js
Normal file
@@ -0,0 +1,540 @@
|
||||
export const BISAYA_LESSONS_24_43 = [
|
||||
{ week: 3, day: 1, num: 24, type: 'conversation', title: 'Gefühle im Alltag', desc: 'Gefühle ausdrücken und im Gespräch passend darauf reagieren', targetMin: 18, targetScore: 80, review: false, cultural: 'Gefühle werden oft indirekt und mit Fürsorge beantwortet.' },
|
||||
{ week: 3, day: 1, num: 25, type: 'vocab', title: 'Gefühlswortschatz & Reaktionen', desc: 'Freude, Sorge, Müdigkeit, Vermissen und Beruhigung sicher unterscheiden', targetMin: 20, targetScore: 85, review: true, cultural: null },
|
||||
{ week: 3, day: 2, num: 26, type: 'conversation', title: 'Gesundheit & Wohlbefinden', desc: 'Einfache Beschwerden erfragen und fürsorglich reagieren', targetMin: 18, targetScore: 80, review: false, cultural: null },
|
||||
{ week: 3, day: 2, num: 27, type: 'vocab', title: 'Körper & Symptome', desc: 'Körperstellen, Symptome und einfache Pflegewörter', targetMin: 20, targetScore: 85, review: true, cultural: null },
|
||||
{ week: 3, day: 3, num: 28, type: 'grammar', title: 'Höflichkeitsformen praktisch', desc: 'Bitten, Entschuldigung und weiche Reaktionen im Alltag', targetMin: 22, targetScore: 78, review: true, cultural: 'Direkte Ablehnung klingt oft hart; weiche Formulierungen sind im Alltag hilfreicher.' },
|
||||
{ week: 3, day: 3, num: 29, type: 'conversation', title: 'Bitten & Nachfragen', desc: 'Hilfe, Wiederholung, Bedeutung und langsames Sprechen erbitten', targetMin: 18, targetScore: 80, review: false, cultural: null },
|
||||
{ week: 3, day: 4, num: 30, type: 'conversation', title: 'Kinder & Familie', desc: 'Mit Kindern kurz, klar und freundlich sprechen', targetMin: 18, targetScore: 80, review: false, cultural: 'Kurze klare Sätze funktionieren mit Kindern natürlicher als lange Erklärungen.' },
|
||||
{ week: 3, day: 4, num: 31, type: 'vocab', title: 'Kinder, Spiel & Routine', desc: 'Kinderalltag mit Spielen, Fertigsein und Schlaf verbinden', targetMin: 20, targetScore: 85, review: true, cultural: null },
|
||||
{ week: 3, day: 5, num: 32, type: 'review', title: 'Woche 3 - Intensivwiederholung', desc: 'Gefühle, Gesundheit, Kinder und Höflichkeit kontrastieren', targetMin: 30, targetScore: 82, review: false, cultural: null },
|
||||
{ week: 3, day: 5, num: 33, type: 'vocab', title: 'Woche 3 - Checkpoint', desc: 'Aktiver Checkpoint zur ersten Alltagserweiterung', targetMin: 18, targetScore: 84, review: true, cultural: null },
|
||||
{ week: 4, day: 1, num: 34, type: 'conversation', title: 'Alltagsszene: Zuhause morgens', desc: 'Morgens zuhause über Aufstehen, Essen, Schule und Aufgaben sprechen', targetMin: 22, targetScore: 78, review: false, cultural: 'Morgenszenen verbinden Fürsorge, Zeit und Familienorganisation.' },
|
||||
{ week: 4, day: 1, num: 35, type: 'review', title: 'Spiralreview: Woche 1-2 im Alltag', desc: 'Grundlagen aus Begrüßung, Familie, Essen, Zeit und Zahlen in Alltagsszenen anwenden', targetMin: 28, targetScore: 84, review: false, cultural: null },
|
||||
{ week: 4, day: 2, num: 36, type: 'conversation', title: 'Alltagsszene: Besuch am Nachmittag', desc: 'Besuch empfangen, hereinbitten und etwas anbieten', targetMin: 22, targetScore: 78, review: false, cultural: 'Gastfreundschaft ist oft praktischer als formelle Höflichkeit.' },
|
||||
{ week: 4, day: 2, num: 37, type: 'review', title: 'Spiralreview: Gefühle & Gesundheit', desc: 'Gefühle, Müdigkeit, Schmerzen, Bitte und Hilfe gezielt reaktivieren', targetMin: 26, targetScore: 84, review: false, cultural: null },
|
||||
{ week: 4, day: 3, num: 38, type: 'conversation', title: 'Längeres Gespräch: Planung und Familie', desc: 'Tagesplanung mit Reihenfolge und Familie in längeren Antworten verbinden', targetMin: 24, targetScore: 78, review: false, cultural: null },
|
||||
{ week: 4, day: 3, num: 39, type: 'review', title: 'Gesamtwiederholung mit Fehlerclustern', desc: 'Zeit, Bitte, Frage und Beziehungssätze gezielt kontrastieren', targetMin: 30, targetScore: 82, review: false, cultural: null },
|
||||
{ week: 4, day: 4, num: 40, type: 'conversation', title: 'Praktische Übung: Markt + Familie', desc: 'Auf dem Markt für die Familie einkaufen und den Grund erklären', targetMin: 24, targetScore: 78, review: false, cultural: 'Einkaufssprache wird nützlicher, wenn sie mit Familie und Fürsorge verbunden ist.' },
|
||||
{ week: 4, day: 4, num: 41, type: 'vocab', title: 'Abschlusstest Wortschatz aktiv', desc: 'Kernwortschatz der Grundphase in beide Richtungen abrufen', targetMin: 20, targetScore: 84, review: true, cultural: null },
|
||||
{ week: 4, day: 5, num: 42, type: 'review', title: 'Abschlussprüfung Grundphase', desc: 'Dialog, Wortschatz und freie Mini-Antworten der Grundphase prüfen', targetMin: 32, targetScore: 84, review: false, cultural: 'Die Prüfung misst Verständlichkeit und Handlungssicherheit, nicht perfekte Grammatik.' },
|
||||
{ week: 4, day: 5, num: 43, type: 'culture', title: 'Kultur: Höflichkeit, Familie, Alltag', desc: 'Respekt, indirekte Bitte und Familiennähe sprachlich einordnen', targetMin: 16, targetScore: 0, review: false, cultural: 'Kulturelles Verständnis hilft, Sätze passend und nicht nur wörtlich zu verwenden.' }
|
||||
];
|
||||
|
||||
export const BISAYA_LESSONS_24_43_BY_NUMBER = Object.fromEntries(
|
||||
BISAYA_LESSONS_24_43.map((lesson) => [lesson.num, lesson])
|
||||
);
|
||||
|
||||
export const BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS = {
|
||||
'Gefühle & Zuneigung': {
|
||||
learningGoals: [
|
||||
'Wichtige Gefühle und Zuneigungsformeln sicher unterscheiden.',
|
||||
'Freundliche Nähe, Liebe und Vermissen sprachlich ausdrücken.',
|
||||
'Zwischen familiär-warmer und direkter romantischer Formulierung unterscheiden.',
|
||||
'Beziehungssätze als frühe Motivation nutzen und später grammatisch vertiefen.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Palangga taka.', gloss: 'Ich hab dich lieb. / Ich liebe dich.' },
|
||||
{ target: 'Gihigugma tika.', gloss: 'Ich liebe dich.' },
|
||||
{ target: 'Ganahan ko nimo.', gloss: 'Ich mag dich. / Ich habe dich gern.' },
|
||||
{ target: 'Gimingaw ko nimo.', gloss: 'Ich vermisse dich.' },
|
||||
{ target: 'Mingaw ko nimo.', gloss: 'Ich vermisse dich. (kurz/alltäglich)' },
|
||||
{ target: 'Gusto ko nga naa ko nimo.', gloss: 'Ich möchte bei dir sein.' },
|
||||
{ target: 'Gusto ko nga magkuyog ta.', gloss: 'Ich möchte, dass wir zusammen Zeit verbringen.' },
|
||||
{ target: 'Kanunay ko naghunahuna nimo.', gloss: 'Ich denke oft an dich.' },
|
||||
{ target: 'Amping kanunay.', gloss: 'Pass immer auf dich auf.' },
|
||||
{ target: 'Nalipay ko nga nakita ka.', gloss: 'Ich freue mich, dich zu sehen.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{
|
||||
title: 'Palangga taka vs. Gihigugma tika',
|
||||
text: 'Palangga taka ist in vielen Beziehungs- und Familienkontexten warm und natürlich. Gihigugma tika ist direkter und sollte bewusst eingesetzt werden.',
|
||||
example: 'Palangga taka. / Gihigugma tika.'
|
||||
},
|
||||
{
|
||||
title: 'ko, nimo und tika/taka',
|
||||
text: 'ko markiert mich/ich, nimo bezieht sich auf dich, und tika/taka bündelt ich + dich in Nähe- und Liebessätzen.',
|
||||
example: 'Gimingaw ko nimo. Palangga taka.'
|
||||
},
|
||||
{
|
||||
title: 'Wünsche mit gusto ko nga',
|
||||
text: 'Mit gusto ko nga formulierst du einen Wunsch, der danach als kleiner Satz weitergeht.',
|
||||
example: 'Gusto ko nga naa ko nimo.'
|
||||
}
|
||||
],
|
||||
speakingPrompts: [
|
||||
{
|
||||
title: 'Nähe ausdrücken',
|
||||
prompt: 'Sage einer nahen Person, dass du sie liebst oder lieb hast und sie vermisst.',
|
||||
cue: 'Palangga taka. Gimingaw ko nimo.'
|
||||
},
|
||||
{
|
||||
title: 'Beziehungswunsch',
|
||||
prompt: 'Sage, dass du bei der Person sein möchtest und oft an sie denkst.',
|
||||
cue: 'Gusto ko nga naa ko nimo. Kanunay ko naghunahuna nimo.'
|
||||
}
|
||||
],
|
||||
practicalTasks: [
|
||||
{
|
||||
title: 'Beziehungsanker',
|
||||
text: 'Wähle drei Sätze, die du real benutzen würdest, und sprich sie langsam, natürlich und ohne deutsche Zwischenhilfe.'
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
export const BISAYA_DIDACTICS_24_43 = {
|
||||
'Gefühle im Alltag': {
|
||||
learningGoals: [
|
||||
'Eigene Gefühle mit kurzen, natürlichen Sätzen ausdrücken.',
|
||||
'Auf Gefühle einer nahen Person passend reagieren.',
|
||||
'Nähe und Alltag nicht isoliert, sondern im Gespräch verbinden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Naguol ko gamay.', gloss: 'Ich bin ein bisschen besorgt.' },
|
||||
{ target: 'Nalipay ko nga nakita ka.', gloss: 'Ich freue mich, dich zu sehen.' },
|
||||
{ target: 'Okay ra ko.', gloss: 'Mir geht es okay.' },
|
||||
{ target: 'Kapoy ko karon.', gloss: 'Ich bin jetzt müde.' },
|
||||
{ target: 'Gimingaw ko nimo.', gloss: 'Ich vermisse dich.' },
|
||||
{ target: 'Kanunay ko naghunahuna nimo.', gloss: 'Ich denke oft an dich.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Gefühl + ko', text: 'Viele Gefühlsaussagen nutzen das Muster Gefühl oder Zustand plus ko.', example: 'Nalipay ko. Naguol ko.' },
|
||||
{ title: 'nimo für dich', text: 'Bei Nähe und Beziehung taucht nimo als Bezug auf die andere Person auf.', example: 'Gimingaw ko nimo.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Zustand und Rückfrage', prompt: 'Sage, wie es dir geht, und frage dann nach der anderen Person.', cue: 'Kapoy ko karon. Kumusta ka?' },
|
||||
{ title: 'Beziehungsanker', prompt: 'Sage, dass du jemanden vermisst und oft an ihn oder sie denkst.', cue: 'Gimingaw ko nimo. Kanunay ko naghunahuna nimo.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Gefühlsantwort', text: 'Wähle drei Gefühle und bilde zu jedem eine kurze Antwort, die du einer nahen Person sagen könntest.' }
|
||||
]
|
||||
},
|
||||
'Gefühlswortschatz & Reaktionen': {
|
||||
learningGoals: [
|
||||
'Zentrale Gefühlswörter und kurze Reaktionen sicher erkennen.',
|
||||
'Zwischen Sorge, Freude, Müdigkeit und Vermissen unterscheiden.',
|
||||
'Zu einfachen Situationen eine passende Reaktion auswählen.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'lipay', gloss: 'froh / glücklich' },
|
||||
{ target: 'guol', gloss: 'besorgt / traurig' },
|
||||
{ target: 'kapoy', gloss: 'müde' },
|
||||
{ target: 'mingaw', gloss: 'vermissend / einsam' },
|
||||
{ target: 'Ayaw kabalaka.', gloss: 'Mach dir keine Sorgen.' },
|
||||
{ target: 'Naa ra ko diri.', gloss: 'Ich bin hier.' },
|
||||
{ target: 'Amping kanunay.', gloss: 'Pass immer auf dich auf.' },
|
||||
{ target: 'Gusto ko nga magkuyog ta.', gloss: 'Ich möchte, dass wir zusammen Zeit verbringen.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Passend reagieren', prompt: 'Reagiere auf Sorge, Müdigkeit und Vermissen mit je einem kurzen Satz.', cue: 'Ayaw kabalaka. Magpahuway sa. Gimingaw ko nimo.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Situationskarten', text: 'Ordne die Wörter lipay, guol, kapoy und mingaw vier Alltagssituationen zu und sprich eine passende Reaktion.' }
|
||||
]
|
||||
},
|
||||
'Gesundheit & Wohlbefinden': {
|
||||
learningGoals: [
|
||||
'Einfache Beschwerden erfragen und beantworten.',
|
||||
'Fürsorglich zu Ruhe, Wasser oder Medizin überleiten.',
|
||||
'Gesundheitssätze mit bereits bekannten Familienmustern verbinden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Sakit akong ulo.', gloss: 'Mein Kopf tut weh.' },
|
||||
{ target: 'Sakit imong tiyan?', gloss: 'Tut dein Bauch weh?' },
|
||||
{ target: 'Mas maayo na ka?', gloss: 'Geht es dir schon besser?' },
|
||||
{ target: 'Magpahuway sa.', gloss: 'Ruh dich erst einmal aus.' },
|
||||
{ target: 'Uminom og tubig.', gloss: 'Trink Wasser.' },
|
||||
{ target: 'Niinom ka og tambal?', gloss: 'Hast du Medizin genommen?' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'akong / imong', text: 'Mit akong und imong sagst du mein/dein vor einem Körperteil.', example: 'akong ulo, imong tiyan' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Pflege-Mini-Dialog', prompt: 'Frage nach einer Beschwerde und biete Ruhe oder Wasser an.', cue: 'Sakit imong ulo? Magpahuway sa. Uminom og tubig.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Gesundheitscheck', text: 'Sprich drei kurze Pflegefragen und drei passende Antworten laut.' }
|
||||
]
|
||||
},
|
||||
'Körper & Symptome': {
|
||||
learningGoals: [
|
||||
'Häufige Körperstellen und Symptome erkennen.',
|
||||
'Beschwerden mit Ort und Stärke verbinden.',
|
||||
'Pflegewortschatz in kurzen Sätzen verwenden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'ulo', gloss: 'Kopf' },
|
||||
{ target: 'tiyan', gloss: 'Bauch' },
|
||||
{ target: 'ngipon', gloss: 'Zahn' },
|
||||
{ target: 'hilanat', gloss: 'Fieber' },
|
||||
{ target: 'ubo', gloss: 'Husten' },
|
||||
{ target: 'kasakit', gloss: 'Schmerz' },
|
||||
{ target: 'tambal', gloss: 'Medizin' },
|
||||
{ target: 'doktor', gloss: 'Arzt / Ärztin' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Beschwerde lokalisieren', prompt: 'Sage, wo es weh tut, und frage nach Medizin.', cue: 'Sakit akong tiyan. Asa ang tambal?' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Körperrunde', text: 'Zeige auf Kopf, Bauch und Zahn und sage je einen kurzen Satz mit sakit.' }
|
||||
]
|
||||
},
|
||||
'Höflichkeitsformen praktisch': {
|
||||
learningGoals: [
|
||||
'Bitten, Entschuldigung und weiche Reaktionen unterscheiden.',
|
||||
'Direkte Aussagen höflicher formulieren.',
|
||||
'Höflichkeit in Konflikt- und Beziehungssituationen anwenden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Palihug.', gloss: 'Bitte.' },
|
||||
{ target: 'Pasayloa ko.', gloss: 'Entschuldige mich.' },
|
||||
{ target: 'Pwede ko mangutana?', gloss: 'Darf ich fragen?' },
|
||||
{ target: 'Sige lang.', gloss: 'Schon okay.' },
|
||||
{ target: 'Dili lang sa karon.', gloss: 'Jetzt lieber nicht.' },
|
||||
{ target: 'Salamat sa pagsabot.', gloss: 'Danke fürs Verstehen.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Weich ablehnen', text: 'Dili lang sa karon ist oft sozial weicher als ein direktes Nein.', example: 'Dili lang sa karon. Sunod na lang.' },
|
||||
{ title: 'Bitte und Reparatur', text: 'Palihug und Pasayloa ko helfen, wenn du etwas brauchst oder einen Fehler korrigierst.', example: 'Pasayloa ko. Palihug ka mubalik?' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Höflich korrigieren', prompt: 'Entschuldige dich, bitte um Wiederholung und bedanke dich.', cue: 'Pasayloa ko. Palihug ka mubalik? Salamat.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Direkt zu höflich', text: 'Forme drei direkte deutsche Sätze in weiche Bisaya-Reaktionen um.' }
|
||||
]
|
||||
},
|
||||
'Bitten & Nachfragen': {
|
||||
learningGoals: [
|
||||
'Bei Verständnisproblemen sicher reagieren.',
|
||||
'Um Hilfe, Wiederholung und langsamere Sprache bitten.',
|
||||
'Nach Bedeutung und nächstem Schritt fragen.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Wala ko kasabot.', gloss: 'Ich verstehe nicht.' },
|
||||
{ target: 'Palihug ka mubalik?', gloss: 'Kannst du das bitte wiederholen?' },
|
||||
{ target: 'Hinay-hinay lang.', gloss: 'Bitte langsam.' },
|
||||
{ target: 'Tabangi ko, palihug.', gloss: 'Hilf mir bitte.' },
|
||||
{ target: 'Unsay pasabot ani?', gloss: 'Was bedeutet das?' },
|
||||
{ target: 'Unsa ang sunod?', gloss: 'Was kommt als Nächstes?' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Reparaturdialog', prompt: 'Sage, dass du nicht verstehst, bitte um langsames Wiederholen und frage nach der Bedeutung.', cue: 'Wala ko kasabot. Hinay-hinay lang. Unsay pasabot ani?' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Notfallanker', text: 'Übe die sechs Sätze in wechselnder Reihenfolge, bis du sie ohne Lesen sagen kannst.' }
|
||||
]
|
||||
},
|
||||
'Kinder & Familie': {
|
||||
learningGoals: [
|
||||
'Mit Kindern kurze und klare Alltagssätze sprechen.',
|
||||
'Essen, Schule und Fertigsein in einfachen Fragen verbinden.',
|
||||
'Freundliche Aufforderungen ohne harten Ton bilden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Ali diri.', gloss: 'Komm her.' },
|
||||
{ target: 'Andam na ka?', gloss: 'Bist du fertig?' },
|
||||
{ target: 'Nikaon na ka?', gloss: 'Hast du schon gegessen?' },
|
||||
{ target: 'Asa imong bag?', gloss: 'Wo ist deine Tasche?' },
|
||||
{ target: 'Magtuon ta.', gloss: 'Lass uns lernen.' },
|
||||
{ target: 'Matulog na ta.', gloss: 'Lass uns schlafen gehen.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Kind ansprechen', prompt: 'Frage ein Kind nach Essen, Tasche und Fertigsein.', cue: 'Nikaon na ka? Asa imong bag? Andam na ka?' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Kinder-Mini-Szene', text: 'Spiele eine Szene vor der Schule: Tasche suchen, Essen fragen, losgehen.' }
|
||||
]
|
||||
},
|
||||
'Kinder, Spiel & Routine': {
|
||||
learningGoals: [
|
||||
'Spiel, Lernen und Schlaf als Routine verbinden.',
|
||||
'Zwischen Aktivität und Abschluss unterscheiden.',
|
||||
'Eine kurze Abendroutine mit Kindersprache bilden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Magdula ta.', gloss: 'Lass uns spielen.' },
|
||||
{ target: 'Ganahan ka modula?', gloss: 'Möchtest du spielen?' },
|
||||
{ target: 'Human na ka?', gloss: 'Bist du fertig?' },
|
||||
{ target: 'Lingaw ka?', gloss: 'Hast du Spaß?' },
|
||||
{ target: 'Magtuon ta gamay.', gloss: 'Lass uns ein bisschen lernen.' },
|
||||
{ target: 'Katulog og maayo.', gloss: 'Schlaf gut.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Abendroutine', prompt: 'Verbinde Spiel beenden, kurz lernen und schlafen gehen.', cue: 'Human na ka? Magtuon ta gamay. Katulog og maayo.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Routinekette', text: 'Sprich eine Kette aus Spielen, Fertigsein, Lernen und Schlafen.' }
|
||||
]
|
||||
},
|
||||
'Woche 3 - Intensivwiederholung': {
|
||||
learningGoals: [
|
||||
'Gefühle, Gesundheit, Kinder und Höflichkeit gemischt abrufen.',
|
||||
'Ähnliche Sätze in wechselnden Situationen unterscheiden.',
|
||||
'Schneller von Wiedererkennung zu eigener Antwort wechseln.'
|
||||
],
|
||||
corePatterns: [
|
||||
'Gimingaw ko nimo.',
|
||||
'Sakit imong ulo?',
|
||||
'Andam na ka?',
|
||||
'Pasayloa ko.',
|
||||
'Magpahuway sa.',
|
||||
'Hinay-hinay lang.'
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Schnelle Situationsantworten', prompt: 'Reagiere kurz auf: vermissen, Kopfschmerz, Kind ist nicht fertig, du verstehst nicht.', cue: 'Gimingaw ko nimo. Magpahuway sa. Andam na ka? Wala ko kasabot.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Mischkarten', text: 'Mische Karten aus Gefühl, Gesundheit, Kind und Bitte; antworte jeweils mit einem Satz.' }
|
||||
]
|
||||
},
|
||||
'Woche 3 - Checkpoint': {
|
||||
learningGoals: [
|
||||
'Die erste Alltagserweiterung diagnostisch prüfen.',
|
||||
'Kernmuster aus Woche 3 aktiv in beide Richtungen abrufen.',
|
||||
'Mindestens eine freie Antwort zu einer realen Szene bilden.'
|
||||
],
|
||||
corePatterns: [
|
||||
'Naguol ko gamay.',
|
||||
'Mas maayo na ka?',
|
||||
'Pwede ko mangutana?',
|
||||
'Ali diri.',
|
||||
'Magdula ta.',
|
||||
'Amping kanunay.'
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Freie Antwort', prompt: 'Eine nahe Person ist müde und traurig. Reagiere mit zwei fürsorglichen Sätzen.', cue: 'Magpahuway sa. Naa ra ko diri.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Selbstcheck', text: 'Markiere alle Sätze, die du ohne Lesen sagen kannst, und wiederhole die unsicheren sofort im SRS.' }
|
||||
]
|
||||
},
|
||||
'Alltagsszene: Zuhause morgens': {
|
||||
learningGoals: [
|
||||
'Eine konkrete Morgenszene in mehreren Schritten sprechen.',
|
||||
'Familie, Essen, Schule und Aufgaben verbinden.',
|
||||
'Alte Grundlagen in einem neuen Ablauf anwenden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Maayong buntag.', gloss: 'Guten Morgen.' },
|
||||
{ target: 'Bangon na.', gloss: 'Steh jetzt auf.' },
|
||||
{ target: 'Nikaon na ka?', gloss: 'Hast du schon gegessen?' },
|
||||
{ target: 'Andam na ka sa eskwela?', gloss: 'Bist du bereit für die Schule?' },
|
||||
{ target: 'Naa koy buhaton karon.', gloss: 'Ich habe heute etwas zu tun.' },
|
||||
{ target: 'Pagkahuman, mouli ta.', gloss: 'Danach gehen wir nach Hause.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Ablaufwörter', text: 'Mit karon, unya und pagkahuman strukturierst du kurze Alltagsabläufe.', example: 'Karon... Unya... Pagkahuman...' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Morgenablauf', prompt: 'Bilde einen Ablauf aus Aufstehen, Essen, Schule und Aufgabe.', cue: 'Maayong buntag. Bangon na. Nikaon na ka? Andam na ka sa eskwela?' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: '5-Satz-Morgen', text: 'Sprich eine Morgenszene mit fünf Sätzen ohne deutsche Zwischenhilfe.' }
|
||||
]
|
||||
},
|
||||
'Spiralreview: Woche 1-2 im Alltag': {
|
||||
learningGoals: [
|
||||
'Begrüßung, Familie, Essen, Zeit und Zahlen im Alltag neu kombinieren.',
|
||||
'Alte Muster nicht isoliert, sondern in einer Szene abrufen.',
|
||||
'Frühe Unsicherheiten vor der nächsten Phase sichtbar machen.'
|
||||
],
|
||||
corePatterns: [
|
||||
'Kumusta ka?',
|
||||
'Si Nanay.',
|
||||
'Nikaon na ka?',
|
||||
'Karon',
|
||||
'Ugma',
|
||||
'Baynte'
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Alte Muster neu', prompt: 'Begrüße jemanden, frage nach Essen und nenne einen Preis oder Zeitpunkt.', cue: 'Kumusta ka? Nikaon na ka? Baynte pesos.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Spiralrunde', text: 'Nimm je zwei Sätze aus Woche 1 und Woche 2 und baue daraus eine Alltagsszene.' }
|
||||
]
|
||||
},
|
||||
'Alltagsszene: Besuch am Nachmittag': {
|
||||
learningGoals: [
|
||||
'Einen Besuch freundlich eröffnen.',
|
||||
'Hereinbitten, Sitzplatz anbieten und Getränk/Essen anbieten.',
|
||||
'Nähe und Gastfreundschaft mit bekannten Höflichkeitsformen verbinden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Maayong hapon.', gloss: 'Guten Nachmittag.' },
|
||||
{ target: 'Sulod lang.', gloss: 'Komm ruhig herein.' },
|
||||
{ target: 'Lingkod sa.', gloss: 'Setz dich erst einmal.' },
|
||||
{ target: 'Gusto ka og tubig?', gloss: 'Möchtest du Wasser?' },
|
||||
{ target: 'Gimingaw mi nimo.', gloss: 'Wir haben dich vermisst.' },
|
||||
{ target: 'Salamat sa pag-anhi.', gloss: 'Danke fürs Kommen.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Gast begrüßen', prompt: 'Begrüße einen Gast, bitte ihn herein und biete Wasser an.', cue: 'Maayong hapon. Sulod lang. Gusto ka og tubig?' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Besuchsszene', text: 'Spiele Gastgeber und Gast abwechselnd mit mindestens vier Sätzen.' }
|
||||
]
|
||||
},
|
||||
'Spiralreview: Gefühle & Gesundheit': {
|
||||
learningGoals: [
|
||||
'Gefühle und Gesundheitsmuster blockübergreifend wiederholen.',
|
||||
'Müdigkeit, Schmerz, Bitte und Hilfe passend beantworten.',
|
||||
'Zuneigung und Fürsorge in kurzen Reaktionen verbinden.'
|
||||
],
|
||||
corePatterns: [
|
||||
'Kapoy ko.',
|
||||
'Sakit akong ulo.',
|
||||
'Tabangi ko, palihug.',
|
||||
'Ayaw kabalaka.',
|
||||
'Magpahuway sa.',
|
||||
'Palangga taka.'
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Fürsorgeantwort', prompt: 'Eine Person sagt, sie ist müde und hat Kopfschmerzen. Reagiere fürsorglich.', cue: 'Ayaw kabalaka. Magpahuway sa. Uminom og tubig.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Reaktionspaare', text: 'Bilde fünf Paare aus Problem und Antwort, z. B. kapoy -> magpahuway sa.' }
|
||||
]
|
||||
},
|
||||
'Längeres Gespräch: Planung und Familie': {
|
||||
learningGoals: [
|
||||
'Mehrere Alltagsschritte in Reihenfolge erzählen.',
|
||||
'Familie, Wege und Aufgaben in einem längeren Gespräch verbinden.',
|
||||
'Erste freie Antworten über vier bis sechs Sätze bilden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Una, moadto ko sa merkado.', gloss: 'Zuerst gehe ich zum Markt.' },
|
||||
{ target: 'Pagkahuman, kuhaon nako ang bata.', gloss: 'Danach hole ich das Kind ab.' },
|
||||
{ target: 'Unya, mouli mi sa balay.', gloss: 'Später gehen wir nach Hause.' },
|
||||
{ target: 'Aduna koy plano karon.', gloss: 'Ich habe heute einen Plan.' },
|
||||
{ target: 'Gusto ko nga naa ko nimo.', gloss: 'Ich möchte bei dir sein.' },
|
||||
{ target: 'Magkita ta ugma.', gloss: 'Wir sehen uns morgen.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Reihenfolge mit una/pagkahuman/unya', text: 'Diese Wörter machen aus Einzelsätzen einen Ablauf.', example: 'Una... Pagkahuman... Unya...' },
|
||||
{ title: 'gusto ko nga', text: 'Mit gusto ko nga leitest du einen Wunsch mit einem Folgesatz ein.', example: 'Gusto ko nga naa ko nimo.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Tagesplan erzählen', prompt: 'Erzähle einen Tagesplan mit drei Schritten und einem Wunsch.', cue: 'Una... Pagkahuman... Unya... Gusto ko nga...' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: '6-Satz-Plan', text: 'Sprich sechs Sätze über deinen heutigen oder morgigen Plan.' }
|
||||
]
|
||||
},
|
||||
'Gesamtwiederholung mit Fehlerclustern': {
|
||||
learningGoals: [
|
||||
'Typische Verwechslungen aus Zeit, Bitte, Frage und Nähe erkennen.',
|
||||
'Ähnliche Formen direkt gegeneinander trainieren.',
|
||||
'Vor der Grundphasenprüfung schwache Muster isolieren.'
|
||||
],
|
||||
corePatterns: [
|
||||
'Ni-adto ko ganiha.',
|
||||
'Mo-adto ko ugma.',
|
||||
'Palihug ka mubalik?',
|
||||
'Pwede ko mangutana?',
|
||||
'Gimingaw ko nimo.',
|
||||
'Gusto ko nga naa ko nimo.'
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'ni- vs. mo-', text: 'ni- blickt zurück, mo- nach vorn oder auf eine Absicht.', example: 'Ni-adto ko ganiha. Mo-adto ko ugma.' },
|
||||
{ title: 'Bitte vs. Frage', text: 'Palihug ka mubalik? bittet um Wiederholung; Pwede ko mangutana? bittet um Erlaubnis zu fragen.', example: 'Palihug ka mubalik? / Pwede ko mangutana?' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Kontrastdrill', prompt: 'Sage je einen Satz für gestern, morgen, Bitte um Wiederholung und Beziehungswunsch.', cue: 'Ni-adto ko ganiha. Mo-adto ko ugma. Palihug ka mubalik? Gusto ko nga naa ko nimo.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Fehlerprotokoll', text: 'Notiere drei Verwechslungen und bilde jeweils zwei Kontrastsätze.' }
|
||||
]
|
||||
},
|
||||
'Praktische Übung: Markt + Familie': {
|
||||
learningGoals: [
|
||||
'Eine Marktszene mit Familienbedarf verbinden.',
|
||||
'Preis, Menge und Kaufgrund in kurzen Sätzen ausdrücken.',
|
||||
'Alltagssprache praktisch statt isoliert anwenden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' },
|
||||
{ target: 'Pwede duha kabuok?', gloss: 'Gehen zwei Stück?' },
|
||||
{ target: 'Mupalit ko para sa pamilya.', gloss: 'Ich kaufe für die Familie.' },
|
||||
{ target: 'Kinahanglan nako og tubig.', gloss: 'Ich brauche Wasser.' },
|
||||
{ target: 'Sige, kuhaon nako.', gloss: 'Okay, ich nehme es.' },
|
||||
{ target: 'Salamat kaayo.', gloss: 'Vielen Dank.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Marktdialog', prompt: 'Frage nach Preis und Menge und sage, dass du für die Familie kaufst.', cue: 'Tagpila ni? Pwede duha kabuok? Mupalit ko para sa pamilya.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Einkaufsliste', text: 'Wähle drei Dinge aus und sprich je einen Satz zu Preis, Menge oder Grund.' }
|
||||
]
|
||||
},
|
||||
'Abschlusstest Wortschatz aktiv': {
|
||||
learningGoals: [
|
||||
'Kernwortschatz der ersten vier Wochen aktiv abrufen.',
|
||||
'Wörter und kurze Sätze in beide Richtungen trainieren.',
|
||||
'SRS-relevante Schwächen für die Wiederholung markieren.'
|
||||
],
|
||||
corePatterns: [
|
||||
'Kumusta',
|
||||
'Palihug',
|
||||
'Pamilya',
|
||||
'Tubig',
|
||||
'Karon',
|
||||
'Ugma',
|
||||
'Tambal',
|
||||
'Gimingaw ko nimo'
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Aktiver Abruf', prompt: 'Bilde aus vier zufälligen Wörtern je einen kurzen Satz.', cue: 'Tubig -> Gusto ka og tubig?' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Beide Richtungen', text: 'Übersetze zehn Kernwörter Deutsch -> Bisaya und Bisaya -> Deutsch.' }
|
||||
]
|
||||
},
|
||||
'Abschlussprüfung Grundphase': {
|
||||
learningGoals: [
|
||||
'Die Grundphase in Dialog, Wortschatz und freier Antwort prüfen.',
|
||||
'Alltag, Beziehung, Fürsorge und Reparatursprache kombinieren.',
|
||||
'Verständliche Antworten über mehrere Sätze produzieren.'
|
||||
],
|
||||
corePatterns: [
|
||||
'Kumusta ka?',
|
||||
'Nikaon na ka?',
|
||||
'Wala ko kasabot.',
|
||||
'Mas maayo na ka?',
|
||||
'Gusto ko nga naa ko nimo.',
|
||||
'Mupalit ko para sa pamilya.'
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Mini-Dialog 1', prompt: 'Begrüße, frage nach Essen und reagiere fürsorglich.', cue: 'Kumusta ka? Nikaon na ka? Magpahuway sa.' },
|
||||
{ title: 'Mini-Dialog 2', prompt: 'Bitte um Wiederholung und sage danach einen Beziehungs- oder Familienwunsch.', cue: 'Palihug ka mubalik? Gusto ko nga naa ko nimo.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Prüfungsszene', text: 'Sprich zwei kurze Szenen: zuhause morgens und Markt für Familie.' }
|
||||
]
|
||||
},
|
||||
'Kultur: Höflichkeit, Familie, Alltag': {
|
||||
learningGoals: [
|
||||
'Höflichkeit und Familiennähe kulturell einordnen.',
|
||||
'Indirekte Bitte und weiche Ablehnung verstehen.',
|
||||
'Sprachliche Wärme passend statt wörtlich einsetzen.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'respeto', gloss: 'Respekt' },
|
||||
{ target: 'amping', gloss: 'Pass auf dich auf' },
|
||||
{ target: 'palihug', gloss: 'bitte' },
|
||||
{ target: 'pakikisama', gloss: 'soziale Harmonie / Miteinander' },
|
||||
{ target: 'Dili lang sa karon.', gloss: 'Jetzt lieber nicht.' },
|
||||
{ target: 'Palangga taka.', gloss: 'Ich hab dich lieb / Ich liebe dich.' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Nicht nur wörtlich übersetzen', text: 'Ein Satz kann grammatisch richtig sein und trotzdem sozial unpassend klingen. Kontext entscheidet.', example: 'Palangga taka kann Beziehung und Familie warm ausdrücken.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Kulturell passend reagieren', prompt: 'Wähle eine weiche Antwort auf eine Einladung, wenn du heute nicht kannst.', cue: 'Dili lang sa karon. Sunod na lang. Salamat.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Weiterlernplan', text: 'Notiere drei Situationen, in denen du Bisaya mit einer nahen Person wirklich verwenden willst.' }
|
||||
]
|
||||
}
|
||||
};
|
||||
@@ -13,6 +13,7 @@ import VocabCourseLesson from '../models/community/vocab_course_lesson.js';
|
||||
import VocabGrammarExercise from '../models/community/vocab_grammar_exercise.js';
|
||||
import VocabCourse from '../models/community/vocab_course.js';
|
||||
import User from '../models/community/user.js';
|
||||
import { BISAYA_DIDACTICS_24_43, BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS } from './bisaya-course-plan-24-43.js';
|
||||
import { BISAYA_PHASE3_DIDACTICS } from './bisaya-course-phase3-extension.js';
|
||||
import { BISAYA_PHASE4_DIDACTICS } from './bisaya-course-phase4-extension.js';
|
||||
import { BISAYA_PHASE5_DIDACTICS } from './bisaya-course-phase5-extension.js';
|
||||
@@ -25,6 +26,8 @@ function withTypeName(exerciseTypeName, exercise) {
|
||||
}
|
||||
|
||||
const GENERATED_BISAYA_DIDACTICS = {
|
||||
...BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS,
|
||||
...BISAYA_DIDACTICS_24_43,
|
||||
...BISAYA_PHASE3_DIDACTICS,
|
||||
...BISAYA_PHASE4_DIDACTICS,
|
||||
...BISAYA_PHASE5_DIDACTICS
|
||||
|
||||
@@ -12,6 +12,7 @@ import VocabCourseLesson from '../models/community/vocab_course_lesson.js';
|
||||
import User from '../models/community/user.js';
|
||||
import crypto from 'crypto';
|
||||
import { getBisayaLessonPedagogy } from './bisaya-course-phase2-pedagogy.js';
|
||||
import { BISAYA_DIDACTICS_24_43, BISAYA_LESSONS_24_43, BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS } from './bisaya-course-plan-24-43.js';
|
||||
import { BISAYA_PHASE3_DIDACTICS, BISAYA_PHASE3_LESSONS } from './bisaya-course-phase3-extension.js';
|
||||
import { BISAYA_PHASE4_DIDACTICS, BISAYA_PHASE4_LESSONS } from './bisaya-course-phase4-extension.js';
|
||||
import { BISAYA_PHASE5_DIDACTICS, BISAYA_PHASE5_LESSONS } from './bisaya-course-phase5-extension.js';
|
||||
@@ -846,6 +847,8 @@ const LESSON_DIDACTICS = {
|
||||
'Mingaw ko nimo'
|
||||
]
|
||||
},
|
||||
...BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS,
|
||||
...BISAYA_DIDACTICS_24_43,
|
||||
...BISAYA_PHASE3_DIDACTICS,
|
||||
...BISAYA_PHASE4_DIDACTICS,
|
||||
...BISAYA_PHASE5_DIDACTICS
|
||||
@@ -969,107 +972,7 @@ const LESSONS = [
|
||||
targetMin: 15, targetScore: 80, review: true,
|
||||
cultural: null },
|
||||
|
||||
// WOCHE 3: Vertiefung
|
||||
{ week: 3, day: 1, num: 24, type: 'conversation', title: 'Gefühle & Emotionen',
|
||||
desc: 'Nalipay, nasubo, nahadlok, naguol',
|
||||
targetMin: 15, targetScore: 80, review: false,
|
||||
cultural: 'Emotionen auszudrücken ist wichtig für echte Verbindung.' },
|
||||
|
||||
{ week: 3, day: 1, num: 25, type: 'vocab', title: 'Gefühle & Emotionen',
|
||||
desc: 'Wörter für verschiedene Gefühle',
|
||||
targetMin: 20, targetScore: 85, review: true,
|
||||
cultural: null },
|
||||
|
||||
{ week: 3, day: 2, num: 26, type: 'conversation', title: 'Gesundheit & Wohlbefinden',
|
||||
desc: 'Sakit, maayo, tambal, doktor',
|
||||
targetMin: 15, targetScore: 80, review: false,
|
||||
cultural: null },
|
||||
|
||||
{ week: 3, day: 2, num: 27, type: 'vocab', title: 'Körper & Gesundheit',
|
||||
desc: 'Wörter rund um den Körper und Gesundheit',
|
||||
targetMin: 20, targetScore: 85, review: true,
|
||||
cultural: null },
|
||||
|
||||
{ week: 3, day: 3, num: 28, type: 'grammar', title: 'Höflichkeitsformen',
|
||||
desc: 'Palihug, Pwede, Tabang',
|
||||
targetMin: 20, targetScore: 75, review: true,
|
||||
cultural: 'Höflichkeit ist extrem wichtig in der philippinischen Kultur.' },
|
||||
|
||||
{ week: 3, day: 3, num: 29, type: 'conversation', title: 'Bitten & Fragen',
|
||||
desc: 'Wie man höflich fragt und bittet',
|
||||
targetMin: 15, targetScore: 80, review: false,
|
||||
cultural: null },
|
||||
|
||||
{ week: 3, day: 4, num: 30, type: 'conversation', title: 'Kinder & Familie',
|
||||
desc: 'Gespräche mit und über Kinder',
|
||||
targetMin: 15, targetScore: 80, review: false,
|
||||
cultural: 'Kinder sind sehr wichtig in philippinischen Familien.' },
|
||||
|
||||
{ week: 3, day: 4, num: 31, type: 'vocab', title: 'Kinder & Spiel',
|
||||
desc: 'Wörter für Kinder und Spielsachen',
|
||||
targetMin: 20, targetScore: 85, review: true,
|
||||
cultural: null },
|
||||
|
||||
{ week: 3, day: 5, num: 32, type: 'review', title: 'Woche 3 - Wiederholung',
|
||||
desc: 'Wiederhole alle Inhalte der dritten Woche',
|
||||
targetMin: 30, targetScore: 80, review: false,
|
||||
cultural: null },
|
||||
|
||||
{ week: 3, day: 5, num: 33, type: 'vocab', title: 'Woche 3 - Vokabeltest',
|
||||
desc: 'Teste dein Wissen aus Woche 3',
|
||||
targetMin: 15, targetScore: 80, review: true,
|
||||
cultural: null },
|
||||
|
||||
// WOCHE 4: Freies Sprechen
|
||||
{ week: 4, day: 1, num: 34, type: 'conversation', title: 'Freies Gespräch - Thema 1',
|
||||
desc: 'Übe freies Sprechen zu verschiedenen Themen',
|
||||
targetMin: 20, targetScore: 75, review: false,
|
||||
cultural: 'Fehler sind okay! Philippiner schätzen das Bemühen.' },
|
||||
|
||||
{ week: 4, day: 1, num: 35, type: 'vocab', title: 'Wiederholung - Woche 1 & 2',
|
||||
desc: 'Wiederhole wichtige Vokabeln aus den ersten beiden Wochen',
|
||||
targetMin: 25, targetScore: 85, review: true,
|
||||
cultural: null },
|
||||
|
||||
{ week: 4, day: 2, num: 36, type: 'conversation', title: 'Freies Gespräch - Thema 2',
|
||||
desc: 'Weitere Übung im freien Sprechen',
|
||||
targetMin: 20, targetScore: 75, review: false,
|
||||
cultural: null },
|
||||
|
||||
{ week: 4, day: 2, num: 37, type: 'vocab', title: 'Wiederholung - Woche 3',
|
||||
desc: 'Wiederhole wichtige Vokabeln aus Woche 3',
|
||||
targetMin: 25, targetScore: 85, review: true,
|
||||
cultural: null },
|
||||
|
||||
{ week: 4, day: 3, num: 38, type: 'conversation', title: 'Komplexere Gespräche',
|
||||
desc: 'Längere Gespräche zu verschiedenen Themen',
|
||||
targetMin: 25, targetScore: 75, review: false,
|
||||
cultural: 'Je mehr du sprichst, desto besser wirst du!' },
|
||||
|
||||
{ week: 4, day: 3, num: 39, type: 'review', title: 'Gesamtwiederholung',
|
||||
desc: 'Wiederhole alle wichtigen Inhalte des Kurses',
|
||||
targetMin: 30, targetScore: 80, review: false,
|
||||
cultural: null },
|
||||
|
||||
{ week: 4, day: 4, num: 40, type: 'conversation', title: 'Praktische Übung',
|
||||
desc: 'Simuliere echte Gesprächssituationen',
|
||||
targetMin: 25, targetScore: 75, review: false,
|
||||
cultural: null },
|
||||
|
||||
{ week: 4, day: 4, num: 41, type: 'vocab', title: 'Abschlusstest - Vokabeln',
|
||||
desc: 'Finaler Vokabeltest über den gesamten Kurs',
|
||||
targetMin: 20, targetScore: 80, review: true,
|
||||
cultural: null },
|
||||
|
||||
{ week: 4, day: 5, num: 42, type: 'review', title: 'Abschlussprüfung',
|
||||
desc: 'Finale Prüfung über alle Kursinhalte',
|
||||
targetMin: 30, targetScore: 80, review: false,
|
||||
cultural: 'Gratulation zum Abschluss des Kurses!' },
|
||||
|
||||
{ week: 4, day: 5, num: 43, type: 'culture', title: 'Kulturelle Tipps & Tricks',
|
||||
desc: 'Wichtige kulturelle Hinweise für den Alltag',
|
||||
targetMin: 15, targetScore: 0, review: false,
|
||||
cultural: 'Kulturelles Verständnis ist genauso wichtig wie die Sprache selbst.' },
|
||||
...BISAYA_LESSONS_24_43,
|
||||
|
||||
...BISAYA_PHASE3_LESSONS,
|
||||
...BISAYA_PHASE4_LESSONS,
|
||||
|
||||
@@ -10,10 +10,30 @@ import { sequelize } from '../utils/sequelize.js';
|
||||
import VocabCourseLesson from '../models/community/vocab_course_lesson.js';
|
||||
import { getBisayaLessonPedagogy } from './bisaya-course-phase2-pedagogy.js';
|
||||
import { BISAYA_DIDACTICS_FRAGMENTS } from './bisaya-course-phase1.js';
|
||||
import {
|
||||
BISAYA_DIDACTICS_24_43,
|
||||
BISAYA_LESSONS_24_43_BY_NUMBER,
|
||||
BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS
|
||||
} from './bisaya-course-plan-24-43.js';
|
||||
|
||||
/** Alte Kurstitel → aktueller Schlüssel in LESSON_DIDACTICS (bestehende Datenbanken). */
|
||||
export const LEGACY_DIDACTICS_TITLE_MAP = {
|
||||
'Zahlen & Preise': 'Zahlen 1–20'
|
||||
'Zahlen & Preise': 'Zahlen 1–20',
|
||||
'Gefühle & Emotionen': 'Gefühle im Alltag',
|
||||
'Höflichkeitsformen': 'Höflichkeitsformen praktisch',
|
||||
'Kinder & Spiel': 'Kinder, Spiel & Routine',
|
||||
'Woche 3 - Wiederholung': 'Woche 3 - Intensivwiederholung',
|
||||
'Woche 3 - Vokabeltest': 'Woche 3 - Checkpoint',
|
||||
'Freies Gespräch - Thema 1': 'Alltagsszene: Zuhause morgens',
|
||||
'Wiederholung - Woche 1 & 2': 'Spiralreview: Woche 1-2 im Alltag',
|
||||
'Freies Gespräch - Thema 2': 'Alltagsszene: Besuch am Nachmittag',
|
||||
'Wiederholung - Woche 3': 'Spiralreview: Gefühle & Gesundheit',
|
||||
'Komplexere Gespräche': 'Längeres Gespräch: Planung und Familie',
|
||||
'Gesamtwiederholung': 'Gesamtwiederholung mit Fehlerclustern',
|
||||
'Praktische Übung': 'Praktische Übung: Markt + Familie',
|
||||
'Abschlusstest - Vokabeln': 'Abschlusstest Wortschatz aktiv',
|
||||
'Abschlussprüfung': 'Abschlussprüfung Grundphase',
|
||||
'Kulturelle Tipps & Tricks': 'Kultur: Höflichkeit, Familie, Alltag'
|
||||
};
|
||||
|
||||
export const LESSON_DIDACTICS = {
|
||||
@@ -462,12 +482,16 @@ export const LESSON_DIDACTICS = {
|
||||
'Von einzelnen Wörtern zu kurzen Sätzen übergehen.'
|
||||
],
|
||||
corePatterns: ['Kumusta', 'Salamat', 'Lami', 'Mingaw ko nimo']
|
||||
}
|
||||
},
|
||||
...BISAYA_RELATIONSHIP_ANCHOR_DIDACTICS,
|
||||
...BISAYA_DIDACTICS_24_43
|
||||
};
|
||||
|
||||
function resolveDidacticsForLesson(lesson) {
|
||||
const direct = LESSON_DIDACTICS[lesson.title];
|
||||
if (direct) return direct;
|
||||
const plannedTitle = BISAYA_LESSONS_24_43_BY_NUMBER[Number(lesson.lessonNumber)]?.title;
|
||||
if (plannedTitle && LESSON_DIDACTICS[plannedTitle]) return LESSON_DIDACTICS[plannedTitle];
|
||||
const mappedTitle = LEGACY_DIDACTICS_TITLE_MAP[lesson.title];
|
||||
if (mappedTitle) return LESSON_DIDACTICS[mappedTitle];
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user