Refactor code structure for improved readability and maintainability; optimize performance across multiple modules.
All checks were successful
Deploy to production / deploy (push) Successful in 2m56s
All checks were successful
Deploy to production / deploy (push) Successful in 2m56s
This commit is contained in:
0
backend/scripts/add-bisaya-week1-lessons.js
Normal file → Executable file
0
backend/scripts/add-bisaya-week1-lessons.js
Normal file → Executable file
0
backend/scripts/add-grammar-exercises-to-existing-courses.js
Normal file → Executable file
0
backend/scripts/add-grammar-exercises-to-existing-courses.js
Normal file → Executable file
0
backend/scripts/analyze-bisaya-courses.cjs
Normal file → Executable file
0
backend/scripts/analyze-bisaya-courses.cjs
Normal file → Executable file
0
backend/scripts/analyze-bisaya-courses.js
Normal file → Executable file
0
backend/scripts/analyze-bisaya-courses.js
Normal file → Executable file
0
backend/scripts/apply-bisaya-course-refresh.js
Normal file → Executable file
0
backend/scripts/apply-bisaya-course-refresh.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase1.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase1.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase2-pedagogy.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase2-pedagogy.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase3-extension.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase3-extension.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase4-extension.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase4-extension.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase5-extension.js
Normal file → Executable file
0
backend/scripts/bisaya-course-phase5-extension.js
Normal file → Executable file
22
backend/scripts/bisaya-course-plan-24-43.js
Normal file → Executable file
22
backend/scripts/bisaya-course-plan-24-43.js
Normal file → Executable file
@@ -648,10 +648,10 @@ const BISAYA_DIDACTICS_24_43_BASE = {
|
||||
'Nikaon na ka?',
|
||||
'Karon',
|
||||
'Ugma',
|
||||
'Kawhaan'
|
||||
'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? Kawhaan pesos.' }
|
||||
{ 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.' }
|
||||
@@ -853,21 +853,21 @@ const NUMBERS_DIDACTIC = {
|
||||
{ target: 'Usa', gloss: 'eins' }, { target: 'Duha', gloss: 'zwei' }, { target: 'Tulo', gloss: 'drei' }, { target: 'Upat', gloss: 'vier' }, { target: 'Lima', gloss: 'fünf' },
|
||||
{ target: 'Unom', gloss: 'sechs' }, { target: 'Pito', gloss: 'sieben' }, { target: 'Walo', gloss: 'acht' }, { target: 'Siyam', gloss: 'neun' }, { target: 'Napulo', gloss: 'zehn' },
|
||||
{ target: 'Napulo ug usa', gloss: 'elf' }, { target: 'Napulo ug duha', gloss: 'zwölf' }, { target: 'Napulo ug tulo', gloss: 'dreizehn' }, { target: 'Napulo ug upat', gloss: 'vierzehn' }, { target: 'Napulo ug lima', gloss: 'fünfzehn' },
|
||||
{ target: 'Napulo ug unom', gloss: 'sechzehn' }, { target: 'Napulo ug pito', gloss: 'siebzehn' }, { target: 'Napulo ug walo', gloss: 'achtzehn' }, { target: 'Napulo ug siyam', gloss: 'neunzehn' }, { target: 'Kawhaan', gloss: 'zwanzig' },
|
||||
{ target: 'Kawhaan ug usa', gloss: 'einundzwanzig' }, { target: 'Kawhaan ug lima', gloss: 'fünfundzwanzig' }, { target: 'Kawhaan ug siyam', gloss: 'neunundzwanzig' },
|
||||
{ target: 'Katloan', gloss: 'dreißig' }, { target: 'Katloan ug usa', gloss: 'einunddreißig' }, { target: 'Katloan ug lima', gloss: 'fünfunddreißig' }, { target: 'Kap-atan', gloss: 'vierzig' },
|
||||
{ target: 'Kalim-an', gloss: 'fünfzig' }, { target: 'Kalim-an ug walo', gloss: 'achtundfünfzig' }, { target: 'Kanum-an', gloss: 'sechzig' }, { target: 'Kapitoan', gloss: 'siebzig' },
|
||||
{ target: 'Kawaloan', gloss: 'achtzig' }, { target: 'Kasiyaman', gloss: 'neunzig' }, { target: 'Usa ka gatos', gloss: 'einhundert' }, { target: 'Duha ka gatos', gloss: 'zweihundert' },
|
||||
{ target: 'Napulo ug unom', gloss: 'sechzehn' }, { target: 'Napulo ug pito', gloss: 'siebzehn' }, { target: 'Napulo ug walo', gloss: 'achtzehn' }, { target: 'Napulo ug siyam', gloss: 'neunzehn' }, { target: 'Baynte', gloss: 'zwanzig' },
|
||||
{ target: 'Baynte ug usa', gloss: 'einundzwanzig' }, { target: 'Baynte ug lima', gloss: 'fünfundzwanzig' }, { target: 'Baynte ug siyam', gloss: 'neunundzwanzig' },
|
||||
{ target: 'Traynta', gloss: 'dreißig' }, { target: 'Traynta ug usa', gloss: 'einunddreißig' }, { target: 'Traynta ug lima', gloss: 'fünfunddreißig' }, { target: 'Kwarenta', gloss: 'vierzig' },
|
||||
{ target: 'Singkwenta', gloss: 'fünfzig' }, { target: 'Singkwenta ug walo', gloss: 'achtundfünfzig' }, { target: 'Sesenta', gloss: 'sechzig' }, { target: 'Setenta', gloss: 'siebzig' },
|
||||
{ target: 'Otsenta', gloss: 'achtzig' }, { target: 'Nubenta', gloss: 'neunzig' }, { target: 'Usa ka gatos', gloss: 'einhundert' }, { target: 'Duha ka gatos', gloss: 'zweihundert' },
|
||||
{ target: 'Usa ka libo', gloss: 'tausend' }, { target: 'Duha ka libo', gloss: 'zweitausend' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: '11 bis 19', text: 'Bei der nativen Bildung steht zuerst zehn und danach mit „ug“ die Einerzahl.', example: 'Napulo ug usa = elf; Napulo ug lima = fünfzehn.' },
|
||||
{ title: 'Zahlen über 20', text: 'Dasselbe Muster funktioniert mit höheren Zehnern: Zehner + „ug“ + Einer. Wir bleiben in dieser Lernreihe bei der nativen Zahlenbildung.', example: 'Kawhaan = zwanzig; Kawhaan ug lima = fünfundzwanzig.' }
|
||||
{ title: 'Zahlen über 20', text: 'Dasselbe Muster funktioniert mit höheren Zehnern: Zehner + „ug“ + Einer. Wir bleiben in dieser Lernreihe bei regional gebräuchlichen Zehnerformen.', example: 'Baynte = zwanzig; Baynte ug lima = fünfundzwanzig.' }
|
||||
],
|
||||
speakingPrompts: [
|
||||
{ title: 'Zähle bis 20', prompt: 'Zähle laut von Usa bis Kawhaan.' },
|
||||
{ title: 'Zusammengesetzte Zahlen', prompt: 'Nenne 21, 25, 29, 31, 35 und 58 mit dem Muster Zehner + ug + Einer.', cue: 'Kawhaan ug usa. Kawhaan ug lima. Katloan ug usa.' },
|
||||
{ title: 'Preisangaben', prompt: 'Nenne Preise mit Zahlwörtern, z.B. Kawhaan ug lima, Kalim-an, Usa ka gatos oder Duha ka libo.' }
|
||||
{ title: 'Zähle bis 20', prompt: 'Zähle laut von Usa bis Baynte.' },
|
||||
{ title: 'Zusammengesetzte Zahlen', prompt: 'Nenne 21, 25, 29, 31, 35 und 58 mit dem Muster Zehner + ug + Einer.', cue: 'Baynte ug usa. Baynte ug lima. Traynta ug usa.' },
|
||||
{ title: 'Preisangaben', prompt: 'Nenne Preise mit Zahlwörtern, z.B. Baynte ug lima, Singkwenta, Usa ka gatos oder Duha ka libo.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Zähllektionen', text: 'Mindestens einmal pro Woche eine 3–5 Minuten Zählübung: 1–20, dann 21, 25, 29 und runde Zahlen.' }
|
||||
|
||||
0
backend/scripts/count-per-lesson-24-43.mjs
Normal file → Executable file
0
backend/scripts/count-per-lesson-24-43.mjs
Normal file → Executable file
0
backend/scripts/count_corepatterns.js
Normal file → Executable file
0
backend/scripts/count_corepatterns.js
Normal file → Executable file
32
backend/scripts/create-bisaya-course-content.js
Normal file → Executable file
32
backend/scripts/create-bisaya-course-content.js
Normal file → Executable file
@@ -2914,7 +2914,7 @@ const BISAYA_EXERCISES = {
|
||||
correct: 'Napulo',
|
||||
alternatives: ['napulo']
|
||||
},
|
||||
explanation: '"Napulo" = zehn; „kawhaan“ = zwanzig.'
|
||||
explanation: '"Napulo" = zehn; „baynte“ = zwanzig.'
|
||||
},
|
||||
{
|
||||
exerciseTypeId: 2,
|
||||
@@ -2922,11 +2922,11 @@ const BISAYA_EXERCISES = {
|
||||
instruction: 'Wähle die richtige Übersetzung.',
|
||||
questionData: {
|
||||
type: 'multiple_choice',
|
||||
question: 'Was bedeutet "kawhaan"?',
|
||||
question: 'Was bedeutet "baynte"?',
|
||||
options: ['zwanzig', 'zehn', 'dreißig', 'zwölf']
|
||||
},
|
||||
answerData: { type: 'multiple_choice', correctAnswer: 0 },
|
||||
explanation: '"kawhaan" = zwanzig.'
|
||||
explanation: '"baynte" = zwanzig.'
|
||||
}
|
||||
],
|
||||
|
||||
@@ -2938,11 +2938,11 @@ const BISAYA_EXERCISES = {
|
||||
instruction: 'Wähle die passende deutsche Bedeutung.',
|
||||
questionData: {
|
||||
type: 'multiple_choice',
|
||||
question: 'Was bedeutet "katloan"?',
|
||||
question: 'Was bedeutet "traynta"?',
|
||||
options: ['dreißig', 'dreizehn', 'dreihundert', 'dreitausend']
|
||||
},
|
||||
answerData: { type: 'multiple_choice', correctAnswer: 0 },
|
||||
explanation: '"Katloan" = dreißig in der nativen Zahlenreihe.'
|
||||
explanation: '"Traynta" = dreißig in der regional gebräuchlichen Zahlenreihe.'
|
||||
},
|
||||
{
|
||||
exerciseTypeId: 1,
|
||||
@@ -2955,9 +2955,9 @@ const BISAYA_EXERCISES = {
|
||||
},
|
||||
answerData: {
|
||||
type: 'gap_fill',
|
||||
answers: ['Kawhaan', 'Katloan', 'Kap-atan', 'Kalim-an']
|
||||
answers: ['Baynte', 'Traynta', 'Kwarenta', 'Singkwenta']
|
||||
},
|
||||
explanation: 'Die native Zahlenreihe bildet runde Zehner als eigene Grundformen.'
|
||||
explanation: 'Die regional gebräuchliche Zahlenreihe nutzt für runde Zehner Baynte, Traynta, Kwarenta und Singkwenta.'
|
||||
},
|
||||
{
|
||||
exerciseTypeId: 1,
|
||||
@@ -2970,9 +2970,9 @@ const BISAYA_EXERCISES = {
|
||||
},
|
||||
answerData: {
|
||||
type: 'gap_fill',
|
||||
answers: ['Kawhaan ug usa', 'Kawhaan ug lima', 'Katloan ug usa', 'Kalim-an ug walo']
|
||||
answers: ['Baynte ug usa', 'Baynte ug lima', 'Traynta ug usa', 'Singkwenta ug walo']
|
||||
},
|
||||
explanation: 'In der nativen Reihe folgt auf den Zehner mit „ug“ die Einerzahl.'
|
||||
explanation: 'In dieser Alltagsreihe folgt auf den Zehner mit „ug“ die Einerzahl.'
|
||||
},
|
||||
{
|
||||
exerciseTypeId: 4,
|
||||
@@ -2986,10 +2986,10 @@ const BISAYA_EXERCISES = {
|
||||
},
|
||||
answerData: {
|
||||
type: 'transformation',
|
||||
correct: 'Kalim-an',
|
||||
alternatives: ['kalim-an']
|
||||
correct: 'Singkwenta',
|
||||
alternatives: ['singkwenta']
|
||||
},
|
||||
explanation: '"Kalim-an" = fünfzig.'
|
||||
explanation: '"Singkwenta" = fünfzig.'
|
||||
},
|
||||
{
|
||||
exerciseTypeId: 2,
|
||||
@@ -2998,10 +2998,10 @@ const BISAYA_EXERCISES = {
|
||||
questionData: {
|
||||
type: 'multiple_choice',
|
||||
question: 'Wie heißt „achtzig“ typischerweise?',
|
||||
options: ['Kawaloan', 'Kasiyaman', 'Kawhaan', 'Napulo']
|
||||
options: ['Otsenta', 'Nubenta', 'Baynte', 'Napulo']
|
||||
},
|
||||
answerData: { type: 'multiple_choice', correctAnswer: 0 },
|
||||
explanation: '"Kawaloan" = achtzig; „Kasiyaman“ = neunzig.'
|
||||
explanation: '"Otsenta" = achtzig; „Nubenta“ = neunzig.'
|
||||
}
|
||||
],
|
||||
|
||||
@@ -3118,7 +3118,7 @@ const BISAYA_EXERCISES = {
|
||||
questionData: {
|
||||
type: 'multiple_choice',
|
||||
question: 'Was passt zu 5000?',
|
||||
options: ['Lima ka libo', 'Lima ka gatos', 'Kawhaan ka libo', 'Napulo ka libo']
|
||||
options: ['Lima ka libo', 'Lima ka gatos', 'Baynte ka libo', 'Napulo ka libo']
|
||||
},
|
||||
answerData: { type: 'multiple_choice', correctAnswer: 0 },
|
||||
explanation: '"Lima ka libo" = fünftausend.'
|
||||
@@ -3215,7 +3215,7 @@ const BISAYA_EXERCISES = {
|
||||
},
|
||||
answerData: {
|
||||
type: 'gap_fill',
|
||||
answers: ['Kawhaan', 'Kawhaan', 'Tagpila']
|
||||
answers: ['Baynte', 'Baynte', 'Tagpila']
|
||||
},
|
||||
explanation: 'Die Kombination aus Zahlwort und Preisfrage ist Kernstoff aus Woche 2.'
|
||||
},
|
||||
|
||||
@@ -595,7 +595,7 @@ const LESSON_DIDACTICS = {
|
||||
learningGoals: [
|
||||
'Die Grundzahlen 1–10 sicher sprechen und zuordnen.',
|
||||
'Zahlen 11–19 als Zehner-plus-Einer erkennen.',
|
||||
'Die Zahl 20 (kawhaan) sicher verwenden.'
|
||||
'Die Zahl 20 (baynte) sicher verwenden.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Usa', gloss: 'eins' },
|
||||
@@ -617,20 +617,20 @@ const LESSON_DIDACTICS = {
|
||||
{ target: 'Napulo ug pito', gloss: 'siebzehn' },
|
||||
{ target: 'Napulo ug walo', gloss: 'achtzehn' },
|
||||
{ target: 'Napulo ug siyam', gloss: 'neunzehn' },
|
||||
{ target: 'Kawhaan', gloss: 'zwanzig' }
|
||||
{ target: 'Baynte', gloss: 'zwanzig' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{
|
||||
title: 'Aufbau 11–19',
|
||||
text: 'In der nativen Reihe steht nach „napulo“ mit „ug“ die Einerzahl.',
|
||||
example: 'Napulo ug usa (11), …, Kawhaan (20).'
|
||||
example: 'Napulo ug usa (11), …, Baynte (20).'
|
||||
}
|
||||
],
|
||||
speakingPrompts: [
|
||||
{
|
||||
title: 'Zählen bis 20',
|
||||
prompt: 'Zähle laut von 1 bis 10 und dann in Einzelschritten bis 20.',
|
||||
cue: 'Usa, duha, tulo … Kawhaan.'
|
||||
cue: 'Usa, duha, tulo … Baynte.'
|
||||
}
|
||||
],
|
||||
practicalTasks: [
|
||||
@@ -647,36 +647,36 @@ const LESSON_DIDACTICS = {
|
||||
'Zehner im Alltag (Preis, Menge) wiedererkennen.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Kawhaan', gloss: 'zwanzig' },
|
||||
{ target: 'Kawhaan ug usa', gloss: 'einundzwanzig' },
|
||||
{ target: 'Kawhaan ug lima', gloss: 'fünfundzwanzig' },
|
||||
{ target: 'Katloan', gloss: 'dreißig' },
|
||||
{ target: 'Katloan ug usa', gloss: 'einunddreißig' },
|
||||
{ target: 'Kap-atan', gloss: 'vierzig' },
|
||||
{ target: 'Kalim-an', gloss: 'fünfzig' },
|
||||
{ target: 'Kalim-an ug walo', gloss: 'achtundfünfzig' },
|
||||
{ target: 'Kanum-an', gloss: 'sechzig' },
|
||||
{ target: 'Kapitoan', gloss: 'siebzig' },
|
||||
{ target: 'Kawaloan', gloss: 'achtzig' },
|
||||
{ target: 'Kasiyaman', gloss: 'neunzig' }
|
||||
{ target: 'Baynte', gloss: 'zwanzig' },
|
||||
{ target: 'Baynte ug usa', gloss: 'einundzwanzig' },
|
||||
{ target: 'Baynte ug lima', gloss: 'fünfundzwanzig' },
|
||||
{ target: 'Traynta', gloss: 'dreißig' },
|
||||
{ target: 'Traynta ug usa', gloss: 'einunddreißig' },
|
||||
{ target: 'Kwarenta', gloss: 'vierzig' },
|
||||
{ target: 'Singkwenta', gloss: 'fünfzig' },
|
||||
{ target: 'Singkwenta ug walo', gloss: 'achtundfünfzig' },
|
||||
{ target: 'Sesenta', gloss: 'sechzig' },
|
||||
{ target: 'Setenta', gloss: 'siebzig' },
|
||||
{ target: 'Otsenta', gloss: 'achtzig' },
|
||||
{ target: 'Nubenta', gloss: 'neunzig' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{
|
||||
title: 'Native Zehnerbildung',
|
||||
text: 'Für die Lernreihe bleiben die Zehner nativ; eine Einerzahl folgt mit „ug“.',
|
||||
example: 'Kawhaan ug lima = fünfundzwanzig.'
|
||||
title: 'Regional gebräuchliche Zehner',
|
||||
text: 'Für die Lernreihe nutzen wir regional gebräuchliche Zehner; eine Einerzahl folgt mit „ug“.',
|
||||
example: 'Baynte ug lima = fünfundzwanzig.'
|
||||
},
|
||||
{
|
||||
title: 'Einheitliches Muster',
|
||||
text: 'Für diese Lernreihe verwenden wir die native Zehnerreihe konsequent weiter.',
|
||||
example: 'Kawhaan = zwanzig; Katloan = dreißig.'
|
||||
text: 'Für diese Lernreihe verwenden wir die regional gebräuchliche Zehnerreihe konsequent weiter.',
|
||||
example: 'Baynte = zwanzig; Traynta = dreißig.'
|
||||
}
|
||||
],
|
||||
speakingPrompts: [
|
||||
{
|
||||
title: 'Nur Zehner',
|
||||
prompt: 'Nenne nacheinander 20, 30, … 90 auf Bisaya.',
|
||||
cue: 'Kawhaan, katloan, kap-atan … kasiyaman.'
|
||||
cue: 'Baynte, traynta, kwarenta … nubenta.'
|
||||
}
|
||||
],
|
||||
practicalTasks: [
|
||||
@@ -764,13 +764,13 @@ const LESSON_DIDACTICS = {
|
||||
{ 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: 'Kawhaan pesos.', gloss: 'Zwanzig Peso.' }
|
||||
{ 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? Kawhaan pesos.'
|
||||
cue: 'Asa ka moadto unya? Tagpila ni? Baynte pesos.'
|
||||
}
|
||||
],
|
||||
practicalTasks: [
|
||||
@@ -792,7 +792,7 @@ const LESSON_DIDACTICS = {
|
||||
{ target: 'Karon', gloss: 'heute/jetzt' },
|
||||
{ target: 'Ugma', gloss: 'morgen' },
|
||||
{ target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' },
|
||||
{ target: 'Kawhaan', gloss: 'zwanzig' }
|
||||
{ target: 'Baynte', gloss: 'zwanzig' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{
|
||||
@@ -960,7 +960,7 @@ const LESSONS = [
|
||||
cultural: 'Handeln ist in den Philippinen üblich und erwartet.' },
|
||||
|
||||
{ week: 2, day: 4, num: 18, type: 'vocab', title: 'Zahlen 1–20',
|
||||
desc: 'Grundzahlen und Zahlen bis 20 (usa … kawhaan)',
|
||||
desc: 'Grundzahlen und Zahlen bis 20 (usa … baynte)',
|
||||
targetMin: 22, targetScore: 85, review: true,
|
||||
cultural: null },
|
||||
|
||||
|
||||
0
backend/scripts/create-german-for-bisaya-course-content.js
Normal file → Executable file
0
backend/scripts/create-german-for-bisaya-course-content.js
Normal file → Executable file
0
backend/scripts/create-german-for-bisaya-course.js
Normal file → Executable file
0
backend/scripts/create-german-for-bisaya-course.js
Normal file → Executable file
0
backend/scripts/dedupe-bisaya-family-courses.js
Normal file → Executable file
0
backend/scripts/dedupe-bisaya-family-courses.js
Normal file → Executable file
0
backend/scripts/diag-srs-stats.js
Normal file → Executable file
0
backend/scripts/diag-srs-stats.js
Normal file → Executable file
0
backend/scripts/extend-bisaya-course-phase3.js
Normal file → Executable file
0
backend/scripts/extend-bisaya-course-phase3.js
Normal file → Executable file
0
backend/scripts/extend-bisaya-course-phase4.js
Normal file → Executable file
0
backend/scripts/extend-bisaya-course-phase4.js
Normal file → Executable file
0
backend/scripts/extend-bisaya-course-phase5.js
Normal file → Executable file
0
backend/scripts/extend-bisaya-course-phase5.js
Normal file → Executable file
0
backend/scripts/extend-german-for-bisaya-course-phase3.js
Normal file → Executable file
0
backend/scripts/extend-german-for-bisaya-course-phase3.js
Normal file → Executable file
0
backend/scripts/extend-german-for-bisaya-course-phase4.js
Normal file → Executable file
0
backend/scripts/extend-german-for-bisaya-course-phase4.js
Normal file → Executable file
0
backend/scripts/extend-german-for-bisaya-course-phase5.js
Normal file → Executable file
0
backend/scripts/extend-german-for-bisaya-course-phase5.js
Normal file → Executable file
0
backend/scripts/falukant-moneyflow-report.mjs
Normal file → Executable file
0
backend/scripts/falukant-moneyflow-report.mjs
Normal file → Executable file
0
backend/scripts/falukant-town-product-worth-stats.mjs
Normal file → Executable file
0
backend/scripts/falukant-town-product-worth-stats.mjs
Normal file → Executable file
0
backend/scripts/find-duplicate-patterns.mjs
Normal file → Executable file
0
backend/scripts/find-duplicate-patterns.mjs
Normal file → Executable file
0
backend/scripts/find-exercise-by-text.cjs
Normal file → Executable file
0
backend/scripts/find-exercise-by-text.cjs
Normal file → Executable file
0
backend/scripts/fix-bisaya-review-field.mjs
Normal file → Executable file
0
backend/scripts/fix-bisaya-review-field.mjs
Normal file → Executable file
0
backend/scripts/fix-srs-immediate-due.js
Normal file → Executable file
0
backend/scripts/fix-srs-immediate-due.js
Normal file → Executable file
0
backend/scripts/fix-srs-queries-plain.sql
Normal file → Executable file
0
backend/scripts/fix-srs-queries-plain.sql
Normal file → Executable file
0
backend/scripts/fix-srs-queries.sql
Normal file → Executable file
0
backend/scripts/fix-srs-queries.sql
Normal file → Executable file
0
backend/scripts/generate-lesson-checkpoints.cjs
Normal file → Executable file
0
backend/scripts/generate-lesson-checkpoints.cjs
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase1.js
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase1.js
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase2-pedagogy.js
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase2-pedagogy.js
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase3-extension.js
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase3-extension.js
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase4-extension.js
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase4-extension.js
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase5-extension.js
Normal file → Executable file
0
backend/scripts/german-for-bisaya-phase5-extension.js
Normal file → Executable file
2
backend/scripts/migrate-bisaya-zahlen-split.js
Normal file → Executable file
2
backend/scripts/migrate-bisaya-zahlen-split.js
Normal file → Executable file
@@ -126,7 +126,7 @@ async function migrateCourse(courseId) {
|
||||
});
|
||||
const patch18 = {
|
||||
title: 'Zahlen 1–20',
|
||||
description: 'Grundzahlen und Zahlen bis 20 (usa … kawhaan)',
|
||||
description: 'Grundzahlen und Zahlen bis 20 (usa … baynte)',
|
||||
weekNumber: 2,
|
||||
dayNumber: 4,
|
||||
lessonType: 'vocab',
|
||||
|
||||
0
backend/scripts/normalize-core-pattern-alternatives.js
Normal file → Executable file
0
backend/scripts/normalize-core-pattern-alternatives.js
Normal file → Executable file
0
backend/scripts/normalize-exercise-answer-alternatives.js
Normal file → Executable file
0
backend/scripts/normalize-exercise-answer-alternatives.js
Normal file → Executable file
0
backend/scripts/print-lesson-patterns.mjs
Normal file → Executable file
0
backend/scripts/print-lesson-patterns.mjs
Normal file → Executable file
0
backend/scripts/repair-bisaya-children-lessons.js
Normal file → Executable file
0
backend/scripts/repair-bisaya-children-lessons.js
Normal file → Executable file
0
backend/scripts/repair-bisaya-feelings-emotions-lessons.js
Normal file → Executable file
0
backend/scripts/repair-bisaya-feelings-emotions-lessons.js
Normal file → Executable file
3
backend/scripts/repair-bisaya-number-answer-pairs.js
Normal file → Executable file
3
backend/scripts/repair-bisaya-number-answer-pairs.js
Normal file → Executable file
@@ -22,6 +22,8 @@ const BISAYA_TO_GERMAN_DIGIT = new Map([
|
||||
['pito', '7'],
|
||||
['walo', '8'],
|
||||
['siyam', '9'],
|
||||
['dyes', '10'],
|
||||
['ten', '10'],
|
||||
['napulo', '10'],
|
||||
['onse', '11'],
|
||||
['dose', '12'],
|
||||
@@ -32,6 +34,7 @@ const BISAYA_TO_GERMAN_DIGIT = new Map([
|
||||
['disisiete', '17'],
|
||||
['disiotso', '18'],
|
||||
['disinuybe', '19'],
|
||||
['baynte', '20'],
|
||||
['kawhaan', '20'],
|
||||
]);
|
||||
|
||||
|
||||
0
backend/scripts/repair-fix-body-mc.cjs
Normal file → Executable file
0
backend/scripts/repair-fix-body-mc.cjs
Normal file → Executable file
0
backend/scripts/repair-invalid-srs-fragment-sentence-pairs.js
Normal file → Executable file
0
backend/scripts/repair-invalid-srs-fragment-sentence-pairs.js
Normal file → Executable file
0
backend/scripts/repair-remove-sentence-mc.js
Normal file → Executable file
0
backend/scripts/repair-remove-sentence-mc.js
Normal file → Executable file
0
backend/scripts/sync-vocab-course-content.js
Normal file → Executable file
0
backend/scripts/sync-vocab-course-content.js
Normal file → Executable file
36
backend/scripts/update-bisaya-didactics.js
Normal file → Executable file
36
backend/scripts/update-bisaya-didactics.js
Normal file → Executable file
@@ -369,7 +369,7 @@ export const LESSON_DIDACTICS = {
|
||||
{ target: 'Napulo ug pito', gloss: 'siebzehn' },
|
||||
{ target: 'Napulo ug walo', gloss: 'achtzehn' },
|
||||
{ target: 'Napulo ug siyam', gloss: 'neunzehn' },
|
||||
{ target: 'Kawhaan', gloss: 'zwanzig' }
|
||||
{ target: 'Baynte', gloss: 'zwanzig' }
|
||||
],
|
||||
speakingPrompts: [],
|
||||
practicalTasks: [
|
||||
@@ -383,22 +383,22 @@ export const LESSON_DIDACTICS = {
|
||||
'Spanisch geprägte Nebenformen im Alltag später wiedererkennen.'
|
||||
],
|
||||
corePatterns: [
|
||||
{ target: 'Kawhaan', gloss: 'zwanzig' },
|
||||
{ target: 'Kawhaan ug usa', gloss: 'einundzwanzig' },
|
||||
{ target: 'Kawhaan ug lima', gloss: 'fünfundzwanzig' },
|
||||
{ target: 'Katloan', gloss: 'dreißig' },
|
||||
{ target: 'Katloan ug usa', gloss: 'einunddreißig' },
|
||||
{ target: 'Kap-atan', gloss: 'vierzig' },
|
||||
{ target: 'Kalim-an', gloss: 'fünfzig' },
|
||||
{ target: 'Kalim-an ug walo', gloss: 'achtundfünfzig' },
|
||||
{ target: 'Kanum-an', gloss: 'sechzig' },
|
||||
{ target: 'Kapitoan', gloss: 'siebzig' },
|
||||
{ target: 'Kawaloan', gloss: 'achtzig' },
|
||||
{ target: 'Kasiyaman', gloss: 'neunzig' }
|
||||
{ target: 'Baynte', gloss: 'zwanzig' },
|
||||
{ target: 'Baynte ug usa', gloss: 'einundzwanzig' },
|
||||
{ target: 'Baynte ug lima', gloss: 'fünfundzwanzig' },
|
||||
{ target: 'Traynta', gloss: 'dreißig' },
|
||||
{ target: 'Traynta ug usa', gloss: 'einunddreißig' },
|
||||
{ target: 'Kwarenta', gloss: 'vierzig' },
|
||||
{ target: 'Singkwenta', gloss: 'fünfzig' },
|
||||
{ target: 'Singkwenta ug walo', gloss: 'achtundfünfzig' },
|
||||
{ target: 'Sesenta', gloss: 'sechzig' },
|
||||
{ target: 'Setenta', gloss: 'siebzig' },
|
||||
{ target: 'Otsenta', gloss: 'achtzig' },
|
||||
{ target: 'Nubenta', gloss: 'neunzig' }
|
||||
],
|
||||
grammarFocus: [
|
||||
{ title: 'Native Zehnerbildung', text: 'Für die Lernreihe verwendest du durchgängig native Zehner und ergänzt mit „ug“ eine Einerzahl.', example: 'Kawhaan ug lima = fünfundzwanzig.' },
|
||||
{ title: 'Einheitliches Muster', text: 'Für diese Lernreihe verwenden wir die native Zehnerreihe konsequent weiter.', example: 'Kawhaan = zwanzig; Katloan = dreißig.' }
|
||||
{ title: 'Regional gebräuchliche Zehner', text: 'Für die Lernreihe verwendest du durchgängig regional gebräuchliche Zehner und ergänzt mit „ug“ eine Einerzahl.', example: 'Baynte ug lima = fünfundzwanzig.' },
|
||||
{ title: 'Einheitliches Muster', text: 'Für diese Lernreihe verwenden wir die regional gebräuchliche Zehnerreihe konsequent weiter.', example: 'Baynte = zwanzig; Traynta = dreißig.' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Nur Zehner', text: 'Nenne laut nacheinander 20, 30, … 90.' }
|
||||
@@ -451,10 +451,10 @@ export const LESSON_DIDACTICS = {
|
||||
{ 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: 'Kawhaan pesos.', gloss: 'Zwanzig Peso.' }
|
||||
{ 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? Kawhaan pesos.' }
|
||||
{ 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.' }
|
||||
@@ -472,7 +472,7 @@ export const LESSON_DIDACTICS = {
|
||||
{ target: 'Karon', gloss: 'heute/jetzt' },
|
||||
{ target: 'Ugma', gloss: 'morgen' },
|
||||
{ target: 'Tagpila ni?', gloss: 'Wie viel kostet das?' },
|
||||
{ target: 'Kawhaan', gloss: 'zwanzig' }
|
||||
{ target: 'Baynte', gloss: 'zwanzig' }
|
||||
],
|
||||
practicalTasks: [
|
||||
{ title: 'Selbsttest', text: 'Nimm zehn Wörter aus Woche 2 und übersetze sie laut in beide Richtungen.' }
|
||||
|
||||
0
backend/scripts/update-week1-bisaya-exercises.js
Normal file → Executable file
0
backend/scripts/update-week1-bisaya-exercises.js
Normal file → Executable file
Reference in New Issue
Block a user