From 4df8f97a417d3ff1f91db81c4dfe6331d466cc11 Mon Sep 17 00:00:00 2001
From: "Torsten Schulz (local)"
Date: Fri, 17 Apr 2026 14:51:09 +0200
Subject: [PATCH] feat(bisaya-course): add new 'Ort & Richtung' section with
learning goals and practical tasks
- Introduced a new section for 'Ort & Richtung' in the Bisaya didactics, including learning goals, core patterns, grammar focus, speaking prompts, and practical tasks to enhance language learning.
- Updated the lesson didactics to include the new section, ensuring comprehensive coverage of location and direction vocabulary.
---
backend/scripts/bisaya-course-phase1.js | 44 +++++++++++++++++++
backend/scripts/update-bisaya-didactics.js | 1 +
.../src/i18n/locales/de/socialnetwork.json | 2 +
.../src/i18n/locales/en/socialnetwork.json | 2 +
.../views/social/VocabLessonReviewView.vue | 11 ++++-
frontend/src/views/social/VocabLessonView.vue | 35 ++++++++++++---
6 files changed, 89 insertions(+), 6 deletions(-)
diff --git a/backend/scripts/bisaya-course-phase1.js b/backend/scripts/bisaya-course-phase1.js
index fd25254..af29eed 100644
--- a/backend/scripts/bisaya-course-phase1.js
+++ b/backend/scripts/bisaya-course-phase1.js
@@ -140,5 +140,49 @@ export const BISAYA_DIDACTICS_FRAGMENTS = {
text: 'Baue einen Mini-Dialog mit Zielort, Uhrzeit und Rückkehr in mindestens vier Sätzen.'
}
]
+ },
+ 'Ort & Richtung': {
+ learningGoals: [
+ 'Fragen nach Ort und Richtung sicher stellen und beantworten.',
+ '„hier“, „dort“ und „unterwegs nach …“ im Alltag unterscheiden.',
+ 'Kurze Weg- und Zielangaben mit bekannten Ortswörtern verbinden.'
+ ],
+ corePatterns: [
+ { target: 'Asa ka?', gloss: 'Wo bist du? / Wohin gehst du?' },
+ { target: 'Asa ang merkado?', gloss: 'Wo ist der Markt?' },
+ { target: 'Asa ang simbahan?', gloss: 'Wo ist die Kirche?' },
+ { target: 'Dinhi ko.', gloss: 'Ich bin hier.' },
+ { target: 'Naa ko dinhi.', gloss: 'Ich bin hier.' },
+ { target: 'Didto siya.', gloss: 'Er/sie ist dort.' },
+ { target: 'Adto ta didto.', gloss: 'Lass uns dorthin gehen.' },
+ { target: 'Padulong ko sa merkado.', gloss: 'Ich bin auf dem Weg zum Markt.' },
+ { target: 'Padulong ta didto.', gloss: 'Lass uns dorthin aufbrechen.' },
+ { target: 'Naa ko sa balay.', gloss: 'Ich bin zu Hause.' }
+ ],
+ grammarFocus: [
+ {
+ title: 'Asa = Wo / Wohin',
+ text: '„Asa“ fragt nach Ort oder Ziel. Mit „ang“ kannst du nach einem bestimmten Ort fragen.',
+ example: 'Asa ka? Asa ang merkado?'
+ },
+ {
+ title: 'dinhi / didto',
+ text: '„dinhi“ = hier, „didto“ = dort (weg vom Sprecher).',
+ example: 'Naa ko dinhi. Didto ang simbahan.'
+ }
+ ],
+ speakingPrompts: [
+ {
+ title: 'Weg fragen',
+ prompt: 'Frage, wo der Markt ist, und sage dann, dass du dorthin unterwegs bist.',
+ cue: 'Asa ang merkado? Padulong ko sa merkado.'
+ }
+ ],
+ practicalTasks: [
+ {
+ title: 'Mini-Route',
+ text: 'Bilde drei Sätze: wo du bist, wohin du willst, und dass du unterwegs bist.'
+ }
+ ]
}
};
diff --git a/backend/scripts/update-bisaya-didactics.js b/backend/scripts/update-bisaya-didactics.js
index 083d519..3c50217 100644
--- a/backend/scripts/update-bisaya-didactics.js
+++ b/backend/scripts/update-bisaya-didactics.js
@@ -166,6 +166,7 @@ export const LESSON_DIDACTICS = {
'Alltagsgespräche - Teil 1': BISAYA_DIDACTICS_FRAGMENTS['Alltagsgespräche - Teil 1'],
'Haus & Familie': BISAYA_DIDACTICS_FRAGMENTS['Haus & Familie'],
'Alltagsgespräche - Teil 2': BISAYA_DIDACTICS_FRAGMENTS['Alltagsgespräche - Teil 2'],
+ 'Ort & Richtung': BISAYA_DIDACTICS_FRAGMENTS['Ort & Richtung'],
'Gefühle & Zuneigung': {
learningGoals: [
'Wichtige Gefühle und Zuneigungsformeln sicher unterscheiden.',
diff --git a/frontend/src/i18n/locales/de/socialnetwork.json b/frontend/src/i18n/locales/de/socialnetwork.json
index a0a5b63..ff5d2b3 100644
--- a/frontend/src/i18n/locales/de/socialnetwork.json
+++ b/frontend/src/i18n/locales/de/socialnetwork.json
@@ -707,6 +707,8 @@
"quickReviewIntro": "Kurze Session mit {count} Begriffen. Nach Abschluss wird die geplante Wiederholung als erledigt markiert.",
"quickReviewDoneTitle": "Geschafft",
"quickReviewDoneScore": "Richtig: {correct} / {total}",
+ "quickReviewNoTermsTitle": "Keine Begriffe für die Kurz-Wiederholung",
+ "quickReviewNoTermsBody": "Für diese Lektion sind keine Kernmuster (core patterns) hinterlegt oder sie konnten nicht geladen werden. Bitte Kursinhalt aktualisieren (Sync) oder die Lektion in der Vollansicht öffnen — danach sollte die Kurz-Wiederholung wieder funktionieren.",
"quickReviewBackToCourse": "Zurück zum Kurs",
"quickReviewProgress": "Begriff {current} von {total}",
"quickReviewPromptMeaning": "Was bedeutet \"{term}\"?",
diff --git a/frontend/src/i18n/locales/en/socialnetwork.json b/frontend/src/i18n/locales/en/socialnetwork.json
index a197950..fe32bc7 100644
--- a/frontend/src/i18n/locales/en/socialnetwork.json
+++ b/frontend/src/i18n/locales/en/socialnetwork.json
@@ -707,6 +707,8 @@
"quickReviewIntro": "Short session with {count} terms. After completion, the scheduled review is marked as done.",
"quickReviewDoneTitle": "Done",
"quickReviewDoneScore": "Correct: {correct} / {total}",
+ "quickReviewNoTermsTitle": "No terms for quick review",
+ "quickReviewNoTermsBody": "This lesson has no core patterns loaded, or they could not be read. Please sync course content or open the full lesson — then quick review should work again.",
"quickReviewBackToCourse": "Back to course",
"quickReviewProgress": "Term {current} of {total}",
"quickReviewPromptMeaning": "What does \"{term}\" mean?",
diff --git a/frontend/src/views/social/VocabLessonReviewView.vue b/frontend/src/views/social/VocabLessonReviewView.vue
index b9f57cc..120ed1e 100644
--- a/frontend/src/views/social/VocabLessonReviewView.vue
+++ b/frontend/src/views/social/VocabLessonReviewView.vue
@@ -15,7 +15,13 @@
{{ $t('socialnetwork.vocab.courses.quickReviewIntro', { count: reviewQueue.length }) }}