Files
txt2apkg/Plural/plural_ohne_yaml.py
Sven Riwoldt 3160304aa0 Ordnung
2025-05-25 16:53:52 +02:00

196 lines
9.1 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import genanki,csv
karten=[]
#https://www.ankisrs.net/docs/
#https://www.swedishgrammar.com/nouns_groups.html
#https://www.lingq.com/en/grammar-resource/swedish/nouns/
#http://svenskord.com/ora-orat-oron-oronen/
dg1="<b>Deklinationsgruppe 1</b></br>" \
"Plural endet auf <span style='color:red;'>-or</span></br></br>" \
"Substantive, die der ersten Deklinationsgruppe angehören, sind ausschließlich <span style='color:red;'>en</span>-Wörter, also Utra.</br></br>" \
"Folgende Merkmale weisen auf Substantive dieser Gruppe hin:</br>" \
"<ul>" \
"<li>viele <span style='color:red;'>en</span>-Wörter, deren Endung im Singular ein unbetontes <span style='color:red;'>-a</span> ist</li>"\
"<li>einige <span style='color:red;'>en</span>-Wörter, die nicht auf <span style='color:red;'>-a</span> enden</li></br>" \
"</ul>" \
"Und wie lautet die Pluralendung der Substantive dieser Gruppe?" \
"<ul>" \
"<li>die Substantive enden in <b>unbestimmter</b> Form Plural auf <span style='color:red;'>-or</span></li>" \
"<li>die Substantive enden in <b>bestimmter</b> Form Plural auf <span style='color:red;'>-orna</span></li>" \
"<li>bei der Bildung des Plurals fällt das <span style='color:red;'>-a</span> (der Singular-Endung) weg</li>" \
"</ul>"
dg2 = "<b>Deklinationsgruppe 2</b></br>"\
"Plural endet auf <span style='color:red;'>-ar</span></br></br>" \
"Der zweiten Deklinationsgruppe gehören <b>ausschließlich</b> <span style='color:red;'>en</span>-Wörter, also Utra, an.</br>"\
"</br>Welche Substantive gehören zur Gruppe 2:"\
"<ul><li>einsilbige en-Wörter mit Endung auf einen Konsonanten</li>" \
"<li><span style='color:red;'>en</span>-Wörter mit Endung auf <span style='color:red;'>-e</span></li>" \
"<li><span style='color:red;'>en</span>-Wörter, die auf <span style='color:red;'>-el</span>, <span style='color:red;'>-en</span>, <span style='color:red;'>-er</span>, <span style='color:red;'>-dom</span>, <span style='color:red;'>-ing</span>, <span style='color:red;'>-lek</span> enden</li></ul>" \
"Folgendermaßen lautet die Pluralendung der Substantive dieser Gruppe:</br>"\
"<ul>"\
"<li>die Substantive enden in <b>unbestimmter</b> Form Plural auf <span style='color:red;'>-ar</span></br></li>"\
"<li>die Substantive enden in <b>bestimmter</b> Form Plural auf <span style='color:red;'>-arna</span></br></li>"\
"<li>in der Pluralendung fällt das <span style='color:red;'>-e</span> (der Singular-Endung) weg</br></li>"\
"<li>manchmal kommt es zu einer Vokaländerung, dabei wird <span style='color:red;'>o</span> (im Wortstamm) zu <span style='color:red;'>ö</span> bzw. <span style='color:red;'>a</span> zu <span style='color:red;'>ä.</span></br></li></ul>"
dg3 = "<b>Deklinationsgruppe 3</b></br>" \
"Plural endet auf <span style='color:red;'>-(e)r</span></br>"\
"Der dritten Konjugationsgruppe gehören <b>einsilbige</b> <span style='color:red;'>en</span>-Wörter (Utra) an, aber auch ein paar <span style='color:red;'>ett</span>-Wörter (Neutra) werden dieser Gruppe zugeordnet.</br></br>"\
"Welche Substantive gehören zur Gruppe 3:</br>"\
"<ul><li>einsilbige <span style='color:red;'>en</span>-Wörter mit Endung auf einen Konsonanten</li>"\
"<li>Substantive mit Endung auf Konsonant</li>"\
"<li>einige Substantive, die als Lehnwörter anderen Sprachen entnommen wurden</li>"\
"<li>einige Substantive, die auf einen Vokal enden</li></ul></br>"\
"Folgendermaßen lautet die Pluralendung der Substantive dieser Gruppe:</br>"\
"<ul>"\
"<li>die Substantive enden in <b>unbestimmter</b> Form Plural auf <span style='color:red;'>-er</span></li>"\
"<li>die Substantive enden in <b>bestimmter</b> Form Plural auf <span style='color:red;'>-erna</span></li>"\
"<li>es kann zu Vokaländerungen kommen, dann wird: <span style='color:red;'>a</span> zu <span style='color:red;'>ä</span> oder <span style='color:red;'>o</span> zu <span style='color:red;'>ö</span></li>"\
"<li>Substantive, die auf einen Vokal enden, erhalten in <b>unbestimmter</b> Form Plural nur die Endung <span style='color:red;'>-r</span></li>"\
"<li>Substantive, die auf einen Vokal enden, erhalten in <b>bestimmter</b> Form Plural die Endung <span style='color:red;'>-rna</span></li></ul>"
dg4="<b>Deklinationsgruppe 4</b></br>" \
"Plural endet auf <span style='color:red;'>-er</span></br></br>" \
"Die vierte Deklinationsgruppe ist die einzige, die <b>ausschließlich</b> <span style='color:red;'>ett</span>-Wörter (Neutra) umfasst.</br></br>" \
"Außerdem kann man sich merken, dass diese Gruppe die kleinste der fünf Deklinationsgruppen ist und ihr nur ca. 5 % aller schwedischen Substantive angehören."\
"</br></br>" \
"Welche Substantive gehören zur Gruppe 4:</br>" \
"<ul><li>Substantive, die auf einen (unbetonten) Vokal enden</li>" \
"<li>einige ett-Wörter mit der Endung <span style='color:red;'>-ande</span> oder <span style='color:red;'>-ende</span></li></ul>" \
"Wie lautet die Pluralendung der Substantive dieser Gruppe:</br>" \
"<ul>" \
"<li>die Substantive enden in <b>unbestimmter</b> Form Plural auf <span style='color:red;'>-n</span></li>" \
"<li>die Substantive enden in <b>bestimmter</b> Form Plural auf <span style='color:red;'>-na</span>, selten nur auf <span style='color:red;'>-n</span></li></ul>"
dg5="<b>Deklinationsgruppe 5</b></br>" \
"Pluralendungen sind identisch mit den Endungen im Singular</br>" \
"Die Substantive dieser Gruppe können sowohl <span style='color:red;'>Neutra</span> (ett-Wörter) als auch <span style='color:red;'>Utra</span> (en-Wörter) sein.</br></br>" \
"Welche Substantive gehören zur Gruppe 5:</br>" \
"<ul><li>ett-Wörter, die auf einen Konsonant enden</li>" \
"<li>en-Wörter, die auf <span style='color:red;'>-ande</span> oder <span style='color:red;'>-are</span> enden</li>" \
"<li>einsilbige en-Wörter</li></ul></br>" \
"Wie lautet die Pluralendung der Substantive dieser Gruppe:</br>" \
"<ul>" \
"<li>die Substantive haben in <b>unbestimmter</b> Form Plural die selbe Endung wie im Singular</li>" \
"<li>die Substantive enden in <b>bestimmter</b> Form Plural auf <span style='color:red;'>-en</span></li></ul>"
# Ein Modell definieren (z.B. mit 5 Feldern)
model = genanki.Model(
1607392319,
'Schwedisch-Plural-Modell',
fields=[
{'name': 'Deutsch'},
{'name': 'SingularUnbestimmt'},
{'name': 'SingularBestimmt'},
{'name': 'PluralUnbestimmt'},
{'name': 'PluralBestimmt'},
{'name': 'Erklärung'},
],
templates=[
{
'name': 'Karte 1',
'qfmt': """
<table style="width: 100%; border-collapse: collapse; text-align: center;">
<thead>
<tr>
<th>Deutsch</th>
<th>Unbestimmt Sg.</th>
<th>Bestimmt Sg.</th>
<th>Unbestimmt Pl.</th>
<th>Bestimmt Pl.</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{Deutsch}}</td>
<td>{{SingularUnbestimmt}}</td>
<td>{{SingularBestimmt}}</td>
<td>{{PluralUnbestimmt}}</td>
<td>{{PluralBestimmt}}</td>
</tr>
</tbody>
</table>
""",
'afmt': """
{{FrontSide}}<hr><div style="padding: 10px; font-size: 1.1em;">{{Erklärung}}</div>
""",
},
],
css="""
table {
border: 1px solid #ccc;
background-color: #f9f9f9;
}
th, td {
border: 1px solid #ccc;
padding: 8px;
}
th {
background-color: #e0e0e0;
}
""",
)
# Ein Deck erzeugen
deck = genanki.Deck(
2059400110,
'Schwedisch Pluraltraining'
)
#Einlesen einer CSV-Datei
csv_datei = 'schwedisch_plural.csv'
with open(csv_datei, 'r', encoding='utf-8') as file:
reader = csv.reader(file, delimiter=',')
next(reader) # Überspringe die Kopfzeile
for i, row in enumerate(reader, start=2): # Starte bei Zeile 2 wegen der Kopfzeile
if len(row) != 6:
print(f"Warnung: Zeile {i} hat nicht genau 6 Spalten und wird übersprungen: {len(row)} ")
else:
#print (f"Zeile {i} hat 6 Spalten: {row}")
if row[5] == "1":
row[5] = dg1
elif row[5] == "2":
row[5] = dg2
elif row[5] == "3":
row[5] = dg3
elif row[5] == "4":
row[5] = dg4
elif row[5] == "5":
row[5] = dg5
elif row[5] == "-":
row[5] = "keine Änderung"
karten.append(row)
# Beispielkarten hinzufügen (Deutsch, Singular unbestimmt, Singular bestimmt, Plural unbestimmt, Plural bestimmt, Erklärung)
# karten = [
# ['das Mädchen', 'en flicka', 'flickan', 'flickor', 'flickorna', dg1],
# ['der Junge', 'en pojke', 'pojken', 'pojkar', 'pojkarna', dg2],
# ['der Student', 'en student', 'student<b>en</b>', 'student<b>er</b>', 'student<b>erna</b>', dg3],
# ['Zahn', 'en t<b>a</b>nd', 't<b>a</b>nd<b>en</b>', 't<b>ä</b>nd<b>er</b>', 't<b>ä</b>nd<b>erna</b>', dg3],
# ['Buch', 'en bok', 'bok<b>en</b>', 'böck<b>er</b>', 'böck<b>erna</b>', dg3],
# ['Apfel', 'ett äpple', 'applet', 'äpplen', 'äpplena', dg4],
# ]
for k in karten:
#print (f"Feld 1: {k[0]}, Feld 2: {k[1]}, Feld 3: {k[2]}, Feld 4: {k[3]}, Feld 5: {k[4]}, Feld 6: {k[5]}")
note = genanki.Note(
model=model,
fields=k
)
deck.add_note(note)
# Paket erzeugen
genanki.Package(deck).write_to_file('schwedisch_plural.apkg')
print("Deck wurde erfolgreich als .apkg exportiert.")