File: //proc/self/root/tmp/fix_quotes.py
#!/usr/bin/env python3
"""Fix: Ersetze ASCII " in deutschen Zitaten durch die echten Unicode-Zeichen."""
import re
with open('/tmp/zitiertechnik_arbeitsblatt.py', 'r', encoding='utf-8') as f:
content = f.read()
# Strategy: Replace the specific known patterns where German closing quotes
# were accidentally written as ASCII "
# German opening quote „ = \u201e, closing ‚ = \u201c
# These are all patterns where „...". appears (German open + ASCII close)
# We need to find „ followed by text followed by " and replace that " with \u201c
# But only when preceded by a „... pattern
# Simpler: just replace specific known problematic strings
replacements = [
# body text quotes
('\u201efallen gelassen".', '\u201efallen gelassen\u201c.'),
('\u201eBelege"', '\u201eBelege\u201c'),
('\u201eDreischritt"', '\u201eDreischritt\u201c'),
('\u201efallen gelassen"', '\u201efallen gelassen\u201c'),
# In strings: „...‚...‛..."
# Various German quote closings that should be \u201c not "
('\u201eDie Jungen waren einig, dass sie nicht nachgeben w\u00fcrden, und so blieb es bei der Vorstellung, die astrein war."', '\u201eDie Jungen waren einig, dass sie nicht nachgeben w\u00fcrden, und so blieb es bei der Vorstellung, die astrein war.\u201c'),
# „astrein"
('\u201eastrein"', '\u201eastrein\u201c'),
# „einig, dass sie nicht nachgeben w\u00fcrden [und] so blieb es bei der Vorstellung, die astrein [was]"'
('[was]"', '[was]\u201c'),
# „zur\u00fcckkam und sagte, dass [er] die Aufgabe erledigt habe"'
('erledigt habe"', 'erledigt habe\u201c'),
# „Er"
('\u201eEr"', '\u201eEr\u201c'),
# „[er]"
('\u201e[er]"', '\u201e[er]\u201c'),
# „Das System wurde definitive [sic!] abgeschaltet."
('abgeschaltet."', 'abgeschaltet.\u201c'),
# „Der Schulleiter sagte: \u201aDisziplin ist das Fundament jeder Bildung.\u201b"
('Bildung.\u201b"', 'Bildung.\u201b\u201c'),
# „Das eigentliche Problem ist die Angst vor dem Scheitern"
('Scheitern"', 'Scheitern\u201c'),
# „die Stille war erdr\u00fcckend..."
('erdr\u00fcckend..."', 'erdr\u00fcckend...\u201c'),
# „Ich ging nach Hause."
('nach Hause."', 'nach Hause.\u201c'),
# „Ich bin m\u00fcde."
('m\u00fcde."', 'm\u00fcde.\u201c'),
# „Er kam gestern an."
('gestern an."', 'gestern an.\u201c'),
# „Die Stadt wurde 1848 gegr\u00fcndet und hatte damalls 200 Einwohner."
('Einwohner."', 'Einwohner.\u201c'),
# „Seine Argumentation war wiederspr\u00fcchlich und nicht nachvollziehbar."
('nachvollziehbar."', 'nachvollziehbar.\u201c'),
# „Das Experiment wurde mehrmals wiederholt."
('wiederholt."', 'wiederholt.\u201c'),
# \u201eDies wird besonders deutlich, wenn hei\u00dft: \u201aDie Angst war gr\u00f6\u00dfer als die Hoffnung.\u201b"
('Hoffnung.\u201b"', 'Hoffnung.\u201b\u201c'),
# „Der kleine Prinz betrachtete ..."
('verletzlich wirkte."', 'verletzlich wirkte.\u201c'),
# „Die Lehrerin erkl\u00e4rte geduldig, dass jedes Wort ..."
('hinsieht."', 'hinsieht.\u201c'),
# „Der Lehrer erkl\u00e4rte den Schülern ..."
('aufzuteilen."', 'aufzuteilen.\u201c'),
# „Ich bin ein Techniker ..."
('sicher hielt."', 'sicher hielt.\u201c'),
# „altes verändert, was ich für sicher hielt"
('sicher hielt"', 'sicher hielt\u201c'),
# „alles verändert, was ich für sicher hielt"
('\u201ealles ver\u00e4ndert, was ich f\u00fcr sicher hielt"', '\u201ealles ver\u00e4ndert, was ich f\u00fcr sicher hielt\u201c'),
# „Der Erzähler sagt, dass „[_____] ging nach Hause."
('nach Hause." ', 'nach Hause.\u201c '),
# „[_____] bin müde."
('bin m\u00fcde." ', 'bin m\u00fcde.\u201c '),
# „[_____] kam gestern an."
('kam gestern an." ', 'kam gestern an.\u201c '),
# „die Stille..." -- in Ü6
('\u201edie Stille', '\u201edie Stille'),
]
for old, new in replacements:
content = content.replace(old, new)
with open('/tmp/zitiertechnik_arbeitsblatt.py', 'w', encoding='utf-8') as f:
f.write(content)
print("Done - quotes fixed")