Build all apps from Markdown content; Compose Desktop replaces GTK on Linux and Windows

- content/ + scripts/build-content.py produce content.json for every app
- stable lesson IDs with one-time progress migration (Swift, Kotlin)
- shared answer-check tests (tests/answers.json) for Kotlin and Swift
- android/desktop: Compose app with updater, speech and GTK progress import
- CI packages AppImage and Windows zip with ProGuard, runs the tests

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-10-09 20:40:37 +02:00
commit c3bc32113b
964 changed files with 57285 additions and 1156 deletions

View file

@ -0,0 +1,4 @@
---
nazev: The media
popis: An interview and a vocabulary quiz.
---

View file

@ -0,0 +1,68 @@
---
id: nemcina-4-media
puvodni: de.4.1
nazev: Média
popis: Poslech rozhovoru a kvíz k slovům.
---
# Výklad
## Co sleduju
*Medien*
- Ich schaue selten fern, aber ich bin oft online.
- eine Nachricht teilen, einen Kommentar schreiben.
- Das stimmt nicht. Das ist ein Gerücht.
- die Quelle, seriös, falsch.
> Tip: die Nachrichten, die Serie, das Handy, der Account.
## Dvě otázky předem
*Poslech*
- seit zwei Jahren, jeden Abend, fast nie.
- nicht mehr = už ne.
- zu viel Zeit.
- Ich habe gemerkt, dass …
> Tip: čísla a zápor si zapište hned.
# Poslech
Früher habe ich jeden Abend ferngesehen. Seit zwei Jahren mache ich das nicht mehr. Ich höre einen Podcast auf dem Weg zur Schule und ich lese die Nachrichten auf dem Handy. Manche Videos sind lustig, aber nicht jede Quelle ist seriös. Letzte Woche habe ich ein Gerücht geteilt und später gemerkt, dass es falsch war. Seitdem prüfe ich den Text, bevor ich ihn schicke.
## Seit wann sieht er nicht mehr jeden Abend fern?
- Seit zwei Wochen
- [x] Seit zwei Jahren
- Seit gestern
- Er sieht immer noch fern
> Seit zwei Jahren.
## Was hört er auf dem Weg zur Schule?
- [x] Einen Podcast
- Nur Musik aus dem Fernseher
- Nichts
- Die Lehrerin
> einen Podcast.
## Was ist letzte Woche passiert?
- [x] Er hat ein Gerücht geteilt
- Er hat den Fernseher gekauft
- Er hat die Prüfung bestanden
- Er ist nach Wien gefahren
> ein Gerücht geteilt.
## Was macht er seitdem?
- Er teilt alles sofort
- [x] Er prüft den Text, bevor er ihn schickt
- Er sieht wieder jeden Abend fern
- Er schreibt keine Nachrichten
> prüft den Text.
## seriös bedeutet…
- vtipný
- [x] důvěryhodný
- zdarma
- hlasitý
> seriózní, důvěryhodný.

View file

@ -0,0 +1,4 @@
---
nazev: A formal email
popis: A complaint or a request. Writing and a quiz.
---

View file

@ -0,0 +1,77 @@
---
id: nemcina-4-formalni-e-mail
puvodni: de.4.2
nazev: Formální e-mail
popis: Stížnost nebo žádost. Psaní a kvíz.
---
# Výklad
## Čtyři části
*Kostra*
- Sehr geehrte Damen und Herren,
- Ich schreibe Ihnen, weil …
- Ich bitte Sie um eine Antwort.
- Mit freundlichen Grüßen und jméno.
> Tip: oslovení, důvod, prosba, rozloučení.
## Klidně a konkrétně
*Tón*
- Der Zug am 3. Mai hatte Verspätung.
- Deshalb habe ich den Termin verpasst.
- Ich bitte um eine Erklärung oder um Geld zurück.
- Im Anhang finden Sie das Ticket.
> Tip: datum, spoj, co chcete. Bez nadávek.
# Psaní
Schreib eine formelle E-Mail, mindestens 45 Wörter. Der Zug hatte Verspätung. Benutze Ihnen a Grüßen.
## Vzorová odpověď
Sehr geehrte Damen und Herren, ich schreibe Ihnen, weil der Zug am 3. Mai nach Berlin zwanzig Minuten zu spät war. Deshalb habe ich meinen Termin verpasst. Ich bitte Sie um eine Erklärung oder um das Geld zurück. Im Anhang ist mein Ticket. Mit freundlichen Grüßen, Tereza Malá.
## Musí obsahovat
- Ihnen
- Grüßen
## Minimum slov
45
# Kvíz
## Neznámé jméno
- Hi Leute
- [x] Sehr geehrte Damen und Herren
- Tschüss Chef
- Liebe du
> Damen und Herren.
## Ich schreibe ___, weil …
- dir du
- [x] Ihnen
- dein
- euch Sie
> Ihnen.
## im Anhang znamená…
- [x] v příloze
- na nástupišti
- včera
- zdarma
> v příloze.
## Který konec sedí?
- Bye!
- [x] Mit freundlichen Grüßen
- Dein Kumpel
- Kuss
> Mit freundlichen Grüßen.

View file

@ -0,0 +1,4 @@
---
nazev: Reading: the night train
popis: A longer text and exam-style questions.
---

View file

@ -0,0 +1,68 @@
---
id: nemcina-4-cteni-nocni-vlak
puvodni: de.4.3
nazev: Čtení: noční vlak
popis: Delší text a otázky jako u maturity.
---
# Výklad
## Nejdřív otázka
*Čtení*
- Hlavní myšlenka bývá na začátku nebo na konci.
- obwohl = ačkoli. Sloveso po obwohl je na konci.
- trotzdem = přesto. Po trotzdem je běžný pořádek.
- die Verspätung, das Abteil, der Schaffner.
> Tip: nehledejte stejné slovo, hledejte stejný význam.
## Neznámé slovo
*Slovo z kontextu*
- umsteigen = přestupovat.
- pünktlich = včas.
- sich lohnen = vyplatit se.
- lieber = radši.
> Tip: věta před ním a za ním ho ohraničí.
# Čtení
Der Nachtzug von Prag nach Berlin ist für viele Jugendliche interessanter als ein billiger Flug, obwohl das Ticket oft mehr kostet. Man kann lesen, schlafen und muss nicht um fünf Uhr am Flughafen sein. Kritiker sagen, dass die Verspätung ein Problem ist und dass die Abteile klein sind. Trotzdem lohnt sich die Fahrt für Lea. Sie ist schon dreimal gefahren. Sie sagt, dass sie nur fliegt, wenn sie den Abendzug verpasst. Für sie ist die Reise ein Teil des Urlaubs und nicht nur eine Strecke.
## Was ist die Hauptidee?
- Flüge sind verboten
- [x] Manche Leute nehmen den Nachtzug, obwohl er mehr kosten kann
- Berlin hat keinen Bahnhof
- Lea fliegt jeden Tag
> obwohl das Ticket oft mehr kostet, přesto vlak volí.
## Was kann man im Zug machen?
- Nur stehen
- [x] Lesen und schlafen
- Das Flugzeug steuern
- Nichts
> lesen, schlafen.
## Was sagen die Kritiker?
- Der Zug ist immer gratis
- [x] Verspätung und kleine Abteile sind ein Problem
- Es gibt keine Tickets
- Lea ist der Schaffner
> Verspätung, Abteile klein.
## Wann fliegt Lea?
- Immer
- [x] Nur wenn sie den Abendzug verpasst
- Nie, das steht nicht so
- Jeden Morgen um fünf
> wenn sie den Abendzug verpasst.
## obwohl bedeutet…
- protože
- [x] ačkoli
- potom
- bez
> ačkoli.

View file

@ -0,0 +1,4 @@
---
nazev: If I were
popis: Konjunktiv II. Gaps and a quiz.
---

View file

@ -0,0 +1,82 @@
---
id: nemcina-4-kdyby
puvodni: de.4.4
nazev: Kdyby
popis: Konjunktiv II. Doplňování a kvíz.
---
# Výklad
## Neskutečná podmínka
*wäre a hätte*
- haben → hätte, sein → wäre.
- würde + infinitiv pro ostatní slovesa.
- Wenn ich reich wäre, würde ich reisen.
- Sloveso po wenn je na konci: Wenn ich Zeit hätte.
> Tip: Wenn ich Zeit hätte, würde ich mehr lesen.
## würde a könnte
*Zdvořilost*
- Ich hätte gern einen Kaffee.
- Würden Sie das bitte wiederholen?
- An deiner Stelle würde ich warten.
- Není to minulost, i když tvar vypadá jako minulý.
> Tip: Könnten Sie mir helfen? je měkčí než Können Sie.
# Doplňování
## Wenn ich Zeit ___, würde ich mehr lesen.
= hätte
> haben → hätte.
## Wenn ich reich ___, würde ich reisen.
= wäre
> sein → wäre.
## Ich ___ gern einen Kaffee.
= hätte
> Ich hätte gern.
## An deiner Stelle ___ ich warten.
= würde
> würde + infinitiv.
## ___ Sie das bitte wiederholen?
= Würden|Könnten
> Zdvořilá prosba.
# Kvíz
## Wenn ich du wäre, ___ ich das nicht machen.
- werde
- [x] würde
- bin
- hast
> würde.
## hätte je od slovesa…
- sein
- [x] haben
- werden
- gehen
> haben.
## Könnten Sie… je…
- rozkaz
- [x] zdvořilejší otázka
- minulý čas perfekta
- člen
> zdvořilost.
## Welche Satz ist richtig?
- Wenn ich hätte Zeit
- [x] Wenn ich Zeit hätte
- Wenn hätte ich Zeit
- Wenn ich Zeit habe würde nur so
> hätte na konci.

View file

@ -0,0 +1,4 @@
---
nazev: Exam topics
popis: Collocations for common topics. Gaps and a quiz.
---

View file

@ -0,0 +1,82 @@
---
id: nemcina-4-temata-k-maturite
puvodni: de.4.5
nazev: Témata k maturitě
popis: Kolokace k běžným okruhům. Doplňování a kvíz.
---
# Výklad
## Ne izolovaná slovíčka
*Okruhy*
- eine Meinung haben, ein Beispiel nennen.
- zu Fuß gehen, mit der Bahn fahren, im Stau stehen.
- sich gesund ernähren, Sport treiben.
- einen Nebenjob haben, Geld verdienen.
> Tip: ústní zkouška z němčiny bere osobu, rodinu, školu, volný čas, město, zdraví, práci a média.
## Obecné a osobní
*Věta navíc*
- Einerseits … andererseits …
- Das finde ich gut, weil …
- Zum Beispiel …
- Zusammenfassend …
> Tip: Viele Jugendliche … Ich persönlich …
# Doplňování
## Ich treibe dreimal pro Woche ___.
= Sport
> Sport treiben.
## Viele Leute stehen morgens im ___.
= Stau
> im Stau stehen.
## Sie hat einen ___ im Café.
= Nebenjob|Job
> brigáda, práce.
## Ich persönlich ___ die Bahn besser.
= finde
> finden.
## ___ Beispiel lese ich im Zug.
= Zum
> Zum Beispiel.
# Kvíz
## einerseits … andererseits
- nejdřív a nakonec bez kontrastu
- [x] na jedné straně … na druhé straně
- protože … když
- včera … zítra
> kontrast.
## sich gesund ernähren
- [x] zdravě jíst
- být v zácpě
- psát e-mail
- zmeškat vlak
> stravovat se.
## Was passt zu einer mündlichen Prüfung?
- Nur einzelne Wörter
- [x] Eine allgemeine Aussage und ein persönliches Beispiel
- Ein Formular ohne Verben
- Nur Ja
> obecné plus příklad.
## im Stau stehen
- stát ve frontě v bance jen
- [x] být v dopravní zácpě
- stát na balkóně
- stát v čele třídy
> zácpa.

View file

@ -0,0 +1,4 @@
---
nazev: A practice paper
popis: Reading, listening, grammar and a short text.
---

View file

@ -0,0 +1,143 @@
---
id: nemcina-4-cvicna-zkouska
puvodni: de.4.6
nazev: Cvičná zkouška
popis: Čtení, poslech, gramatika a krátký text.
---
# Výklad
## Tři dovednosti
*Celek*
- Čtení: význam, ne stejné slovo.
- Poslech: čísla a nein.
- Konjunktiv: hätte, wäre, würde.
- Psaní: sloveso na druhém místě v hlavní větě.
> Tip: nejdřív si přečtěte otázky. U weil a wenn kontrolujte konec věty.
## Kamarádovi
*Text*
- Napište proč píšete.
- Jedna věta s weil.
- Jedna věta s wenn nebo würde.
- Otázka na konci.
> Tip: tady není formální mail. Hallo stačí, ale věty ať jsou celé.
# Čtení
In unserer Bibliothek kann man jetzt nicht nur Bücher, sondern auch Werkzeug ausleihen. Die Idee kommt von einer Bibliothekarin, die sagte, dass viele Leute Dinge kaufen, die sie nur einmal brauchen. Im März haben Jugendliche zwanzig Wasserkocher repariert. Wenn das Projekt weitergeht, machen andere Bibliotheken mit. Man muss die Sachen sauber zurückgeben.
## Was kann man außer Büchern ausleihen?
- Autos
- [x] Werkzeug
- Wohnungen
- Flugtickets
> Werkzeug.
## Warum entstand die Idee?
- [x] Weil Leute Dinge nur einmal brauchen und trotzdem kaufen
- Weil es keine Bücher gibt
- Weil der Zug zu spät war
- Weil niemand liest
> nur einmal brauchen.
## Wie viele Wasserkocher haben sie im März repariert?
- Zwei
- Zwölf
- [x] Zwanzig
- Zweihundert
> zwanzig.
## Was muss man machen?
- [x] Die Sachen sauber zurückgeben
- Einen neuen Kocher kaufen
- Nach Berlin fahren
- Nichts
> sauber zurückgeben.
# Poslech
Der Nachtzug nach Berlin hat vierzig Minuten Verspätung, weil ein Baum auf den Gleisen liegt. Fahrgäste mit einem Platz können in Wagen vier warten. Wenn Sie noch nicht eingecheckt haben, machen Sie das bitte am Handy. Wir wären froh, wenn der Gang frei bliebe. Um zehn wissen wir mehr.
## Wie lang ist die Verspätung?
- Vier Minuten
- [x] Vierzig Minuten
- Vier Stunden
- Der Zug ist pünktlich
> vierzig Minuten.
## Warum?
- Schnee
- [x] Ein Baum auf den Gleisen
- Kein Personal
- Ein Fest
> ein Baum.
## Wo können Fahrgäste mit Platz warten?
- [x] In Wagen vier
- Am Flughafen
- Zu Hause
- Im Gang
> Wagen vier.
## Was sollen Leute ohne Check-in machen?
- Den Baum wegtragen
- [x] Am Handy einchecken
- Nach Prag laufen
- Nichts sagen
> am Handy.
# Psaní
Schreib mindestens 40 Wörter an einen Freund. Lad ihn ein, Werkzeug in der Bibliothek auszuleihen. Benutze weil.
## Vzorová odpověď
Hallo Adam, in der Bibliothek kann man jetzt Werkzeug ausleihen, und ich glaube, das ist etwas für dich, weil du oft nur eine Bohrmaschine für einen Nachmittag brauchst. Wenn du am Samstag Zeit hast, komme ich mit. Wir müssen die Sachen danach sauber zurückgeben. Hast du Lust?
## Musí obsahovat
- weil
- wenn
## Minimum slov
40
# Kvíz
## Wenn ich Zeit ___, würde ich kommen.
- [x] hätte
- habe würde
- bin
- hatte nur Perfekt
> hätte.
## Sie sagt, dass der Zug Verspätung ___.
- [x] hat
- hat er
- ist hat
- haben
> hat na konci.
## Man muss die Sachen sauber ___.
- [x] zurückgeben
- zurückgibt
- geben zurück sofort als einziges
- zu zurück
> zurückgeben na konci po muss.
## Ich wäre froh, wenn du ___.
- kommst sofort nur so
- [x] kommen würdest
- bist kommen
- kommst du
> würdest na konci je v pořádku. Alternativa wenn du kämst je těžší.