#!/usr/bin/perl -n
#
# ä = ae     Ä = AE
# ö = oe     Ö = OE     ß = ss
# ü = ue     Ü = UE
# 
# Schwäbisch - Übersetzer (Compiler?) von Jens Schweikhardt
# <schweikh at schweikhardt dot net>
# Filter: liest stdin, schreibt auf stdout, zB
# <deutsch schwob >schwäbisch
# [Kein Syntax Fehler, IO-Redirection kann überall stehen, selbst
#  zwischen den Argumenten, ausser vielleicht bei C-Shells, ARGH!]
# Komplette Wortersetzungen:
s/\b([Dd])a\b([^ß])/\1o\2/g;
s/\bdann\b/no/g;
s/\bEs\b/S/g;
s/\bes\b/s/g;
s/\beine([sm])\b/oi\1/g;
s/\bEine([sm])\b/Oi\1/g;
s/\b([DdMmSs])eine?\b/\1ei/g;
s/\b([DdMmSs])eins\b/\1eis/g;
s/\b([DdMmSs])einer\b/\1einr/g;
s/\beine\b/a/g;
s/\bEine\b/A/g;
s/\beiner\b/oinr/g;
s/\bEiner\b/Oinr/g;
s/\b([Ee])inen\b/\1n/g;        # einen -> en
s/\b([Dd])as/\1es/g;           # das -> des
s/\b[Ii]ch\b/I/g;              # ich -> i
s/\b([Nn])icht\b/\1ed/g;       # nicht -> ned
s/\b([Ss])ie\b/\1e/g;          # sie -> se
s/\bwir\b/mir/g;
s/\bWir\b/Mir/g;
s/\b(he)?([Rr])unter/\2a/g;
s/\b([Hh])at\b/\1ott/g;
s/\b([Hh])aben\b/\1enn/g;
s/\b([Hh])abe\b/\1ann/g;
s/\b([Gg])ehen\b/\1anga/g;
s/\b([Kk])ann\b/\1a/g;
s/\b([Kk])önnen\b/\1enna/g;
s/\b([Ww])ollen\b/\1ella/g;
s/\b([Ss])ollten\b/\1oddad/g;
s/\b([Ss])ollt?e?\b/\1odd/g;
s/\bdiese?r?\b/sell/g;
s/\bDiese?r?\b/Sell/g;
s/\b([Aa])uch\b/\1o/g;        # auch -> ao
s/\b([Nn])och\b/\1o/g;        # noch -> no
s/\b([Ss])ind\b/\1end/g;      # sind -> send
s/\b([Ss])chon\b/\1cho/g;     # schon -> scho
s/\b([Mm])an\b/\1r/g;         # man -> mr
s/\b([Dd])ie\b/\1/g;          # die -> d
s/\b([Dd])a?rauf\b/\1ruff/g;  # darauf -> druff
s/\bviele?s?\b/en Haufa/g;
s/\bViele?s?\b/En Haufa/g;
s/\bAuto|Daimler\b/Heilix Blechle/g;
s/Marmelade|Konfitüre/Xälz/g;
s/\b2\b/zwoi/g;
s/\b5\b/fempf/g;
s/\b15\b/fuffzehn/g;
s/\b50\b/fuffzig/g;

# Am Wortanfang und Grossgeschriebenes:
s/\bAuf/Uff/g;
s/\bauf/uff/g;
s/\bEin/Oi/g;
s/\bein/oi/g;
s/\bMal/Mol/g;
s/\bUm/Om/g;
s/\bunge/og/g;
s/\bUnge/Og/g;
s/\bunver/ovr/g;
s/\bUnver/Ovr/g;
s/\bUn/On/g;
s/\bun/on/g;
s/\bUnd/Ond/g;
s/\bin(s?)/en\1/g;            # in -> en,   ins -> ens
s/\bIn(s?)/En\1/g;            # In -> En,   Ins -> Ens
s/\bim/em/g;
s/\bIm/Em/g;
s/\b([Kk])ein/\1oin/g;
s/\b([Nn])ein/\1oi/g;
s/\b([Zz])usa/\1a/g;          # zusammen -> zamma

# Am Wortende:
s/\Ben\b/a/g;                 # latschen -> latscha
s/\Bel\b/l/g;                 # Sessel -> Sessl
s/([^h])er\b/\1r/g;           # der -> dr
s/([h])es\b/\1s/g;            # manches -> manchs
s/\Bau\b/ao/g;                # lau -> lao
s/([lt])ein\b/\1oi/g;         # Stein -> Stoi

# Beliebige Position:
s/([Ff])rag/\1rog/g;
s/teil/doil/g;
s/Teil/Doil/g;
s/([Hh])eim/\1oim/g;
s/steht/stoht/g;
s/um/om/g;
s/imm/emm/g;				# schlimm -> schlemm
s/mal/mol/g;
s/zwei/zwoi/g;
s/ck/gg/g;
s/([Ee])u/\1i/g;
s/([Vv])er/\1r/g;
s/([Gg])e([aflmnrs])/\1\2/g;  # angenommen -> angnommen
s/([Ss])t/\1chd/g;            # st -> schd
s/([Ss])p/\1chb/g;            # sp -> schb
s/tio/zio/g;                  # Information -> Informazion
s/\?/, ha?/g;
s/!!/, Sagg Zemend!/g;
s/!/, haidanai!/g;

# Spezielles:
tr/TtPpÖöÜü/DdBbEeIi/;      # Globale Transformationen zum Schluss
# Was nach tr stehen muss:
s/ung/ong/g;
s/und/ond/g;
s/ind/end/g;
print;
