summaryrefslogtreecommitdiffstats
path: root/runtime/spell/de
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/spell/de')
-rw-r--r--runtime/spell/de/de_19.diff514
-rw-r--r--runtime/spell/de/de_20.diff580
-rw-r--r--runtime/spell/de/de_AT.diff573
-rw-r--r--runtime/spell/de/de_CH.diff574
-rw-r--r--runtime/spell/de/de_DE.diff580
-rw-r--r--runtime/spell/de/main.aap176
6 files changed, 2997 insertions, 0 deletions
diff --git a/runtime/spell/de/de_19.diff b/runtime/spell/de/de_19.diff
new file mode 100644
index 0000000..a2b9fa4
--- /dev/null
+++ b/runtime/spell/de/de_19.diff
@@ -0,0 +1,514 @@
+*** de_19.orig.aff 2019-01-19 18:45:26.468520305 +0100
+--- de_19.aff 2019-01-19 18:45:26.472520278 +0100
+***************
+*** 3,4 ****
+--- 3,21 ----
+
++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++
++ MIDWORD '
++
++ MAP 9
++ MAP aàáâãäå
++ MAP eèéêë
++ MAP iìíîï
++ MAP oòóôõö
++ MAP uùúûü
++ MAP nñ
++ MAP cç
++ MAP yÿý
++ MAP sß
++
+ # (c) copyright by Bjoern Jacke <bjoern@j3e.de>
+***************
+*** 560 ****
+--- 577,1052 ----
+
++ # German phonetic transformation rules from Aspell
++ # Copyright (C) 2000 Björn Jacke, distributed under LGPL.
++ # Björn Jacke may be reached by email at bjoern.jacke@gmx.de
++ # Last changed 2000-01-07
++
++ SAL followup 1
++ SAL collapse_result 1
++
++ SAL ÄER- E
++ SAL ÄU< EU
++ SAL Ä< E
++ SAL É E
++ SAL ÖER- Ö
++ SAL Ö Ö
++ SAL ÜBER^^ IPA
++ SAL ÜER- I
++ SAL Ü I
++ SAL ß Z
++ SAL ABELLE$ APL
++ SAL ABELL$ APL
++ SAL ABIENNE$ APIN
++ SAL ACEY$ AZI
++ SAL AEU< EU
++ SAL AE2 E
++ SAL AGNI-^ AKN
++ SAL AGNIE- ANI
++ SAL AGN(AEOU)-$ ANI
++ SAL AIA2 AIA
++ SAL AIE$ E
++ SAL AILL(EOU)- ALI
++ SAL AINE$ EN
++ SAL AIRE$ ER
++ SAL AIR- E
++ SAL AISE$ EZ
++ SAL AISSANCE$ EZANZ
++ SAL AISSE$ EZ
++ SAL AIX$ EX
++ SAL AJ(AÄEIOÖUÜ)-- A
++ SAL AKTIE AXIE
++ SAL ALO(IY)^ ALUI
++ SAL AMATEU(RS)- ANATÖ
++ SAL ANIELLE$ ANIL
++ SAL ANTI^^ ANTI
++ SAL ANVER^^ ANFA
++ SAL ATIA$ ATIA
++ SAL ATIA(NS)-- ATI
++ SAL ATI(AÄOÖUÜ)- AZI
++ SAL AUAU-- _
++ SAL AUER< AUA
++ SAL AUF^^ AUF
++ SAL AULT$ U
++ SAL AUSSE$ UZ
++ SAL AUS(ST)-^ AUZ
++ SAL AUS^^ AUZ
++ SAL AUTO^^ AUTU
++ SAL AUX(IY)- AUX
++ SAL AUX U
++ SAL AU AU
++ SAL AVIER$ AFIE
++ SAL AYER--< EI
++ SAL AY(AÄEIOÖUÜ)-- A
++ SAL A(IJY)< EI
++ SAL A A
++ SAL BEA(BCMNRU)-^ PEA
++ SAL BEAT(AEIMORU)-^ PEAT
++ SAL BEIGE^$ PEZ
++ SAL BE(LMNRST)-^ PE
++ SAL BETTE$ PET
++ SAL BIC$ PIZ
++ SAL BOWL(EI)- PUL
++ SAL BP(AÄEIOÖRUÜY)- P
++ SAL BUDGET7 PIKE
++ SAL BUFFET7 PIFE
++ SAL BYLLE$ PILE
++ SAL BYLL$ PIL
++ SAL BYTE< PEIT
++ SAL B P
++ SAL CÄ- Z
++ SAL CÜ$ ZI
++ SAL CACH(EI)-^ KEZ
++ SAL CAE-- Z
++ SAL CA(IY)$ ZEI
++ SAL CCH Z
++ SAL CCE- X
++ SAL CE(EIJUY)-- Z
++ SAL CENT< ZENT
++ SAL CERST(EI)----^ KE
++ SAL CER$ ZA
++ SAL CE3 ZE
++ SAL CHAO(ST)- KAU
++ SAL CHAMPIO-^ ZENPI
++ SAL CHAR(AI)-^ KAR
++ SAL CHAU(CDFSVWXZ)- ZU
++ SAL CHE(CF)- ZE
++ SAL CHEM-^ KE
++ SAL CHEQUE< ZEK
++ SAL CHI(CFGPVW)- ZI
++ SAL CH(AEUY)-<^ Z
++ SAL CHK- _
++ SAL CH(LOR)-<^ K
++ SAL CHST- X
++ SAL CH(SßXZ)3 X
++ SAL CH K
++ SAL CIER$ ZIE
++ SAL CYB-^ ZEI
++ SAL CY9^ ZI
++ SAL C(IJY)-3 Z
++ SAL CKST XT
++ SAL CK(SßXZ)3 X
++ SAL C(CK)- _
++ SAL CLAUDET--- KLU
++ SAL CLAUDINE^$ KLUTIN
++ SAL COLE$ KUL
++ SAL COUCH KAUZ
++ SAL CQUES$ K
++ SAL CQUE K
++ SAL CREAT-^ KREA
++ SAL CST XT
++ SAL CS<^ Z
++ SAL C(SßX) X
++ SAL CT(SßXZ) X
++ SAL CZ< Z
++ SAL C< K
++ SAL D'H^ T
++ SAL D'S3$ Z
++ SAL DAVO(NR)-^$ TAFU
++ SAL DD(SZ)--< _
++ SAL DEPOT7 TEPU
++ SAL DESIGN TIZEIN
++ SAL DE(LMNRST)-3^ TE
++ SAL DETTE$ TET
++ SAL DIC$ TIZ
++ SAL DJ(AEIOU)-^ I
++ SAL DS(CH)--< T
++ SAL DST ZT
++ SAL DT- _
++ SAL DUIS-^ TI
++ SAL DURCH^^ TURK
++ SAL DZS(CH)-- T
++ SAL D(SßZ) Z
++ SAL D T
++ SAL EAULT$ U
++ SAL EAUX$ U
++ SAL EAU U
++ SAL EAV IF
++ SAL EA(AÄEIOÖÜY)-3 EA
++ SAL EA3$ EA
++ SAL EA3 I
++ SAL EBEN^^ EPN
++ SAL EE9 E
++ SAL EIEI-- _
++ SAL EIH-- E
++ SAL EILLE$ EI
++ SAL EI EI
++ SAL EJ$ EI
++ SAL EL-^ E
++ SAL EL(DKL)--1 E
++ SAL EL(MNT)--1$ E
++ SAL ELYNE$ ELINE
++ SAL ELYN$ ELIN
++ SAL EL(AÄEIOÖUÜY)-1 EL
++ SAL EL-1 L
++ SAL EM-^ E
++ SAL EM(DFKMPQT)--1 E
++ SAL EM(AÄEIOÖUÜY)--1 E
++ SAL EM-1 N
++ SAL EN-^ E
++ SAL EN(CDGKQT)--1 E
++ SAL ENZ(AEIOUY)--1 EN
++ SAL EN(AÄEINOÖUÜY)-1 EN
++ SAL EN-<1 N
++ SAL ERH(AÄEIOÖUÜ)-^ ER
++ SAL ER-^ E
++ SAL ER(AÄEIOÖUÜY)-1 A
++ SAL ER1$ A
++ SAL ER<1 A
++ SAL ETI(AÄOÖÜU)- EZI
++ SAL EUEU-- _
++ SAL EUILLE$ Ö
++ SAL EUR$ ÖR
++ SAL EUX Ö
++ SAL EUYS$ EUZ
++ SAL EU EU
++ SAL EYER< EIA
++ SAL EY< EI
++ SAL E E
++ SAL FANS--^$ FE
++ SAL FAN-^$ FE
++ SAL FAULT- FUL
++ SAL FEE(DL)- FI
++ SAL FEHLER FELA
++ SAL FE(LMNRST)-3^ FE
++ SAL FOND7 FUN
++ SAL FRAIN$ FRA
++ SAL FRISEU(RS)- FRIZÖ # x
++ SAL F F
++ SAL G'S$ X
++ SAL GAGS^$ KEX
++ SAL GAG^$ KEK
++ SAL GD KT
++ SAL GEGEN^^ KEKN
++ SAL GE(LMNRST)-3^ KE
++ SAL GETTE$ KET
++ SAL G(CK)- _
++ SAL GG- _
++ SAL GI(AO)-^ I
++ SAL GION$ KIUN
++ SAL GIUS-^ IU
++ SAL GMBH^$ GMPH
++ SAL GNAC$ NIAK
++ SAL GNON$ NIUN
++ SAL GN$ N
++ SAL GONCAL-^ KUNZA
++ SAL GS(CH)-- K
++ SAL GST XT
++ SAL G(SßXZ) X
++ SAL GUCK- KU
++ SAL GUI-^ K
++ SAL G K
++ SAL HEAD- E
++ SAL HE(LMNRST)-3^ E
++ SAL HE(LMN)-1 E
++ SAL HEUR1$ ÖR
++ SAL H^ _
++ SAL IEC$ IZ
++ SAL IEI-3 _
++ SAL IELL3 IEL
++ SAL IENNE$ IN
++ SAL IERRE$ IER
++ SAL IETTE$ IT
++ SAL IEU IÖ
++ SAL IE<4 I
++ SAL IGHT3$ EIT
++ SAL IGNI(EO)- INI
++ SAL IGN(AEOU)-$ INI
++ SAL IJ(AOU)- I
++ SAL IJ$ I
++ SAL IJ< EI
++ SAL IKOLE$ IKUL
++ SAL ILLAN(STZ)-- ILIA
++ SAL ILLAR(DT)-- ILIA
++ SAL INVER- INFE
++ SAL ITI(AÄOÖUÜ)- IZI
++ SAL IVIER$ IFIE
++ SAL I I
++ SAL JAVIE---<^ ZA
++ SAL JEAN^$ IA
++ SAL JEAN-^ IA
++ SAL JER-^ IE
++ SAL JE(LMNST)- IE
++ SAL JOR(GK)^$ IÖRK
++ SAL J I
++ SAL KC(ÄEIJ)- X
++ SAL KE(LMNRST)-3^ KE
++ SAL KH<^ K
++ SAL KIC$ KIZ
++ SAL KLE(LMNRST)-3^ KLE
++ SAL KOTELE-^ KUTL
++ SAL KREAT-^ KREA
++ SAL KST XT
++ SAL K(SßXZ) X
++ SAL KTI(AIOU)-3 XI
++ SAL KT(SßXZ) X
++ SAL K K
++ SAL LARVE- LARF
++ SAL LEAND-^ LEAN
++ SAL LEL- LE
++ SAL LE(MNRST)-3^ LE
++ SAL LETTE$ LET
++ SAL LFGNAG- LFKAN
++ SAL LIC$ LIZ
++ SAL LIVE^$ LEIF
++ SAL LUI(GS)-- LU
++ SAL L L
++ SAL MASSEU(RS)- NAZÖ
++ SAL MAURICE NURIZ
++ SAL MBH^$ MPH
++ SAL MB(SßZ)- N
++ SAL MC9^ NK
++ SAL MEMOIR-^ NENUA
++ SAL ME(LMNRST)-3^ NE
++ SAL MIGUEL NIKL
++ SAL MIKE^$ NEIK
++ SAL MN N
++ SAL MPJUTE- NPUT
++ SAL MP(SßZ)- N
++ SAL MP(BDJLMNPQRTVW)- NP
++ SAL M N
++ SAL NACH^^ NAK
++ SAL NADINE NATIN
++ SAL NAIV-- NA
++ SAL NAISE$ NEZE
++ SAL NCOISE$ ZUA
++ SAL NCOIS$ ZUA
++ SAL NEBEN^^ NEPN
++ SAL NE(LMNRST)-3^ NE
++ SAL NEN-3 NE
++ SAL NETTE$ NET
++ SAL NG(BDFJLMNPQRTVW)- NK
++ SAL NICHTS^^ NIX
++ SAL NICHT^^ NIKT
++ SAL NINE$ NIN
++ SAL NON^^ NUN
++ SAL NOT^^ NUT
++ SAL NTI(AIOU)-3 NZI
++ SAL NTIEL--3 NZI
++ SAL NYLON NEILUN
++ SAL ND(SßZ)$ NZ
++ SAL NT(SßZ)$ NZ
++ SAL ND'S$ NZ
++ SAL NT'S$ NZ
++ SAL NSTS$ NZ
++ SAL N N
++ SAL OBER^^ UPA
++ SAL OE2 Ö
++ SAL OGNIE- UNI
++ SAL OGN(AEOU)-$ UNI
++ SAL OIE$ Ö
++ SAL OIR$ UAR
++ SAL OIX UA
++ SAL OI<3 EU
++ SAL OJ(AÄEIOÖUÜ)-- U
++ SAL OKAY^$ UKE
++ SAL OLYN$ ULIN
++ SAL OTI(AÄOÖUÜ)- UZI
++ SAL OUI^ FI
++ SAL OUILLE$ ULIE
++ SAL OU(DT)-^ AU
++ SAL OUSE$ AUZ
++ SAL OUT- AU
++ SAL OU U
++ SAL OWS$ UZ
++ SAL OY(AÄEIOÖUÜ)-- U
++ SAL O(JY)< EU
++ SAL O U
++ SAL PATIEN--^ PAZI
++ SAL PENSIO-^ PANZI
++ SAL PE(LMNRST)-3^ PE
++ SAL PFER-^ FE
++ SAL P(FH)< F
++ SAL POLY^^ PULI
++ SAL PORTRAIT7 PURTRE
++ SAL PP(FH)--< P
++ SAL PP- _
++ SAL PRIX^$ PRI
++ SAL P(SßZ)^ Z
++ SAL PTI(AÄOÖUÜ)-3 PZI
++ SAL PIC^$ PIK
++ SAL P P
++ SAL QUE(LMNRST)-3 KFE
++ SAL QUE$ K
++ SAL QUI(NS)$ KI
++ SAL QU KF
++ SAL Q< K
++ SAL RCH RK
++ SAL RECHERCH^ REZAZ
++ SAL RER$ RA
++ SAL RE(MNR)-4 RE
++ SAL RETTE$ RET
++ SAL RH<^ R
++ SAL RJA(MN)-- RI
++ SAL RTI(AÄOÖUÜ)-3 RZI
++ SAL RY(KN)-$ RI
++ SAL R R
++ SAL SAFE^$ ZEIF
++ SAL SAUCE-^ ZUZ
++ SAL SCHSCH---7 _
++ SAL SCHTSCH Z
++ SAL SC(HZ)< Z
++ SAL SC ZK
++ SAL SELBSTST--7^^ ZELP
++ SAL SELBST7^^ ZELPZT
++ SAL SERVICE7^ ZÖRFIZ
++ SAL SE(LMNRST)-3^ ZE
++ SAL SETTE$ ZET
++ SAL SHP-^ Z
++ SAL SHST ZT
++ SAL SHTSH Z
++ SAL SHT Z
++ SAL SH3 Z
++ SAL SIEGLI-^ ZIKL
++ SAL SIGLI-^ ZIKL
++ SAL SIGHT ZEIT
++ SAL SIGN ZEIN
++ SAL SKI(NPZ)- ZKI
++ SAL SKI<^ ZI
++ SAL SOUND- ZAUN
++ SAL STAATS^^ ZTAZ
++ SAL STADT^^ ZTAT
++ SAL START^^ ZTART
++ SAL STAURANT7 ZTURAN
++ SAL STEAK- ZTE
++ SAL STRAF^^ ZTRAF
++ SAL ST'S$ Z
++ SAL STST-- _
++ SAL STS(ACEHIOUÄÜÖ)-- ZT
++ SAL ST(SZ) Z
++ SAL STYN(AE)-$ ZTIN
++ SAL ST ZT
++ SAL SZE(NPT)-^ ZE
++ SAL SZI(ELN)-^ ZI
++ SAL SZCZ< Z
++ SAL SZT< ZT
++ SAL SZ<3 Z
++ SAL S Z
++ SAL T'S3$ Z
++ SAL TCH Z
++ SAL TEAT-^ TEA
++ SAL TE(LMNRST)-3^ TE
++ SAL TH< T
++ SAL TIC$ TIZ
++ SAL TOAS-^ TU
++ SAL TOILET- TULE
++ SAL TOIN- TUA
++ SAL TRAINI- TREN
++ SAL TSCH Z
++ SAL TSH Z
++ SAL TST ZT
++ SAL T(Sß) Z
++ SAL TT(SZ)--< _
++ SAL TT9 T
++ SAL TZ- _
++ SAL T T
++ SAL UEBER^^ IPA
++ SAL UE2 I
++ SAL UIE$ I
++ SAL UM^^ UN
++ SAL UNTERE-- UNTE
++ SAL UNTER^^ UNTA
++ SAL UNVER^^ UNFA
++ SAL UN^^ UN
++ SAL UTI(AÄOÖUÜ)- UZI
++ SAL U U
++ SAL VACL-^ FAZ
++ SAL VAC$ FAZ
++ SAL VEDD-^ FE
++ SAL VEREIN FAEIN
++ SAL VERSEN^ FAZN
++ SAL VER^^ FA
++ SAL VER FA
++ SAL VET(HT)-^ FET
++ SAL VETTE$ FET
++ SAL VIC$ FIZ
++ SAL VIEL FIL
++ SAL VIEW FIU
++ SAL VOR^^ FUR
++ SAL VY9^ FI
++ SAL V< F
++ SAL WE(LMNRST)-3^ FE
++ SAL WIC$ FIZ
++ SAL WIEDER^^ FITA
++ SAL WY9^ FI
++ SAL W F
++ SAL XE(LMNRST)-3^ XE
++ SAL X<^ Z
++ SAL X(CSZ) X
++ SAL XTS(CH)-- XT
++ SAL XT(SZ) Z
++ SAL X X
++ SAL YE(LMNRST)-3^ IE
++ SAL YE-3 I
++ SAL YOR(GK)^$ IÖRK
++ SAL Y(AOU)-<7 I
++ SAL YVES^$ IF
++ SAL YVONNE^$ IFUN
++ SAL Y I
++ SAL ZC(AOU)- ZK
++ SAL ZE(LMNRST)-3^ ZE
++ SAL ZH< Z
++ SAL ZS(CHT)-- _
++ SAL ZS Z
++ SAL ZUERST ZUERZT
++ SAL ZURÜCK^^ ZURIK
++ SAL ZUVER^^ ZUFA # x
++ SAL Z Z
+*** de_19.orig.dic 2019-01-19 18:45:26.468520305 +0100
+--- de_19.dic 2019-01-19 18:45:26.476520252 +0100
+***************
+*** 76258,76259 ****
+ zynismusfördernd/A
+! zzgl
+\ No newline at end of file
+--- 76258,76260 ----
+ zynismusfördernd/A
+! zzgl
+!
diff --git a/runtime/spell/de/de_20.diff b/runtime/spell/de/de_20.diff
new file mode 100644
index 0000000..bbac7a0
--- /dev/null
+++ b/runtime/spell/de/de_20.diff
@@ -0,0 +1,580 @@
+*** de_DE.orig.aff 2019-01-19 18:45:26.132522538 +0100
+--- de_DE.aff 2019-01-19 19:23:37.233297530 +0100
+***************
+*** 15,16 ****
+--- 15,46 ----
+
++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++
++ MIDWORD '
++
++ MAP 9
++ MAP aàáâãäå
++ MAP eèéêë
++ MAP iìíîï
++ MAP oòóôõö
++ MAP uùúûü
++ MAP nñ
++ MAP cç
++ MAP yÿý
++ MAP sß
++
++ COMPOUNDRULE xy?z
++ #COMPOUNDBEGIN x
++ #COMPOUNDMIDDLE y
++ #COMPOUNDEND z
++
++ # Prefixes are allowed at the beginning of compounds,
++ # suffixes are allowed at the end of compounds by default:
++ # (prefix)?(root)+(affix)?
++ # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
++ COMPOUNDPERMITFLAG c
++
++ ONLYINCOMPOUND o
++
+ PFX U Y 1
+***************
+*** 536,553 ****
+ #LANG de_DE
+! CHECKSHARPS
+!
+
+- COMPOUNDBEGIN x
+- COMPOUNDMIDDLE y
+- COMPOUNDEND z
+ FORBIDDENWORD d
+
+- # Prefixes are allowed at the beginning of compounds,
+- # suffixes are allowed at the end of compounds by default:
+- # (prefix)?(root)+(affix)?
+- # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
+- COMPOUNDPERMITFLAG c
+-
+- ONLYINCOMPOUND o
+-
+ # my PSEUDOROOT h(elper) flag
+--- 566,571 ----
+ #LANG de_DE
+! # CHECKSHARPS
+
+ FORBIDDENWORD d
+
+ # my PSEUDOROOT h(elper) flag
+***************
+*** 571,573 ****
+
+! WORDCHARS ß-.
+
+--- 589,591 ----
+
+! # WORDCHARS ß-.
+
+***************
+*** 725,729 ****
+ # So enabling this is the lesser evil. No perfect solution found so far...
+! BREAK 2
+! BREAK -
+! BREAK .
+!
+--- 743,1241 ----
+ # So enabling this is the lesser evil. No perfect solution found so far...
+! # BREAK 2
+! # BREAK -
+! # BREAK .
+!
+! # German phonetic transformation rules for use with Aspell
+! # Copyright (C) 2000 Björn Jacke
+! #
+! # This library is free software; you can redistribute it and/or
+! # modify it under the terms of the GNU Lesser General Public
+! # License version 2.1 as published by the Free Software Foundation;
+! #
+! # This library is distributed in the hope that it will be useful,
+! # but WITHOUT ANY WARRANTY; without even the implied warranty of
+! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+! # Lesser General Public License for more details.
+! #
+! # You should have received a copy of the GNU Lesser General Public
+! # License along with this library; if not, write to the Free Software
+! # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+! #
+! # Björn Jacke may be reached by email at bjoern.jacke@gmx.de
+! #
+! # Changelog:
+! #
+! # 2000-01-05 Björn Jacke <bjoern.jacke@gmx.de>
+! # Initial Release
+! # 2000-01-07 Kevin Atkinson <kevinatk@home.com>
+! # Converted from header to data file.
+! SAL followup 1
+! SAL collapse_result 1
+!
+! SAL ÄER- E
+! SAL ÄU< EU
+! SAL Ä< E
+! SAL É E
+! SAL ÖER- Ö
+! SAL Ö Ö
+! SAL ÜBER^^ IPA
+! SAL ÜER- I
+! SAL Ü I
+! SAL ß Z
+! SAL ABELLE$ APL
+! SAL ABELL$ APL
+! SAL ABIENNE$ APIN
+! SAL ACEY$ AZI
+! SAL AEU< EU
+! SAL AE2 E
+! SAL AGNI-^ AKN
+! SAL AGNIE- ANI
+! SAL AGN(AEOU)-$ ANI
+! SAL AIA2 AIA
+! SAL AIE$ E
+! SAL AILL(EOU)- ALI
+! SAL AINE$ EN
+! SAL AIRE$ ER
+! SAL AIR- E
+! SAL AISE$ EZ
+! SAL AISSANCE$ EZANZ
+! SAL AISSE$ EZ
+! SAL AIX$ EX
+! SAL AJ(AÄEIOÖUÜ)-- A
+! SAL AKTIE AXIE
+! SAL ALO(IY)^ ALUI
+! SAL AMATEU(RS)- ANATÖ
+! SAL ANIELLE$ ANIL
+! SAL ANTI^^ ANTI
+! SAL ANVER^^ ANFA
+! SAL ATIA$ ATIA
+! SAL ATIA(NS)-- ATI
+! SAL ATI(AÄOÖUÜ)- AZI
+! SAL AUAU-- _
+! SAL AUER< AUA
+! SAL AUF^^ AUF
+! SAL AULT$ U
+! SAL AUSSE$ UZ
+! SAL AUS(ST)-^ AUZ
+! SAL AUS^^ AUZ
+! SAL AUTO^^ AUTU
+! SAL AUX(IY)- AUX
+! SAL AUX U
+! SAL AU AU
+! SAL AVIER$ AFIE
+! SAL AYER--< EI
+! SAL AY(AÄEIOÖUÜ)-- A
+! SAL A(IJY)< EI
+! SAL A A
+! SAL BEA(BCMNRU)-^ PEA
+! SAL BEAT(AEIMORU)-^ PEAT
+! SAL BEIGE^$ PEZ
+! SAL BE(LMNRST)-^ PE
+! SAL BETTE$ PET
+! SAL BIC$ PIZ
+! SAL BOWL(EI)- PUL
+! SAL BP(AÄEIOÖRUÜY)- P
+! SAL BUDGET7 PIKE
+! SAL BUFFET7 PIFE
+! SAL BYLLE$ PILE
+! SAL BYLL$ PIL
+! SAL BYTE< PEIT
+! SAL B P
+! SAL CÄ- Z
+! SAL CÜ$ ZI
+! SAL CACH(EI)-^ KEZ
+! SAL CAE-- Z
+! SAL CA(IY)$ ZEI
+! SAL CCH Z
+! SAL CCE- X
+! SAL CE(EIJUY)-- Z
+! SAL CENT< ZENT
+! SAL CERST(EI)----^ KE
+! SAL CER$ ZA
+! SAL CE3 ZE
+! SAL CHAO(ST)- KAU
+! SAL CHAMPIO-^ ZENPI
+! SAL CHAR(AI)-^ KAR
+! SAL CHAU(CDFSVWXZ)- ZU
+! SAL CHE(CF)- ZE
+! SAL CHEM-^ KE
+! SAL CHEQUE< ZEK
+! SAL CHI(CFGPVW)- ZI
+! SAL CH(AEUY)-<^ Z
+! SAL CHK- _
+! SAL CH(LOR)-<^ K
+! SAL CHST- X
+! SAL CH(SßXZ)3 X
+! SAL CH K
+! SAL CIER$ ZIE
+! SAL CYB-^ ZEI
+! SAL CY9^ ZI
+! SAL C(IJY)-3 Z
+! SAL CKST XT
+! SAL CK(SßXZ)3 X
+! SAL C(CK)- _
+! SAL CLAUDET--- KLU
+! SAL CLAUDINE^$ KLUTIN
+! SAL COLE$ KUL
+! SAL COUCH KAUZ
+! SAL CQUES$ K
+! SAL CQUE K
+! SAL CREAT-^ KREA
+! SAL CST XT
+! SAL CS<^ Z
+! SAL C(SßX) X
+! SAL CT(SßXZ) X
+! SAL CZ< Z
+! SAL C< K
+! SAL D'H^ T
+! SAL D'S3$ Z
+! SAL DAVO(NR)-^$ TAFU
+! SAL DD(SZ)--< _
+! SAL DEPOT7 TEPU
+! SAL DESIGN TIZEIN
+! SAL DE(LMNRST)-3^ TE
+! SAL DETTE$ TET
+! SAL DIC$ TIZ
+! SAL DJ(AEIOU)-^ I
+! SAL DS(CH)--< T
+! SAL DST ZT
+! SAL DT- _
+! SAL DUIS-^ TI
+! SAL DURCH^^ TURK
+! SAL DZS(CH)-- T
+! SAL D(SßZ) Z
+! SAL D T
+! SAL EAULT$ U
+! SAL EAUX$ U
+! SAL EAU U
+! SAL EAV IF
+! SAL EA(AÄEIOÖÜY)-3 EA
+! SAL EA3$ EA
+! SAL EA3 I
+! SAL EBEN^^ EPN
+! SAL EE9 E
+! SAL EIEI-- _
+! SAL EIH-- E
+! SAL EILLE$ EI
+! SAL EI EI
+! SAL EJ$ EI
+! SAL EL-^ E
+! SAL EL(DKL)--1 E
+! SAL EL(MNT)--1$ E
+! SAL ELYNE$ ELINE
+! SAL ELYN$ ELIN
+! SAL EL(AÄEIOÖUÜY)-1 EL
+! SAL EL-1 L
+! SAL EM-^ E
+! SAL EM(DFKMPQT)--1 E
+! SAL EM(AÄEIOÖUÜY)--1 E
+! SAL EM-1 N
+! SAL EN-^ E
+! SAL EN(CDGKQT)--1 E
+! SAL ENZ(AEIOUY)--1 EN
+! SAL EN(AÄEINOÖUÜY)-1 EN
+! SAL EN-<1 N
+! SAL ERH(AÄEIOÖUÜ)-^ ER
+! SAL ER-^ E
+! SAL ER(AÄEIOÖUÜY)-1 A
+! SAL ER1$ A
+! SAL ER<1 A
+! SAL ETI(AÄOÖÜU)- EZI
+! SAL EUEU-- _
+! SAL EUILLE$ Ö
+! SAL EUR$ ÖR
+! SAL EUX Ö
+! SAL EUYS$ EUZ
+! SAL EU EU
+! SAL EYER< EIA
+! SAL EY< EI
+! SAL E E
+! SAL FANS--^$ FE
+! SAL FAN-^$ FE
+! SAL FAULT- FUL
+! SAL FEE(DL)- FI
+! SAL FEHLER FELA
+! SAL FE(LMNRST)-3^ FE
+! SAL FOND7 FUN
+! SAL FRAIN$ FRA
+! SAL FRISEU(RS)- FRIZÖ # x
+! SAL F F
+! SAL G'S$ X
+! SAL GAGS^$ KEX
+! SAL GAG^$ KEK
+! SAL GD KT
+! SAL GEGEN^^ KEKN
+! SAL GE(LMNRST)-3^ KE
+! SAL GETTE$ KET
+! SAL G(CK)- _
+! SAL GG- _
+! SAL GI(AO)-^ I
+! SAL GION$ KIUN
+! SAL GIUS-^ IU
+! SAL GMBH^$ GMPH
+! SAL GNAC$ NIAK
+! SAL GNON$ NIUN
+! SAL GN$ N
+! SAL GONCAL-^ KUNZA
+! SAL GS(CH)-- K
+! SAL GST XT
+! SAL G(SßXZ) X
+! SAL GUCK- KU
+! SAL GUI-^ K
+! SAL G K
+! SAL HEAD- E
+! SAL HE(LMNRST)-3^ E
+! SAL HE(LMN)-1 E
+! SAL HEUR1$ ÖR
+! SAL H^ _
+! SAL IEC$ IZ
+! SAL IEI-3 _
+! SAL IELL3 IEL
+! SAL IENNE$ IN
+! SAL IERRE$ IER
+! SAL IETTE$ IT
+! SAL IEU IÖ
+! SAL IE<4 I
+! SAL IGHT3$ EIT
+! SAL IGNI(EO)- INI
+! SAL IGN(AEOU)-$ INI
+! SAL IJ(AOU)- I
+! SAL IJ$ I
+! SAL IJ< EI
+! SAL IKOLE$ IKUL
+! SAL ILLAN(STZ)-- ILIA
+! SAL ILLAR(DT)-- ILIA
+! SAL INVER- INFE
+! SAL ITI(AÄOÖUÜ)- IZI
+! SAL IVIER$ IFIE
+! SAL I I
+! SAL JAVIE---<^ ZA
+! SAL JEAN^$ IA
+! SAL JEAN-^ IA
+! SAL JER-^ IE
+! SAL JE(LMNST)- IE
+! SAL JOR(GK)^$ IÖRK
+! SAL J I
+! SAL KC(ÄEIJ)- X
+! SAL KE(LMNRST)-3^ KE
+! SAL KH<^ K
+! SAL KIC$ KIZ
+! SAL KLE(LMNRST)-3^ KLE
+! SAL KOTELE-^ KUTL
+! SAL KREAT-^ KREA
+! SAL KST XT
+! SAL K(SßXZ) X
+! SAL KTI(AIOU)-3 XI
+! SAL KT(SßXZ) X
+! SAL K K
+! SAL LARVE- LARF
+! SAL LEAND-^ LEAN
+! SAL LEL- LE
+! SAL LE(MNRST)-3^ LE
+! SAL LETTE$ LET
+! SAL LFGNAG- LFKAN
+! SAL LIC$ LIZ
+! SAL LIVE^$ LEIF
+! SAL LUI(GS)-- LU
+! SAL L L
+! SAL MASSEU(RS)- NAZÖ
+! SAL MAURICE NURIZ
+! SAL MBH^$ MPH
+! SAL MB(SßZ)- N
+! SAL MC9^ NK
+! SAL MEMOIR-^ NENUA
+! SAL ME(LMNRST)-3^ NE
+! SAL MIGUEL NIKL
+! SAL MIKE^$ NEIK
+! SAL MN N
+! SAL MPJUTE- NPUT
+! SAL MP(SßZ)- N
+! SAL MP(BDJLMNPQRTVW)- NP
+! SAL M N
+! SAL NACH^^ NAK
+! SAL NADINE NATIN
+! SAL NAIV-- NA
+! SAL NAISE$ NEZE
+! SAL NCOISE$ ZUA
+! SAL NCOIS$ ZUA
+! SAL NEBEN^^ NEPN
+! SAL NE(LMNRST)-3^ NE
+! SAL NEN-3 NE
+! SAL NETTE$ NET
+! SAL NG(BDFJLMNPQRTVW)- NK
+! SAL NICHTS^^ NIX
+! SAL NICHT^^ NIKT
+! SAL NINE$ NIN
+! SAL NON^^ NUN
+! SAL NOT^^ NUT
+! SAL NTI(AIOU)-3 NZI
+! SAL NTIEL--3 NZI
+! SAL NYLON NEILUN
+! SAL ND(SßZ)$ NZ
+! SAL NT(SßZ)$ NZ
+! SAL ND'S$ NZ
+! SAL NT'S$ NZ
+! SAL NSTS$ NZ
+! SAL N N
+! SAL OBER^^ UPA
+! SAL OE2 Ö
+! SAL OGNIE- UNI
+! SAL OGN(AEOU)-$ UNI
+! SAL OIE$ Ö
+! SAL OIR$ UAR
+! SAL OIX UA
+! SAL OI<3 EU
+! SAL OJ(AÄEIOÖUÜ)-- U
+! SAL OKAY^$ UKE
+! SAL OLYN$ ULIN
+! SAL OTI(AÄOÖUÜ)- UZI
+! SAL OUI^ FI
+! SAL OUILLE$ ULIE
+! SAL OU(DT)-^ AU
+! SAL OUSE$ AUZ
+! SAL OUT- AU
+! SAL OU U
+! SAL OWS$ UZ
+! SAL OY(AÄEIOÖUÜ)-- U
+! SAL O(JY)< EU
+! SAL O U
+! SAL PATIEN--^ PAZI
+! SAL PENSIO-^ PANZI
+! SAL PE(LMNRST)-3^ PE
+! SAL PFER-^ FE
+! SAL P(FH)< F
+! SAL POLY^^ PULI
+! SAL PORTRAIT7 PURTRE
+! SAL PP(FH)--< P
+! SAL PP- _
+! SAL PRIX^$ PRI
+! SAL P(SßZ)^ Z
+! SAL PTI(AÄOÖUÜ)-3 PZI
+! SAL PIC^$ PIK
+! SAL P P
+! SAL QUE(LMNRST)-3 KFE
+! SAL QUE$ K
+! SAL QUI(NS)$ KI
+! SAL QU KF
+! SAL Q< K
+! SAL RCH RK
+! SAL RECHERCH^ REZAZ
+! SAL RER$ RA
+! SAL RE(MNR)-4 RE
+! SAL RETTE$ RET
+! SAL RH<^ R
+! SAL RJA(MN)-- RI
+! SAL RTI(AÄOÖUÜ)-3 RZI
+! SAL RY(KN)-$ RI
+! SAL R R
+! SAL SAFE^$ ZEIF
+! SAL SAUCE-^ ZUZ
+! SAL SCHSCH---7 _
+! SAL SCHTSCH Z
+! SAL SC(HZ)< Z
+! SAL SC ZK
+! SAL SELBSTST--7^^ ZELP
+! SAL SELBST7^^ ZELPZT
+! SAL SERVICE7^ ZÖRFIZ
+! SAL SE(LMNRST)-3^ ZE
+! SAL SETTE$ ZET
+! SAL SHP-^ Z
+! SAL SHST ZT
+! SAL SHTSH Z
+! SAL SHT Z
+! SAL SH3 Z
+! SAL SIEGLI-^ ZIKL
+! SAL SIGLI-^ ZIKL
+! SAL SIGHT ZEIT
+! SAL SIGN ZEIN
+! SAL SKI(NPZ)- ZKI
+! SAL SKI<^ ZI
+! SAL SOUND- ZAUN
+! SAL STAATS^^ ZTAZ
+! SAL STADT^^ ZTAT
+! SAL START^^ ZTART
+! SAL STAURANT7 ZTURAN
+! SAL STEAK- ZTE
+! SAL STRAF^^ ZTRAF
+! SAL ST'S$ Z
+! SAL STST-- _
+! SAL STS(ACEHIOUÄÜÖ)-- ZT
+! SAL ST(SZ) Z
+! SAL STYN(AE)-$ ZTIN
+! SAL ST ZT
+! SAL SZE(NPT)-^ ZE
+! SAL SZI(ELN)-^ ZI
+! SAL SZCZ< Z
+! SAL SZT< ZT
+! SAL SZ<3 Z
+! SAL S Z
+! SAL T'S3$ Z
+! SAL TCH Z
+! SAL TEAT-^ TEA
+! SAL TE(LMNRST)-3^ TE
+! SAL TH< T
+! SAL TIC$ TIZ
+! SAL TOAS-^ TU
+! SAL TOILET- TULE
+! SAL TOIN- TUA
+! SAL TRAINI- TREN
+! SAL TSCH Z
+! SAL TSH Z
+! SAL TST ZT
+! SAL T(Sß) Z
+! SAL TT(SZ)--< _
+! SAL TT9 T
+! SAL TZ- _
+! SAL T T
+! SAL UEBER^^ IPA
+! SAL UE2 I
+! SAL UIE$ I
+! SAL UM^^ UN
+! SAL UNTERE-- UNTE
+! SAL UNTER^^ UNTA
+! SAL UNVER^^ UNFA
+! SAL UN^^ UN
+! SAL UTI(AÄOÖUÜ)- UZI
+! SAL U U
+! SAL VACL-^ FAZ
+! SAL VAC$ FAZ
+! SAL VEDD-^ FE
+! SAL VEREIN FAEIN
+! SAL VERSEN^ FAZN
+! SAL VER^^ FA
+! SAL VER FA
+! SAL VET(HT)-^ FET
+! SAL VETTE$ FET
+! SAL VIC$ FIZ
+! SAL VIEL FIL
+! SAL VIEW FIU
+! SAL VOR^^ FUR
+! SAL VY9^ FI
+! SAL V< F
+! SAL WE(LMNRST)-3^ FE
+! SAL WIC$ FIZ
+! SAL WIEDER^^ FITA
+! SAL WY9^ FI
+! SAL W F
+! SAL XE(LMNRST)-3^ XE
+! SAL X<^ Z
+! SAL X(CSZ) X
+! SAL XTS(CH)-- XT
+! SAL XT(SZ) Z
+! SAL X X
+! SAL YE(LMNRST)-3^ IE
+! SAL YE-3 I
+! SAL YOR(GK)^$ IÖRK
+! SAL Y(AOU)-<7 I
+! SAL YVES^$ IF
+! SAL YVONNE^$ IFUN
+! SAL Y I
+! SAL ZC(AOU)- ZK
+! SAL ZE(LMNRST)-3^ ZE
+! SAL ZH< Z
+! SAL ZS(CHT)-- _
+! SAL ZS Z
+! SAL ZUERST ZUERZT
+! SAL ZURÜCK^^ ZURIK
+! SAL ZUVER^^ ZUFA # x
+! SAL Z Z
diff --git a/runtime/spell/de/de_AT.diff b/runtime/spell/de/de_AT.diff
new file mode 100644
index 0000000..42494fe
--- /dev/null
+++ b/runtime/spell/de/de_AT.diff
@@ -0,0 +1,573 @@
+*** de_AT.orig.aff 2019-01-19 19:16:46.616026157 +0100
+--- de_AT.aff 2019-01-19 19:24:24.524983269 +0100
+***************
+*** 15,16 ****
+--- 15,47 ----
+
++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++
++ MIDWORD '
++
++ MAP 9
++ MAP aàáâãäå
++ MAP eèéêë
++ MAP iìíîï
++ MAP oòóôõö
++ MAP uùúûü
++ MAP nñ
++ MAP cç
++ MAP yÿý
++ MAP sß
++
++ COMPOUNDRULE xy?z
++ #COMPOUNDBEGIN x
++ #COMPOUNDMIDDLE y
++ #COMPOUNDEND z
++
++ # Prefixes are allowed at the beginning of compounds,
++ # suffixes are allowed at the end of compounds by default:
++ # (prefix)?(root)+(affix)?
++ # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
++ COMPOUNDPERMITFLAG c
++
++ ONLYINCOMPOUND o
++
++
+ PFX U Y 1
+***************
+*** 538,553 ****
+
+-
+- COMPOUNDBEGIN x
+- COMPOUNDMIDDLE y
+- COMPOUNDEND z
+ FORBIDDENWORD d
+
+- # Prefixes are allowed at the beginning of compounds,
+- # suffixes are allowed at the end of compounds by default:
+- # (prefix)?(root)+(affix)?
+- # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
+- COMPOUNDPERMITFLAG c
+-
+- ONLYINCOMPOUND o
+-
+ # my PSEUDOROOT h(elper) flag
+--- 569,572 ----
+***************
+*** 571,573 ****
+
+! WORDCHARS ß-.
+
+--- 590,592 ----
+
+! # WORDCHARS ß-.
+
+***************
+*** 725,729 ****
+ # So enabling this is the lesser evil. No perfect solution found so far...
+! BREAK 2
+! BREAK -
+! BREAK .
+!
+--- 744,1242 ----
+ # So enabling this is the lesser evil. No perfect solution found so far...
+! # BREAK 2
+! # BREAK -
+! # BREAK .
+!
+! # German phonetic transformation rules for use with Aspell
+! # Copyright (C) 2000 Björn Jacke
+! #
+! # This library is free software; you can redistribute it and/or
+! # modify it under the terms of the GNU Lesser General Public
+! # License version 2.1 as published by the Free Software Foundation;
+! #
+! # This library is distributed in the hope that it will be useful,
+! # but WITHOUT ANY WARRANTY; without even the implied warranty of
+! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+! # Lesser General Public License for more details.
+! #
+! # You should have received a copy of the GNU Lesser General Public
+! # License along with this library; if not, write to the Free Software
+! # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+! #
+! # Björn Jacke may be reached by email at bjoern.jacke@gmx.de
+! #
+! # Changelog:
+! #
+! # 2000-01-05 Björn Jacke <bjoern.jacke@gmx.de>
+! # Initial Release
+! # 2000-01-07 Kevin Atkinson <kevinatk@home.com>
+! # Converted from header to data file.
+! SAL followup 1
+! SAL collapse_result 1
+!
+! SAL ÄER- E
+! SAL ÄU< EU
+! SAL Ä< E
+! SAL É E
+! SAL ÖER- Ö
+! SAL Ö Ö
+! SAL ÜBER^^ IPA
+! SAL ÜER- I
+! SAL Ü I
+! SAL ß Z
+! SAL ABELLE$ APL
+! SAL ABELL$ APL
+! SAL ABIENNE$ APIN
+! SAL ACEY$ AZI
+! SAL AEU< EU
+! SAL AE2 E
+! SAL AGNI-^ AKN
+! SAL AGNIE- ANI
+! SAL AGN(AEOU)-$ ANI
+! SAL AIA2 AIA
+! SAL AIE$ E
+! SAL AILL(EOU)- ALI
+! SAL AINE$ EN
+! SAL AIRE$ ER
+! SAL AIR- E
+! SAL AISE$ EZ
+! SAL AISSANCE$ EZANZ
+! SAL AISSE$ EZ
+! SAL AIX$ EX
+! SAL AJ(AÄEIOÖUÜ)-- A
+! SAL AKTIE AXIE
+! SAL ALO(IY)^ ALUI
+! SAL AMATEU(RS)- ANATÖ
+! SAL ANIELLE$ ANIL
+! SAL ANTI^^ ANTI
+! SAL ANVER^^ ANFA
+! SAL ATIA$ ATIA
+! SAL ATIA(NS)-- ATI
+! SAL ATI(AÄOÖUÜ)- AZI
+! SAL AUAU-- _
+! SAL AUER< AUA
+! SAL AUF^^ AUF
+! SAL AULT$ U
+! SAL AUSSE$ UZ
+! SAL AUS(ST)-^ AUZ
+! SAL AUS^^ AUZ
+! SAL AUTO^^ AUTU
+! SAL AUX(IY)- AUX
+! SAL AUX U
+! SAL AU AU
+! SAL AVIER$ AFIE
+! SAL AYER--< EI
+! SAL AY(AÄEIOÖUÜ)-- A
+! SAL A(IJY)< EI
+! SAL A A
+! SAL BEA(BCMNRU)-^ PEA
+! SAL BEAT(AEIMORU)-^ PEAT
+! SAL BEIGE^$ PEZ
+! SAL BE(LMNRST)-^ PE
+! SAL BETTE$ PET
+! SAL BIC$ PIZ
+! SAL BOWL(EI)- PUL
+! SAL BP(AÄEIOÖRUÜY)- P
+! SAL BUDGET7 PIKE
+! SAL BUFFET7 PIFE
+! SAL BYLLE$ PILE
+! SAL BYLL$ PIL
+! SAL BYTE< PEIT
+! SAL B P
+! SAL CÄ- Z
+! SAL CÜ$ ZI
+! SAL CACH(EI)-^ KEZ
+! SAL CAE-- Z
+! SAL CA(IY)$ ZEI
+! SAL CCH Z
+! SAL CCE- X
+! SAL CE(EIJUY)-- Z
+! SAL CENT< ZENT
+! SAL CERST(EI)----^ KE
+! SAL CER$ ZA
+! SAL CE3 ZE
+! SAL CHAO(ST)- KAU
+! SAL CHAMPIO-^ ZENPI
+! SAL CHAR(AI)-^ KAR
+! SAL CHAU(CDFSVWXZ)- ZU
+! SAL CHE(CF)- ZE
+! SAL CHEM-^ KE
+! SAL CHEQUE< ZEK
+! SAL CHI(CFGPVW)- ZI
+! SAL CH(AEUY)-<^ Z
+! SAL CHK- _
+! SAL CH(LOR)-<^ K
+! SAL CHST- X
+! SAL CH(SßXZ)3 X
+! SAL CH K
+! SAL CIER$ ZIE
+! SAL CYB-^ ZEI
+! SAL CY9^ ZI
+! SAL C(IJY)-3 Z
+! SAL CKST XT
+! SAL CK(SßXZ)3 X
+! SAL C(CK)- _
+! SAL CLAUDET--- KLU
+! SAL CLAUDINE^$ KLUTIN
+! SAL COLE$ KUL
+! SAL COUCH KAUZ
+! SAL CQUES$ K
+! SAL CQUE K
+! SAL CREAT-^ KREA
+! SAL CST XT
+! SAL CS<^ Z
+! SAL C(SßX) X
+! SAL CT(SßXZ) X
+! SAL CZ< Z
+! SAL C< K
+! SAL D'H^ T
+! SAL D'S3$ Z
+! SAL DAVO(NR)-^$ TAFU
+! SAL DD(SZ)--< _
+! SAL DEPOT7 TEPU
+! SAL DESIGN TIZEIN
+! SAL DE(LMNRST)-3^ TE
+! SAL DETTE$ TET
+! SAL DIC$ TIZ
+! SAL DJ(AEIOU)-^ I
+! SAL DS(CH)--< T
+! SAL DST ZT
+! SAL DT- _
+! SAL DUIS-^ TI
+! SAL DURCH^^ TURK
+! SAL DZS(CH)-- T
+! SAL D(SßZ) Z
+! SAL D T
+! SAL EAULT$ U
+! SAL EAUX$ U
+! SAL EAU U
+! SAL EAV IF
+! SAL EA(AÄEIOÖÜY)-3 EA
+! SAL EA3$ EA
+! SAL EA3 I
+! SAL EBEN^^ EPN
+! SAL EE9 E
+! SAL EIEI-- _
+! SAL EIH-- E
+! SAL EILLE$ EI
+! SAL EI EI
+! SAL EJ$ EI
+! SAL EL-^ E
+! SAL EL(DKL)--1 E
+! SAL EL(MNT)--1$ E
+! SAL ELYNE$ ELINE
+! SAL ELYN$ ELIN
+! SAL EL(AÄEIOÖUÜY)-1 EL
+! SAL EL-1 L
+! SAL EM-^ E
+! SAL EM(DFKMPQT)--1 E
+! SAL EM(AÄEIOÖUÜY)--1 E
+! SAL EM-1 N
+! SAL EN-^ E
+! SAL EN(CDGKQT)--1 E
+! SAL ENZ(AEIOUY)--1 EN
+! SAL EN(AÄEINOÖUÜY)-1 EN
+! SAL EN-<1 N
+! SAL ERH(AÄEIOÖUÜ)-^ ER
+! SAL ER-^ E
+! SAL ER(AÄEIOÖUÜY)-1 A
+! SAL ER1$ A
+! SAL ER<1 A
+! SAL ETI(AÄOÖÜU)- EZI
+! SAL EUEU-- _
+! SAL EUILLE$ Ö
+! SAL EUR$ ÖR
+! SAL EUX Ö
+! SAL EUYS$ EUZ
+! SAL EU EU
+! SAL EYER< EIA
+! SAL EY< EI
+! SAL E E
+! SAL FANS--^$ FE
+! SAL FAN-^$ FE
+! SAL FAULT- FUL
+! SAL FEE(DL)- FI
+! SAL FEHLER FELA
+! SAL FE(LMNRST)-3^ FE
+! SAL FOND7 FUN
+! SAL FRAIN$ FRA
+! SAL FRISEU(RS)- FRIZÖ # x
+! SAL F F
+! SAL G'S$ X
+! SAL GAGS^$ KEX
+! SAL GAG^$ KEK
+! SAL GD KT
+! SAL GEGEN^^ KEKN
+! SAL GE(LMNRST)-3^ KE
+! SAL GETTE$ KET
+! SAL G(CK)- _
+! SAL GG- _
+! SAL GI(AO)-^ I
+! SAL GION$ KIUN
+! SAL GIUS-^ IU
+! SAL GMBH^$ GMPH
+! SAL GNAC$ NIAK
+! SAL GNON$ NIUN
+! SAL GN$ N
+! SAL GONCAL-^ KUNZA
+! SAL GS(CH)-- K
+! SAL GST XT
+! SAL G(SßXZ) X
+! SAL GUCK- KU
+! SAL GUI-^ K
+! SAL G K
+! SAL HEAD- E
+! SAL HE(LMNRST)-3^ E
+! SAL HE(LMN)-1 E
+! SAL HEUR1$ ÖR
+! SAL H^ _
+! SAL IEC$ IZ
+! SAL IEI-3 _
+! SAL IELL3 IEL
+! SAL IENNE$ IN
+! SAL IERRE$ IER
+! SAL IETTE$ IT
+! SAL IEU IÖ
+! SAL IE<4 I
+! SAL IGHT3$ EIT
+! SAL IGNI(EO)- INI
+! SAL IGN(AEOU)-$ INI
+! SAL IJ(AOU)- I
+! SAL IJ$ I
+! SAL IJ< EI
+! SAL IKOLE$ IKUL
+! SAL ILLAN(STZ)-- ILIA
+! SAL ILLAR(DT)-- ILIA
+! SAL INVER- INFE
+! SAL ITI(AÄOÖUÜ)- IZI
+! SAL IVIER$ IFIE
+! SAL I I
+! SAL JAVIE---<^ ZA
+! SAL JEAN^$ IA
+! SAL JEAN-^ IA
+! SAL JER-^ IE
+! SAL JE(LMNST)- IE
+! SAL JOR(GK)^$ IÖRK
+! SAL J I
+! SAL KC(ÄEIJ)- X
+! SAL KE(LMNRST)-3^ KE
+! SAL KH<^ K
+! SAL KIC$ KIZ
+! SAL KLE(LMNRST)-3^ KLE
+! SAL KOTELE-^ KUTL
+! SAL KREAT-^ KREA
+! SAL KST XT
+! SAL K(SßXZ) X
+! SAL KTI(AIOU)-3 XI
+! SAL KT(SßXZ) X
+! SAL K K
+! SAL LARVE- LARF
+! SAL LEAND-^ LEAN
+! SAL LEL- LE
+! SAL LE(MNRST)-3^ LE
+! SAL LETTE$ LET
+! SAL LFGNAG- LFKAN
+! SAL LIC$ LIZ
+! SAL LIVE^$ LEIF
+! SAL LUI(GS)-- LU
+! SAL L L
+! SAL MASSEU(RS)- NAZÖ
+! SAL MAURICE NURIZ
+! SAL MBH^$ MPH
+! SAL MB(SßZ)- N
+! SAL MC9^ NK
+! SAL MEMOIR-^ NENUA
+! SAL ME(LMNRST)-3^ NE
+! SAL MIGUEL NIKL
+! SAL MIKE^$ NEIK
+! SAL MN N
+! SAL MPJUTE- NPUT
+! SAL MP(SßZ)- N
+! SAL MP(BDJLMNPQRTVW)- NP
+! SAL M N
+! SAL NACH^^ NAK
+! SAL NADINE NATIN
+! SAL NAIV-- NA
+! SAL NAISE$ NEZE
+! SAL NCOISE$ ZUA
+! SAL NCOIS$ ZUA
+! SAL NEBEN^^ NEPN
+! SAL NE(LMNRST)-3^ NE
+! SAL NEN-3 NE
+! SAL NETTE$ NET
+! SAL NG(BDFJLMNPQRTVW)- NK
+! SAL NICHTS^^ NIX
+! SAL NICHT^^ NIKT
+! SAL NINE$ NIN
+! SAL NON^^ NUN
+! SAL NOT^^ NUT
+! SAL NTI(AIOU)-3 NZI
+! SAL NTIEL--3 NZI
+! SAL NYLON NEILUN
+! SAL ND(SßZ)$ NZ
+! SAL NT(SßZ)$ NZ
+! SAL ND'S$ NZ
+! SAL NT'S$ NZ
+! SAL NSTS$ NZ
+! SAL N N
+! SAL OBER^^ UPA
+! SAL OE2 Ö
+! SAL OGNIE- UNI
+! SAL OGN(AEOU)-$ UNI
+! SAL OIE$ Ö
+! SAL OIR$ UAR
+! SAL OIX UA
+! SAL OI<3 EU
+! SAL OJ(AÄEIOÖUÜ)-- U
+! SAL OKAY^$ UKE
+! SAL OLYN$ ULIN
+! SAL OTI(AÄOÖUÜ)- UZI
+! SAL OUI^ FI
+! SAL OUILLE$ ULIE
+! SAL OU(DT)-^ AU
+! SAL OUSE$ AUZ
+! SAL OUT- AU
+! SAL OU U
+! SAL OWS$ UZ
+! SAL OY(AÄEIOÖUÜ)-- U
+! SAL O(JY)< EU
+! SAL O U
+! SAL PATIEN--^ PAZI
+! SAL PENSIO-^ PANZI
+! SAL PE(LMNRST)-3^ PE
+! SAL PFER-^ FE
+! SAL P(FH)< F
+! SAL POLY^^ PULI
+! SAL PORTRAIT7 PURTRE
+! SAL PP(FH)--< P
+! SAL PP- _
+! SAL PRIX^$ PRI
+! SAL P(SßZ)^ Z
+! SAL PTI(AÄOÖUÜ)-3 PZI
+! SAL PIC^$ PIK
+! SAL P P
+! SAL QUE(LMNRST)-3 KFE
+! SAL QUE$ K
+! SAL QUI(NS)$ KI
+! SAL QU KF
+! SAL Q< K
+! SAL RCH RK
+! SAL RECHERCH^ REZAZ
+! SAL RER$ RA
+! SAL RE(MNR)-4 RE
+! SAL RETTE$ RET
+! SAL RH<^ R
+! SAL RJA(MN)-- RI
+! SAL RTI(AÄOÖUÜ)-3 RZI
+! SAL RY(KN)-$ RI
+! SAL R R
+! SAL SAFE^$ ZEIF
+! SAL SAUCE-^ ZUZ
+! SAL SCHSCH---7 _
+! SAL SCHTSCH Z
+! SAL SC(HZ)< Z
+! SAL SC ZK
+! SAL SELBSTST--7^^ ZELP
+! SAL SELBST7^^ ZELPZT
+! SAL SERVICE7^ ZÖRFIZ
+! SAL SE(LMNRST)-3^ ZE
+! SAL SETTE$ ZET
+! SAL SHP-^ Z
+! SAL SHST ZT
+! SAL SHTSH Z
+! SAL SHT Z
+! SAL SH3 Z
+! SAL SIEGLI-^ ZIKL
+! SAL SIGLI-^ ZIKL
+! SAL SIGHT ZEIT
+! SAL SIGN ZEIN
+! SAL SKI(NPZ)- ZKI
+! SAL SKI<^ ZI
+! SAL SOUND- ZAUN
+! SAL STAATS^^ ZTAZ
+! SAL STADT^^ ZTAT
+! SAL START^^ ZTART
+! SAL STAURANT7 ZTURAN
+! SAL STEAK- ZTE
+! SAL STRAF^^ ZTRAF
+! SAL ST'S$ Z
+! SAL STST-- _
+! SAL STS(ACEHIOUÄÜÖ)-- ZT
+! SAL ST(SZ) Z
+! SAL STYN(AE)-$ ZTIN
+! SAL ST ZT
+! SAL SZE(NPT)-^ ZE
+! SAL SZI(ELN)-^ ZI
+! SAL SZCZ< Z
+! SAL SZT< ZT
+! SAL SZ<3 Z
+! SAL S Z
+! SAL T'S3$ Z
+! SAL TCH Z
+! SAL TEAT-^ TEA
+! SAL TE(LMNRST)-3^ TE
+! SAL TH< T
+! SAL TIC$ TIZ
+! SAL TOAS-^ TU
+! SAL TOILET- TULE
+! SAL TOIN- TUA
+! SAL TRAINI- TREN
+! SAL TSCH Z
+! SAL TSH Z
+! SAL TST ZT
+! SAL T(Sß) Z
+! SAL TT(SZ)--< _
+! SAL TT9 T
+! SAL TZ- _
+! SAL T T
+! SAL UEBER^^ IPA
+! SAL UE2 I
+! SAL UIE$ I
+! SAL UM^^ UN
+! SAL UNTERE-- UNTE
+! SAL UNTER^^ UNTA
+! SAL UNVER^^ UNFA
+! SAL UN^^ UN
+! SAL UTI(AÄOÖUÜ)- UZI
+! SAL U U
+! SAL VACL-^ FAZ
+! SAL VAC$ FAZ
+! SAL VEDD-^ FE
+! SAL VEREIN FAEIN
+! SAL VERSEN^ FAZN
+! SAL VER^^ FA
+! SAL VER FA
+! SAL VET(HT)-^ FET
+! SAL VETTE$ FET
+! SAL VIC$ FIZ
+! SAL VIEL FIL
+! SAL VIEW FIU
+! SAL VOR^^ FUR
+! SAL VY9^ FI
+! SAL V< F
+! SAL WE(LMNRST)-3^ FE
+! SAL WIC$ FIZ
+! SAL WIEDER^^ FITA
+! SAL WY9^ FI
+! SAL W F
+! SAL XE(LMNRST)-3^ XE
+! SAL X<^ Z
+! SAL X(CSZ) X
+! SAL XTS(CH)-- XT
+! SAL XT(SZ) Z
+! SAL X X
+! SAL YE(LMNRST)-3^ IE
+! SAL YE-3 I
+! SAL YOR(GK)^$ IÖRK
+! SAL Y(AOU)-<7 I
+! SAL YVES^$ IF
+! SAL YVONNE^$ IFUN
+! SAL Y I
+! SAL ZC(AOU)- ZK
+! SAL ZE(LMNRST)-3^ ZE
+! SAL ZH< Z
+! SAL ZS(CHT)-- _
+! SAL ZS Z
+! SAL ZUERST ZUERZT
+! SAL ZURÜCK^^ ZURIK
+! SAL ZUVER^^ ZUFA # x
+! SAL Z Z
diff --git a/runtime/spell/de/de_CH.diff b/runtime/spell/de/de_CH.diff
new file mode 100644
index 0000000..2bf25a2
--- /dev/null
+++ b/runtime/spell/de/de_CH.diff
@@ -0,0 +1,574 @@
+*** de_CH.orig.aff 2019-01-19 18:45:30.400494173 +0100
+--- de_CH.aff 2019-01-19 19:24:48.064826847 +0100
+***************
+*** 15,16 ****
+--- 15,48 ----
+
++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++
++ MIDWORD '
++
++ MAP 9
++ MAP aàáâãäå
++ MAP eèéêë
++ MAP iìíîï
++ MAP oòóôõö
++ MAP uùúûü
++ MAP nñ
++ MAP cç
++ MAP yÿý
++ MAP sß
++
++
++ COMPOUNDRULE xy?z
++ #COMPOUNDBEGIN x
++ #COMPOUNDMIDDLE y
++ #COMPOUNDEND z
++
++ # Prefixes are allowed at the beginning of compounds,
++ # suffixes are allowed at the end of compounds by default:
++ # (prefix)?(root)+(affix)?
++ # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
++ COMPOUNDPERMITFLAG c
++
++ ONLYINCOMPOUND o
++
++
+ PFX U Y 1
+***************
+*** 538,553 ****
+
+-
+- COMPOUNDBEGIN x
+- COMPOUNDMIDDLE y
+- COMPOUNDEND z
+ FORBIDDENWORD d
+
+- # Prefixes are allowed at the beginning of compounds,
+- # suffixes are allowed at the end of compounds by default:
+- # (prefix)?(root)+(affix)?
+- # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
+- COMPOUNDPERMITFLAG c
+-
+- ONLYINCOMPOUND o
+-
+ # my PSEUDOROOT h(elper) flag
+--- 570,573 ----
+***************
+*** 571,573 ****
+
+! WORDCHARS ß-.
+
+--- 591,593 ----
+
+! # WORDCHARS ß-.
+
+***************
+*** 725,729 ****
+ # So enabling this is the lesser evil. No perfect solution found so far...
+! BREAK 2
+! BREAK -
+! BREAK .
+!
+--- 745,1243 ----
+ # So enabling this is the lesser evil. No perfect solution found so far...
+! # BREAK 2
+! # BREAK -
+! # BREAK .
+!
+! # German phonetic transformation rules for use with Aspell
+! # Copyright (C) 2000 Björn Jacke
+! #
+! # This library is free software; you can redistribute it and/or
+! # modify it under the terms of the GNU Lesser General Public
+! # License version 2.1 as published by the Free Software Foundation;
+! #
+! # This library is distributed in the hope that it will be useful,
+! # but WITHOUT ANY WARRANTY; without even the implied warranty of
+! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+! # Lesser General Public License for more details.
+! #
+! # You should have received a copy of the GNU Lesser General Public
+! # License along with this library; if not, write to the Free Software
+! # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+! #
+! # Björn Jacke may be reached by email at bjoern.jacke@gmx.de
+! #
+! # Changelog:
+! #
+! # 2000-01-05 Björn Jacke <bjoern.jacke@gmx.de>
+! # Initial Release
+! # 2000-01-07 Kevin Atkinson <kevinatk@home.com>
+! # Converted from header to data file.
+! SAL followup 1
+! SAL collapse_result 1
+!
+! SAL ÄER- E
+! SAL ÄU< EU
+! SAL Ä< E
+! SAL É E
+! SAL ÖER- Ö
+! SAL Ö Ö
+! SAL ÜBER^^ IPA
+! SAL ÜER- I
+! SAL Ü I
+! SAL ß Z
+! SAL ABELLE$ APL
+! SAL ABELL$ APL
+! SAL ABIENNE$ APIN
+! SAL ACEY$ AZI
+! SAL AEU< EU
+! SAL AE2 E
+! SAL AGNI-^ AKN
+! SAL AGNIE- ANI
+! SAL AGN(AEOU)-$ ANI
+! SAL AIA2 AIA
+! SAL AIE$ E
+! SAL AILL(EOU)- ALI
+! SAL AINE$ EN
+! SAL AIRE$ ER
+! SAL AIR- E
+! SAL AISE$ EZ
+! SAL AISSANCE$ EZANZ
+! SAL AISSE$ EZ
+! SAL AIX$ EX
+! SAL AJ(AÄEIOÖUÜ)-- A
+! SAL AKTIE AXIE
+! SAL ALO(IY)^ ALUI
+! SAL AMATEU(RS)- ANATÖ
+! SAL ANIELLE$ ANIL
+! SAL ANTI^^ ANTI
+! SAL ANVER^^ ANFA
+! SAL ATIA$ ATIA
+! SAL ATIA(NS)-- ATI
+! SAL ATI(AÄOÖUÜ)- AZI
+! SAL AUAU-- _
+! SAL AUER< AUA
+! SAL AUF^^ AUF
+! SAL AULT$ U
+! SAL AUSSE$ UZ
+! SAL AUS(ST)-^ AUZ
+! SAL AUS^^ AUZ
+! SAL AUTO^^ AUTU
+! SAL AUX(IY)- AUX
+! SAL AUX U
+! SAL AU AU
+! SAL AVIER$ AFIE
+! SAL AYER--< EI
+! SAL AY(AÄEIOÖUÜ)-- A
+! SAL A(IJY)< EI
+! SAL A A
+! SAL BEA(BCMNRU)-^ PEA
+! SAL BEAT(AEIMORU)-^ PEAT
+! SAL BEIGE^$ PEZ
+! SAL BE(LMNRST)-^ PE
+! SAL BETTE$ PET
+! SAL BIC$ PIZ
+! SAL BOWL(EI)- PUL
+! SAL BP(AÄEIOÖRUÜY)- P
+! SAL BUDGET7 PIKE
+! SAL BUFFET7 PIFE
+! SAL BYLLE$ PILE
+! SAL BYLL$ PIL
+! SAL BYTE< PEIT
+! SAL B P
+! SAL CÄ- Z
+! SAL CÜ$ ZI
+! SAL CACH(EI)-^ KEZ
+! SAL CAE-- Z
+! SAL CA(IY)$ ZEI
+! SAL CCH Z
+! SAL CCE- X
+! SAL CE(EIJUY)-- Z
+! SAL CENT< ZENT
+! SAL CERST(EI)----^ KE
+! SAL CER$ ZA
+! SAL CE3 ZE
+! SAL CHAO(ST)- KAU
+! SAL CHAMPIO-^ ZENPI
+! SAL CHAR(AI)-^ KAR
+! SAL CHAU(CDFSVWXZ)- ZU
+! SAL CHE(CF)- ZE
+! SAL CHEM-^ KE
+! SAL CHEQUE< ZEK
+! SAL CHI(CFGPVW)- ZI
+! SAL CH(AEUY)-<^ Z
+! SAL CHK- _
+! SAL CH(LOR)-<^ K
+! SAL CHST- X
+! SAL CH(SßXZ)3 X
+! SAL CH K
+! SAL CIER$ ZIE
+! SAL CYB-^ ZEI
+! SAL CY9^ ZI
+! SAL C(IJY)-3 Z
+! SAL CKST XT
+! SAL CK(SßXZ)3 X
+! SAL C(CK)- _
+! SAL CLAUDET--- KLU
+! SAL CLAUDINE^$ KLUTIN
+! SAL COLE$ KUL
+! SAL COUCH KAUZ
+! SAL CQUES$ K
+! SAL CQUE K
+! SAL CREAT-^ KREA
+! SAL CST XT
+! SAL CS<^ Z
+! SAL C(SßX) X
+! SAL CT(SßXZ) X
+! SAL CZ< Z
+! SAL C< K
+! SAL D'H^ T
+! SAL D'S3$ Z
+! SAL DAVO(NR)-^$ TAFU
+! SAL DD(SZ)--< _
+! SAL DEPOT7 TEPU
+! SAL DESIGN TIZEIN
+! SAL DE(LMNRST)-3^ TE
+! SAL DETTE$ TET
+! SAL DIC$ TIZ
+! SAL DJ(AEIOU)-^ I
+! SAL DS(CH)--< T
+! SAL DST ZT
+! SAL DT- _
+! SAL DUIS-^ TI
+! SAL DURCH^^ TURK
+! SAL DZS(CH)-- T
+! SAL D(SßZ) Z
+! SAL D T
+! SAL EAULT$ U
+! SAL EAUX$ U
+! SAL EAU U
+! SAL EAV IF
+! SAL EA(AÄEIOÖÜY)-3 EA
+! SAL EA3$ EA
+! SAL EA3 I
+! SAL EBEN^^ EPN
+! SAL EE9 E
+! SAL EIEI-- _
+! SAL EIH-- E
+! SAL EILLE$ EI
+! SAL EI EI
+! SAL EJ$ EI
+! SAL EL-^ E
+! SAL EL(DKL)--1 E
+! SAL EL(MNT)--1$ E
+! SAL ELYNE$ ELINE
+! SAL ELYN$ ELIN
+! SAL EL(AÄEIOÖUÜY)-1 EL
+! SAL EL-1 L
+! SAL EM-^ E
+! SAL EM(DFKMPQT)--1 E
+! SAL EM(AÄEIOÖUÜY)--1 E
+! SAL EM-1 N
+! SAL EN-^ E
+! SAL EN(CDGKQT)--1 E
+! SAL ENZ(AEIOUY)--1 EN
+! SAL EN(AÄEINOÖUÜY)-1 EN
+! SAL EN-<1 N
+! SAL ERH(AÄEIOÖUÜ)-^ ER
+! SAL ER-^ E
+! SAL ER(AÄEIOÖUÜY)-1 A
+! SAL ER1$ A
+! SAL ER<1 A
+! SAL ETI(AÄOÖÜU)- EZI
+! SAL EUEU-- _
+! SAL EUILLE$ Ö
+! SAL EUR$ ÖR
+! SAL EUX Ö
+! SAL EUYS$ EUZ
+! SAL EU EU
+! SAL EYER< EIA
+! SAL EY< EI
+! SAL E E
+! SAL FANS--^$ FE
+! SAL FAN-^$ FE
+! SAL FAULT- FUL
+! SAL FEE(DL)- FI
+! SAL FEHLER FELA
+! SAL FE(LMNRST)-3^ FE
+! SAL FOND7 FUN
+! SAL FRAIN$ FRA
+! SAL FRISEU(RS)- FRIZÖ # x
+! SAL F F
+! SAL G'S$ X
+! SAL GAGS^$ KEX
+! SAL GAG^$ KEK
+! SAL GD KT
+! SAL GEGEN^^ KEKN
+! SAL GE(LMNRST)-3^ KE
+! SAL GETTE$ KET
+! SAL G(CK)- _
+! SAL GG- _
+! SAL GI(AO)-^ I
+! SAL GION$ KIUN
+! SAL GIUS-^ IU
+! SAL GMBH^$ GMPH
+! SAL GNAC$ NIAK
+! SAL GNON$ NIUN
+! SAL GN$ N
+! SAL GONCAL-^ KUNZA
+! SAL GS(CH)-- K
+! SAL GST XT
+! SAL G(SßXZ) X
+! SAL GUCK- KU
+! SAL GUI-^ K
+! SAL G K
+! SAL HEAD- E
+! SAL HE(LMNRST)-3^ E
+! SAL HE(LMN)-1 E
+! SAL HEUR1$ ÖR
+! SAL H^ _
+! SAL IEC$ IZ
+! SAL IEI-3 _
+! SAL IELL3 IEL
+! SAL IENNE$ IN
+! SAL IERRE$ IER
+! SAL IETTE$ IT
+! SAL IEU IÖ
+! SAL IE<4 I
+! SAL IGHT3$ EIT
+! SAL IGNI(EO)- INI
+! SAL IGN(AEOU)-$ INI
+! SAL IJ(AOU)- I
+! SAL IJ$ I
+! SAL IJ< EI
+! SAL IKOLE$ IKUL
+! SAL ILLAN(STZ)-- ILIA
+! SAL ILLAR(DT)-- ILIA
+! SAL INVER- INFE
+! SAL ITI(AÄOÖUÜ)- IZI
+! SAL IVIER$ IFIE
+! SAL I I
+! SAL JAVIE---<^ ZA
+! SAL JEAN^$ IA
+! SAL JEAN-^ IA
+! SAL JER-^ IE
+! SAL JE(LMNST)- IE
+! SAL JOR(GK)^$ IÖRK
+! SAL J I
+! SAL KC(ÄEIJ)- X
+! SAL KE(LMNRST)-3^ KE
+! SAL KH<^ K
+! SAL KIC$ KIZ
+! SAL KLE(LMNRST)-3^ KLE
+! SAL KOTELE-^ KUTL
+! SAL KREAT-^ KREA
+! SAL KST XT
+! SAL K(SßXZ) X
+! SAL KTI(AIOU)-3 XI
+! SAL KT(SßXZ) X
+! SAL K K
+! SAL LARVE- LARF
+! SAL LEAND-^ LEAN
+! SAL LEL- LE
+! SAL LE(MNRST)-3^ LE
+! SAL LETTE$ LET
+! SAL LFGNAG- LFKAN
+! SAL LIC$ LIZ
+! SAL LIVE^$ LEIF
+! SAL LUI(GS)-- LU
+! SAL L L
+! SAL MASSEU(RS)- NAZÖ
+! SAL MAURICE NURIZ
+! SAL MBH^$ MPH
+! SAL MB(SßZ)- N
+! SAL MC9^ NK
+! SAL MEMOIR-^ NENUA
+! SAL ME(LMNRST)-3^ NE
+! SAL MIGUEL NIKL
+! SAL MIKE^$ NEIK
+! SAL MN N
+! SAL MPJUTE- NPUT
+! SAL MP(SßZ)- N
+! SAL MP(BDJLMNPQRTVW)- NP
+! SAL M N
+! SAL NACH^^ NAK
+! SAL NADINE NATIN
+! SAL NAIV-- NA
+! SAL NAISE$ NEZE
+! SAL NCOISE$ ZUA
+! SAL NCOIS$ ZUA
+! SAL NEBEN^^ NEPN
+! SAL NE(LMNRST)-3^ NE
+! SAL NEN-3 NE
+! SAL NETTE$ NET
+! SAL NG(BDFJLMNPQRTVW)- NK
+! SAL NICHTS^^ NIX
+! SAL NICHT^^ NIKT
+! SAL NINE$ NIN
+! SAL NON^^ NUN
+! SAL NOT^^ NUT
+! SAL NTI(AIOU)-3 NZI
+! SAL NTIEL--3 NZI
+! SAL NYLON NEILUN
+! SAL ND(SßZ)$ NZ
+! SAL NT(SßZ)$ NZ
+! SAL ND'S$ NZ
+! SAL NT'S$ NZ
+! SAL NSTS$ NZ
+! SAL N N
+! SAL OBER^^ UPA
+! SAL OE2 Ö
+! SAL OGNIE- UNI
+! SAL OGN(AEOU)-$ UNI
+! SAL OIE$ Ö
+! SAL OIR$ UAR
+! SAL OIX UA
+! SAL OI<3 EU
+! SAL OJ(AÄEIOÖUÜ)-- U
+! SAL OKAY^$ UKE
+! SAL OLYN$ ULIN
+! SAL OTI(AÄOÖUÜ)- UZI
+! SAL OUI^ FI
+! SAL OUILLE$ ULIE
+! SAL OU(DT)-^ AU
+! SAL OUSE$ AUZ
+! SAL OUT- AU
+! SAL OU U
+! SAL OWS$ UZ
+! SAL OY(AÄEIOÖUÜ)-- U
+! SAL O(JY)< EU
+! SAL O U
+! SAL PATIEN--^ PAZI
+! SAL PENSIO-^ PANZI
+! SAL PE(LMNRST)-3^ PE
+! SAL PFER-^ FE
+! SAL P(FH)< F
+! SAL POLY^^ PULI
+! SAL PORTRAIT7 PURTRE
+! SAL PP(FH)--< P
+! SAL PP- _
+! SAL PRIX^$ PRI
+! SAL P(SßZ)^ Z
+! SAL PTI(AÄOÖUÜ)-3 PZI
+! SAL PIC^$ PIK
+! SAL P P
+! SAL QUE(LMNRST)-3 KFE
+! SAL QUE$ K
+! SAL QUI(NS)$ KI
+! SAL QU KF
+! SAL Q< K
+! SAL RCH RK
+! SAL RECHERCH^ REZAZ
+! SAL RER$ RA
+! SAL RE(MNR)-4 RE
+! SAL RETTE$ RET
+! SAL RH<^ R
+! SAL RJA(MN)-- RI
+! SAL RTI(AÄOÖUÜ)-3 RZI
+! SAL RY(KN)-$ RI
+! SAL R R
+! SAL SAFE^$ ZEIF
+! SAL SAUCE-^ ZUZ
+! SAL SCHSCH---7 _
+! SAL SCHTSCH Z
+! SAL SC(HZ)< Z
+! SAL SC ZK
+! SAL SELBSTST--7^^ ZELP
+! SAL SELBST7^^ ZELPZT
+! SAL SERVICE7^ ZÖRFIZ
+! SAL SE(LMNRST)-3^ ZE
+! SAL SETTE$ ZET
+! SAL SHP-^ Z
+! SAL SHST ZT
+! SAL SHTSH Z
+! SAL SHT Z
+! SAL SH3 Z
+! SAL SIEGLI-^ ZIKL
+! SAL SIGLI-^ ZIKL
+! SAL SIGHT ZEIT
+! SAL SIGN ZEIN
+! SAL SKI(NPZ)- ZKI
+! SAL SKI<^ ZI
+! SAL SOUND- ZAUN
+! SAL STAATS^^ ZTAZ
+! SAL STADT^^ ZTAT
+! SAL START^^ ZTART
+! SAL STAURANT7 ZTURAN
+! SAL STEAK- ZTE
+! SAL STRAF^^ ZTRAF
+! SAL ST'S$ Z
+! SAL STST-- _
+! SAL STS(ACEHIOUÄÜÖ)-- ZT
+! SAL ST(SZ) Z
+! SAL STYN(AE)-$ ZTIN
+! SAL ST ZT
+! SAL SZE(NPT)-^ ZE
+! SAL SZI(ELN)-^ ZI
+! SAL SZCZ< Z
+! SAL SZT< ZT
+! SAL SZ<3 Z
+! SAL S Z
+! SAL T'S3$ Z
+! SAL TCH Z
+! SAL TEAT-^ TEA
+! SAL TE(LMNRST)-3^ TE
+! SAL TH< T
+! SAL TIC$ TIZ
+! SAL TOAS-^ TU
+! SAL TOILET- TULE
+! SAL TOIN- TUA
+! SAL TRAINI- TREN
+! SAL TSCH Z
+! SAL TSH Z
+! SAL TST ZT
+! SAL T(Sß) Z
+! SAL TT(SZ)--< _
+! SAL TT9 T
+! SAL TZ- _
+! SAL T T
+! SAL UEBER^^ IPA
+! SAL UE2 I
+! SAL UIE$ I
+! SAL UM^^ UN
+! SAL UNTERE-- UNTE
+! SAL UNTER^^ UNTA
+! SAL UNVER^^ UNFA
+! SAL UN^^ UN
+! SAL UTI(AÄOÖUÜ)- UZI
+! SAL U U
+! SAL VACL-^ FAZ
+! SAL VAC$ FAZ
+! SAL VEDD-^ FE
+! SAL VEREIN FAEIN
+! SAL VERSEN^ FAZN
+! SAL VER^^ FA
+! SAL VER FA
+! SAL VET(HT)-^ FET
+! SAL VETTE$ FET
+! SAL VIC$ FIZ
+! SAL VIEL FIL
+! SAL VIEW FIU
+! SAL VOR^^ FUR
+! SAL VY9^ FI
+! SAL V< F
+! SAL WE(LMNRST)-3^ FE
+! SAL WIC$ FIZ
+! SAL WIEDER^^ FITA
+! SAL WY9^ FI
+! SAL W F
+! SAL XE(LMNRST)-3^ XE
+! SAL X<^ Z
+! SAL X(CSZ) X
+! SAL XTS(CH)-- XT
+! SAL XT(SZ) Z
+! SAL X X
+! SAL YE(LMNRST)-3^ IE
+! SAL YE-3 I
+! SAL YOR(GK)^$ IÖRK
+! SAL Y(AOU)-<7 I
+! SAL YVES^$ IF
+! SAL YVONNE^$ IFUN
+! SAL Y I
+! SAL ZC(AOU)- ZK
+! SAL ZE(LMNRST)-3^ ZE
+! SAL ZH< Z
+! SAL ZS(CHT)-- _
+! SAL ZS Z
+! SAL ZUERST ZUERZT
+! SAL ZURÜCK^^ ZURIK
+! SAL ZUVER^^ ZUFA # x
+! SAL Z Z
diff --git a/runtime/spell/de/de_DE.diff b/runtime/spell/de/de_DE.diff
new file mode 100644
index 0000000..bbac7a0
--- /dev/null
+++ b/runtime/spell/de/de_DE.diff
@@ -0,0 +1,580 @@
+*** de_DE.orig.aff 2019-01-19 18:45:26.132522538 +0100
+--- de_DE.aff 2019-01-19 19:23:37.233297530 +0100
+***************
+*** 15,16 ****
+--- 15,46 ----
+
++ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
++ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
++
++ MIDWORD '
++
++ MAP 9
++ MAP aàáâãäå
++ MAP eèéêë
++ MAP iìíîï
++ MAP oòóôõö
++ MAP uùúûü
++ MAP nñ
++ MAP cç
++ MAP yÿý
++ MAP sß
++
++ COMPOUNDRULE xy?z
++ #COMPOUNDBEGIN x
++ #COMPOUNDMIDDLE y
++ #COMPOUNDEND z
++
++ # Prefixes are allowed at the beginning of compounds,
++ # suffixes are allowed at the end of compounds by default:
++ # (prefix)?(root)+(affix)?
++ # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
++ COMPOUNDPERMITFLAG c
++
++ ONLYINCOMPOUND o
++
+ PFX U Y 1
+***************
+*** 536,553 ****
+ #LANG de_DE
+! CHECKSHARPS
+!
+
+- COMPOUNDBEGIN x
+- COMPOUNDMIDDLE y
+- COMPOUNDEND z
+ FORBIDDENWORD d
+
+- # Prefixes are allowed at the beginning of compounds,
+- # suffixes are allowed at the end of compounds by default:
+- # (prefix)?(root)+(affix)?
+- # Affixes with COMPOUNDPERMITFLAG may be inside of compounds.
+- COMPOUNDPERMITFLAG c
+-
+- ONLYINCOMPOUND o
+-
+ # my PSEUDOROOT h(elper) flag
+--- 566,571 ----
+ #LANG de_DE
+! # CHECKSHARPS
+
+ FORBIDDENWORD d
+
+ # my PSEUDOROOT h(elper) flag
+***************
+*** 571,573 ****
+
+! WORDCHARS ß-.
+
+--- 589,591 ----
+
+! # WORDCHARS ß-.
+
+***************
+*** 725,729 ****
+ # So enabling this is the lesser evil. No perfect solution found so far...
+! BREAK 2
+! BREAK -
+! BREAK .
+!
+--- 743,1241 ----
+ # So enabling this is the lesser evil. No perfect solution found so far...
+! # BREAK 2
+! # BREAK -
+! # BREAK .
+!
+! # German phonetic transformation rules for use with Aspell
+! # Copyright (C) 2000 Björn Jacke
+! #
+! # This library is free software; you can redistribute it and/or
+! # modify it under the terms of the GNU Lesser General Public
+! # License version 2.1 as published by the Free Software Foundation;
+! #
+! # This library is distributed in the hope that it will be useful,
+! # but WITHOUT ANY WARRANTY; without even the implied warranty of
+! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+! # Lesser General Public License for more details.
+! #
+! # You should have received a copy of the GNU Lesser General Public
+! # License along with this library; if not, write to the Free Software
+! # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+! #
+! # Björn Jacke may be reached by email at bjoern.jacke@gmx.de
+! #
+! # Changelog:
+! #
+! # 2000-01-05 Björn Jacke <bjoern.jacke@gmx.de>
+! # Initial Release
+! # 2000-01-07 Kevin Atkinson <kevinatk@home.com>
+! # Converted from header to data file.
+! SAL followup 1
+! SAL collapse_result 1
+!
+! SAL ÄER- E
+! SAL ÄU< EU
+! SAL Ä< E
+! SAL É E
+! SAL ÖER- Ö
+! SAL Ö Ö
+! SAL ÜBER^^ IPA
+! SAL ÜER- I
+! SAL Ü I
+! SAL ß Z
+! SAL ABELLE$ APL
+! SAL ABELL$ APL
+! SAL ABIENNE$ APIN
+! SAL ACEY$ AZI
+! SAL AEU< EU
+! SAL AE2 E
+! SAL AGNI-^ AKN
+! SAL AGNIE- ANI
+! SAL AGN(AEOU)-$ ANI
+! SAL AIA2 AIA
+! SAL AIE$ E
+! SAL AILL(EOU)- ALI
+! SAL AINE$ EN
+! SAL AIRE$ ER
+! SAL AIR- E
+! SAL AISE$ EZ
+! SAL AISSANCE$ EZANZ
+! SAL AISSE$ EZ
+! SAL AIX$ EX
+! SAL AJ(AÄEIOÖUÜ)-- A
+! SAL AKTIE AXIE
+! SAL ALO(IY)^ ALUI
+! SAL AMATEU(RS)- ANATÖ
+! SAL ANIELLE$ ANIL
+! SAL ANTI^^ ANTI
+! SAL ANVER^^ ANFA
+! SAL ATIA$ ATIA
+! SAL ATIA(NS)-- ATI
+! SAL ATI(AÄOÖUÜ)- AZI
+! SAL AUAU-- _
+! SAL AUER< AUA
+! SAL AUF^^ AUF
+! SAL AULT$ U
+! SAL AUSSE$ UZ
+! SAL AUS(ST)-^ AUZ
+! SAL AUS^^ AUZ
+! SAL AUTO^^ AUTU
+! SAL AUX(IY)- AUX
+! SAL AUX U
+! SAL AU AU
+! SAL AVIER$ AFIE
+! SAL AYER--< EI
+! SAL AY(AÄEIOÖUÜ)-- A
+! SAL A(IJY)< EI
+! SAL A A
+! SAL BEA(BCMNRU)-^ PEA
+! SAL BEAT(AEIMORU)-^ PEAT
+! SAL BEIGE^$ PEZ
+! SAL BE(LMNRST)-^ PE
+! SAL BETTE$ PET
+! SAL BIC$ PIZ
+! SAL BOWL(EI)- PUL
+! SAL BP(AÄEIOÖRUÜY)- P
+! SAL BUDGET7 PIKE
+! SAL BUFFET7 PIFE
+! SAL BYLLE$ PILE
+! SAL BYLL$ PIL
+! SAL BYTE< PEIT
+! SAL B P
+! SAL CÄ- Z
+! SAL CÜ$ ZI
+! SAL CACH(EI)-^ KEZ
+! SAL CAE-- Z
+! SAL CA(IY)$ ZEI
+! SAL CCH Z
+! SAL CCE- X
+! SAL CE(EIJUY)-- Z
+! SAL CENT< ZENT
+! SAL CERST(EI)----^ KE
+! SAL CER$ ZA
+! SAL CE3 ZE
+! SAL CHAO(ST)- KAU
+! SAL CHAMPIO-^ ZENPI
+! SAL CHAR(AI)-^ KAR
+! SAL CHAU(CDFSVWXZ)- ZU
+! SAL CHE(CF)- ZE
+! SAL CHEM-^ KE
+! SAL CHEQUE< ZEK
+! SAL CHI(CFGPVW)- ZI
+! SAL CH(AEUY)-<^ Z
+! SAL CHK- _
+! SAL CH(LOR)-<^ K
+! SAL CHST- X
+! SAL CH(SßXZ)3 X
+! SAL CH K
+! SAL CIER$ ZIE
+! SAL CYB-^ ZEI
+! SAL CY9^ ZI
+! SAL C(IJY)-3 Z
+! SAL CKST XT
+! SAL CK(SßXZ)3 X
+! SAL C(CK)- _
+! SAL CLAUDET--- KLU
+! SAL CLAUDINE^$ KLUTIN
+! SAL COLE$ KUL
+! SAL COUCH KAUZ
+! SAL CQUES$ K
+! SAL CQUE K
+! SAL CREAT-^ KREA
+! SAL CST XT
+! SAL CS<^ Z
+! SAL C(SßX) X
+! SAL CT(SßXZ) X
+! SAL CZ< Z
+! SAL C< K
+! SAL D'H^ T
+! SAL D'S3$ Z
+! SAL DAVO(NR)-^$ TAFU
+! SAL DD(SZ)--< _
+! SAL DEPOT7 TEPU
+! SAL DESIGN TIZEIN
+! SAL DE(LMNRST)-3^ TE
+! SAL DETTE$ TET
+! SAL DIC$ TIZ
+! SAL DJ(AEIOU)-^ I
+! SAL DS(CH)--< T
+! SAL DST ZT
+! SAL DT- _
+! SAL DUIS-^ TI
+! SAL DURCH^^ TURK
+! SAL DZS(CH)-- T
+! SAL D(SßZ) Z
+! SAL D T
+! SAL EAULT$ U
+! SAL EAUX$ U
+! SAL EAU U
+! SAL EAV IF
+! SAL EA(AÄEIOÖÜY)-3 EA
+! SAL EA3$ EA
+! SAL EA3 I
+! SAL EBEN^^ EPN
+! SAL EE9 E
+! SAL EIEI-- _
+! SAL EIH-- E
+! SAL EILLE$ EI
+! SAL EI EI
+! SAL EJ$ EI
+! SAL EL-^ E
+! SAL EL(DKL)--1 E
+! SAL EL(MNT)--1$ E
+! SAL ELYNE$ ELINE
+! SAL ELYN$ ELIN
+! SAL EL(AÄEIOÖUÜY)-1 EL
+! SAL EL-1 L
+! SAL EM-^ E
+! SAL EM(DFKMPQT)--1 E
+! SAL EM(AÄEIOÖUÜY)--1 E
+! SAL EM-1 N
+! SAL EN-^ E
+! SAL EN(CDGKQT)--1 E
+! SAL ENZ(AEIOUY)--1 EN
+! SAL EN(AÄEINOÖUÜY)-1 EN
+! SAL EN-<1 N
+! SAL ERH(AÄEIOÖUÜ)-^ ER
+! SAL ER-^ E
+! SAL ER(AÄEIOÖUÜY)-1 A
+! SAL ER1$ A
+! SAL ER<1 A
+! SAL ETI(AÄOÖÜU)- EZI
+! SAL EUEU-- _
+! SAL EUILLE$ Ö
+! SAL EUR$ ÖR
+! SAL EUX Ö
+! SAL EUYS$ EUZ
+! SAL EU EU
+! SAL EYER< EIA
+! SAL EY< EI
+! SAL E E
+! SAL FANS--^$ FE
+! SAL FAN-^$ FE
+! SAL FAULT- FUL
+! SAL FEE(DL)- FI
+! SAL FEHLER FELA
+! SAL FE(LMNRST)-3^ FE
+! SAL FOND7 FUN
+! SAL FRAIN$ FRA
+! SAL FRISEU(RS)- FRIZÖ # x
+! SAL F F
+! SAL G'S$ X
+! SAL GAGS^$ KEX
+! SAL GAG^$ KEK
+! SAL GD KT
+! SAL GEGEN^^ KEKN
+! SAL GE(LMNRST)-3^ KE
+! SAL GETTE$ KET
+! SAL G(CK)- _
+! SAL GG- _
+! SAL GI(AO)-^ I
+! SAL GION$ KIUN
+! SAL GIUS-^ IU
+! SAL GMBH^$ GMPH
+! SAL GNAC$ NIAK
+! SAL GNON$ NIUN
+! SAL GN$ N
+! SAL GONCAL-^ KUNZA
+! SAL GS(CH)-- K
+! SAL GST XT
+! SAL G(SßXZ) X
+! SAL GUCK- KU
+! SAL GUI-^ K
+! SAL G K
+! SAL HEAD- E
+! SAL HE(LMNRST)-3^ E
+! SAL HE(LMN)-1 E
+! SAL HEUR1$ ÖR
+! SAL H^ _
+! SAL IEC$ IZ
+! SAL IEI-3 _
+! SAL IELL3 IEL
+! SAL IENNE$ IN
+! SAL IERRE$ IER
+! SAL IETTE$ IT
+! SAL IEU IÖ
+! SAL IE<4 I
+! SAL IGHT3$ EIT
+! SAL IGNI(EO)- INI
+! SAL IGN(AEOU)-$ INI
+! SAL IJ(AOU)- I
+! SAL IJ$ I
+! SAL IJ< EI
+! SAL IKOLE$ IKUL
+! SAL ILLAN(STZ)-- ILIA
+! SAL ILLAR(DT)-- ILIA
+! SAL INVER- INFE
+! SAL ITI(AÄOÖUÜ)- IZI
+! SAL IVIER$ IFIE
+! SAL I I
+! SAL JAVIE---<^ ZA
+! SAL JEAN^$ IA
+! SAL JEAN-^ IA
+! SAL JER-^ IE
+! SAL JE(LMNST)- IE
+! SAL JOR(GK)^$ IÖRK
+! SAL J I
+! SAL KC(ÄEIJ)- X
+! SAL KE(LMNRST)-3^ KE
+! SAL KH<^ K
+! SAL KIC$ KIZ
+! SAL KLE(LMNRST)-3^ KLE
+! SAL KOTELE-^ KUTL
+! SAL KREAT-^ KREA
+! SAL KST XT
+! SAL K(SßXZ) X
+! SAL KTI(AIOU)-3 XI
+! SAL KT(SßXZ) X
+! SAL K K
+! SAL LARVE- LARF
+! SAL LEAND-^ LEAN
+! SAL LEL- LE
+! SAL LE(MNRST)-3^ LE
+! SAL LETTE$ LET
+! SAL LFGNAG- LFKAN
+! SAL LIC$ LIZ
+! SAL LIVE^$ LEIF
+! SAL LUI(GS)-- LU
+! SAL L L
+! SAL MASSEU(RS)- NAZÖ
+! SAL MAURICE NURIZ
+! SAL MBH^$ MPH
+! SAL MB(SßZ)- N
+! SAL MC9^ NK
+! SAL MEMOIR-^ NENUA
+! SAL ME(LMNRST)-3^ NE
+! SAL MIGUEL NIKL
+! SAL MIKE^$ NEIK
+! SAL MN N
+! SAL MPJUTE- NPUT
+! SAL MP(SßZ)- N
+! SAL MP(BDJLMNPQRTVW)- NP
+! SAL M N
+! SAL NACH^^ NAK
+! SAL NADINE NATIN
+! SAL NAIV-- NA
+! SAL NAISE$ NEZE
+! SAL NCOISE$ ZUA
+! SAL NCOIS$ ZUA
+! SAL NEBEN^^ NEPN
+! SAL NE(LMNRST)-3^ NE
+! SAL NEN-3 NE
+! SAL NETTE$ NET
+! SAL NG(BDFJLMNPQRTVW)- NK
+! SAL NICHTS^^ NIX
+! SAL NICHT^^ NIKT
+! SAL NINE$ NIN
+! SAL NON^^ NUN
+! SAL NOT^^ NUT
+! SAL NTI(AIOU)-3 NZI
+! SAL NTIEL--3 NZI
+! SAL NYLON NEILUN
+! SAL ND(SßZ)$ NZ
+! SAL NT(SßZ)$ NZ
+! SAL ND'S$ NZ
+! SAL NT'S$ NZ
+! SAL NSTS$ NZ
+! SAL N N
+! SAL OBER^^ UPA
+! SAL OE2 Ö
+! SAL OGNIE- UNI
+! SAL OGN(AEOU)-$ UNI
+! SAL OIE$ Ö
+! SAL OIR$ UAR
+! SAL OIX UA
+! SAL OI<3 EU
+! SAL OJ(AÄEIOÖUÜ)-- U
+! SAL OKAY^$ UKE
+! SAL OLYN$ ULIN
+! SAL OTI(AÄOÖUÜ)- UZI
+! SAL OUI^ FI
+! SAL OUILLE$ ULIE
+! SAL OU(DT)-^ AU
+! SAL OUSE$ AUZ
+! SAL OUT- AU
+! SAL OU U
+! SAL OWS$ UZ
+! SAL OY(AÄEIOÖUÜ)-- U
+! SAL O(JY)< EU
+! SAL O U
+! SAL PATIEN--^ PAZI
+! SAL PENSIO-^ PANZI
+! SAL PE(LMNRST)-3^ PE
+! SAL PFER-^ FE
+! SAL P(FH)< F
+! SAL POLY^^ PULI
+! SAL PORTRAIT7 PURTRE
+! SAL PP(FH)--< P
+! SAL PP- _
+! SAL PRIX^$ PRI
+! SAL P(SßZ)^ Z
+! SAL PTI(AÄOÖUÜ)-3 PZI
+! SAL PIC^$ PIK
+! SAL P P
+! SAL QUE(LMNRST)-3 KFE
+! SAL QUE$ K
+! SAL QUI(NS)$ KI
+! SAL QU KF
+! SAL Q< K
+! SAL RCH RK
+! SAL RECHERCH^ REZAZ
+! SAL RER$ RA
+! SAL RE(MNR)-4 RE
+! SAL RETTE$ RET
+! SAL RH<^ R
+! SAL RJA(MN)-- RI
+! SAL RTI(AÄOÖUÜ)-3 RZI
+! SAL RY(KN)-$ RI
+! SAL R R
+! SAL SAFE^$ ZEIF
+! SAL SAUCE-^ ZUZ
+! SAL SCHSCH---7 _
+! SAL SCHTSCH Z
+! SAL SC(HZ)< Z
+! SAL SC ZK
+! SAL SELBSTST--7^^ ZELP
+! SAL SELBST7^^ ZELPZT
+! SAL SERVICE7^ ZÖRFIZ
+! SAL SE(LMNRST)-3^ ZE
+! SAL SETTE$ ZET
+! SAL SHP-^ Z
+! SAL SHST ZT
+! SAL SHTSH Z
+! SAL SHT Z
+! SAL SH3 Z
+! SAL SIEGLI-^ ZIKL
+! SAL SIGLI-^ ZIKL
+! SAL SIGHT ZEIT
+! SAL SIGN ZEIN
+! SAL SKI(NPZ)- ZKI
+! SAL SKI<^ ZI
+! SAL SOUND- ZAUN
+! SAL STAATS^^ ZTAZ
+! SAL STADT^^ ZTAT
+! SAL START^^ ZTART
+! SAL STAURANT7 ZTURAN
+! SAL STEAK- ZTE
+! SAL STRAF^^ ZTRAF
+! SAL ST'S$ Z
+! SAL STST-- _
+! SAL STS(ACEHIOUÄÜÖ)-- ZT
+! SAL ST(SZ) Z
+! SAL STYN(AE)-$ ZTIN
+! SAL ST ZT
+! SAL SZE(NPT)-^ ZE
+! SAL SZI(ELN)-^ ZI
+! SAL SZCZ< Z
+! SAL SZT< ZT
+! SAL SZ<3 Z
+! SAL S Z
+! SAL T'S3$ Z
+! SAL TCH Z
+! SAL TEAT-^ TEA
+! SAL TE(LMNRST)-3^ TE
+! SAL TH< T
+! SAL TIC$ TIZ
+! SAL TOAS-^ TU
+! SAL TOILET- TULE
+! SAL TOIN- TUA
+! SAL TRAINI- TREN
+! SAL TSCH Z
+! SAL TSH Z
+! SAL TST ZT
+! SAL T(Sß) Z
+! SAL TT(SZ)--< _
+! SAL TT9 T
+! SAL TZ- _
+! SAL T T
+! SAL UEBER^^ IPA
+! SAL UE2 I
+! SAL UIE$ I
+! SAL UM^^ UN
+! SAL UNTERE-- UNTE
+! SAL UNTER^^ UNTA
+! SAL UNVER^^ UNFA
+! SAL UN^^ UN
+! SAL UTI(AÄOÖUÜ)- UZI
+! SAL U U
+! SAL VACL-^ FAZ
+! SAL VAC$ FAZ
+! SAL VEDD-^ FE
+! SAL VEREIN FAEIN
+! SAL VERSEN^ FAZN
+! SAL VER^^ FA
+! SAL VER FA
+! SAL VET(HT)-^ FET
+! SAL VETTE$ FET
+! SAL VIC$ FIZ
+! SAL VIEL FIL
+! SAL VIEW FIU
+! SAL VOR^^ FUR
+! SAL VY9^ FI
+! SAL V< F
+! SAL WE(LMNRST)-3^ FE
+! SAL WIC$ FIZ
+! SAL WIEDER^^ FITA
+! SAL WY9^ FI
+! SAL W F
+! SAL XE(LMNRST)-3^ XE
+! SAL X<^ Z
+! SAL X(CSZ) X
+! SAL XTS(CH)-- XT
+! SAL XT(SZ) Z
+! SAL X X
+! SAL YE(LMNRST)-3^ IE
+! SAL YE-3 I
+! SAL YOR(GK)^$ IÖRK
+! SAL Y(AOU)-<7 I
+! SAL YVES^$ IF
+! SAL YVONNE^$ IFUN
+! SAL Y I
+! SAL ZC(AOU)- ZK
+! SAL ZE(LMNRST)-3^ ZE
+! SAL ZH< Z
+! SAL ZS(CHT)-- _
+! SAL ZS Z
+! SAL ZUERST ZUERZT
+! SAL ZURÜCK^^ ZURIK
+! SAL ZUVER^^ ZUFA # x
+! SAL Z Z
diff --git a/runtime/spell/de/main.aap b/runtime/spell/de/main.aap
new file mode 100644
index 0000000..49ec2f2
--- /dev/null
+++ b/runtime/spell/de/main.aap
@@ -0,0 +1,176 @@
+# Aap recipe for German Vim spell files.
+#
+# Since there is a big discussion about whether to use the old or the new
+# spelling rules, both have been included.
+# "de": new German spelling
+# "de_de": old and new German spelling
+# "de_19": old German spelling
+# "de_20": new German spelling
+# "de_AT": Austrian spelling
+# "de_CH": Swiss spelling
+
+# Use a freshly compiled Vim if it exists.
+@if os.path.exists('../../../src/vim'):
+ VIM = ../../../src/vim
+@else:
+ :progsearch VIM vim
+
+REGIONS = DE 19 20 AT CH
+DE_REGIONS = de_$*REGIONS
+
+SPELLDIR = ..
+FILES = de_$*(REGIONS).aff de_$*(REGIONS).dic
+
+# The de_20 is the same as de_DE dictionary and only uses the
+# new revised orthography
+FILE_DE_AFF = de_DE_frami.aff
+FILE_DE_DIC = de_DE_frami.dic
+FILE_20_AFF = de_DE_frami.aff
+FILE_20_DIC = de_DE_frami.dic
+FILE_AT_AFF = de_AT_frami.aff
+FILE_AT_DIC = de_AT_frami.dic
+FILE_CH_AFF = de_CH_frami.aff
+FILE_CH_DIC = de_CH_frami.dic
+#ZIPFILES = $ZIPFILE_DE $ZIPFILE_20 $ZIPFILE_AT $ZIPFILE_CH
+ZIPFILE_19 = de_OLDSPELL.zip # unmaintained
+DICT_FILES = $FILE_20_AFF $FILE_20_DIC $FILE_AT_AFF $FILE_AT_DIC $FILE_CH_AFF $FILE_CH_DIC
+
+READMES = README_de_DE_frami.txt README_extension_owner.txt
+
+all: $SPELLDIR/de.latin1.spl $SPELLDIR/de.utf-8.spl ../README_de.txt
+
+$SPELLDIR/de.latin1.spl : $FILES
+ :sys env LANG=de_DE.ISO-8859-1
+ $VIM -u NONE -e -c "mkspell! $SPELLDIR/de $DE_REGIONS" -c q
+
+$SPELLDIR/de.utf-8.spl : $FILES
+ :sys env LANG=de_DE.UTF-8
+ $VIM -u NONE -e -c "mkspell! $SPELLDIR/de $DE_REGIONS" -c q
+
+../README_de.txt: $READMES
+ :fetch $READMES
+ :print de_DE_frami.txt >! $target
+ :cat README_de_DE_frami.txt >> $target
+ :print =================================================== >>$target
+ :print extension_owner >> $target
+ :cat README_extension_owner.txt >> $target
+
+#
+# Fetching the files from the LibreOffices github repository.
+# The OLDSPELL file comes from elsewhere
+#
+OODIR = https://github.com/LibreOffice/dictionaries/raw/master/de
+DEDIR = http://www.j3e.de/myspell
+:attr {fetch = $OODIR/%file%} $DICT_FILES
+:attr {fetch = $OODIR/%file%} $READMES
+:attr {fetch = $DEDIR/%file%} $ZIPFILE_19
+
+# The files don't depend on the .zip file so that we can delete it.
+# Only download the zip file if the targets don't exist.
+de_DE.aff de_DE.dic de_20.aff de_20.dic: {buildcheck=}
+ :assertpkg patch
+ :fetch $FILE_DE_AFF
+ :fetch $FILE_DE_DIC
+ :move de_DE_frami.aff de_DE.aff
+ :move de_DE_frami.dic de_DE.dic
+ @if not os.path.exists('de_DE.orig.aff'):
+ :copy de_DE.aff de_DE.orig.aff
+ @if not os.path.exists('de_DE.orig.dic'):
+ :copy de_DE.dic de_DE.orig.dic
+ @if os.path.exists('de_DE.diff'):
+ :sys patch <de_DE.diff
+ :copy de_DE.aff de_20.aff
+ :copy de_DE.dic de_20.dic
+
+de_19.aff de_19.dic: {buildcheck=}
+ :assertpkg unzip patch
+ :fetch $ZIPFILE_19
+ :sys $UNZIP $ZIPFILE_19
+ :delete $ZIPFILE_19
+ :move de_OLDSPELL.aff de_19.aff
+ :move de_OLDSPELL.dic de_19.dic
+ @if not os.path.exists('de_19.orig.aff'):
+ :copy de_19.aff de_19.orig.aff
+ @if not os.path.exists('de_19.orig.dic'):
+ :copy de_19.dic de_19.orig.dic
+ @if os.path.exists('de_19.diff'):
+ :sys patch <de_19.diff
+
+de_AT.aff de_AT.dic: {buildcheck=}
+ :assertpkg patch
+ :fetch $FILE_AT_AFF
+ :fetch $FILE_AT_DIC
+ :move $FILE_AT_AFF de_AT.aff
+ :move $FILE_AT_DIC de_AT.dic
+ @if not os.path.exists('de_AT.orig.aff'):
+ :copy de_AT.aff de_AT.orig.aff
+ @if not os.path.exists('de_AT.orig.dic'):
+ :copy de_AT.dic de_AT.orig.dic
+ @if os.path.exists('de_AT.diff'):
+ :sys patch <de_AT.diff
+
+de_CH.aff de_CH.dic: {buildcheck=}
+ :assertpkg patch
+ :fetch $FILE_CH_AFF
+ :fetch $FILE_CH_DIC
+ :move $FILE_CH_AFF de_CH.aff
+ :move $FILE_CH_DIC de_CH.dic
+ @if not os.path.exists('de_CH.orig.aff'):
+ :copy de_CH.aff de_CH.orig.aff
+ @if not os.path.exists('de_CH.orig.dic'):
+ :copy de_CH.dic de_CH.orig.dic
+ @if os.path.exists('de_CH.diff'):
+ :sys patch <de_CH.diff
+
+
+# Generate diff files, so that others can get the OpenOffice files and apply
+# the diffs to get the Vim versions.
+diff:
+ :assertpkg diff
+ :sys {force} diff -a -C 1 de_DE.orig.aff de_DE.aff >de_DE.diff
+ :sys {force} diff -a -C 1 de_DE.orig.dic de_DE.dic >>de_DE.diff
+ :sys {force} diff -a -C 1 de_19.orig.aff de_19.aff >de_19.diff
+ :sys {force} diff -a -C 1 de_19.orig.dic de_19.dic >>de_19.diff
+ :sys {force} diff -a -C 1 de_AT.orig.aff de_AT.aff >de_AT.diff
+ :sys {force} diff -a -C 1 de_AT.orig.dic de_AT.dic >>de_AT.diff
+ :sys {force} diff -a -C 1 de_CH.orig.aff de_CH.aff >de_CH.diff
+ :sys {force} diff -a -C 1 de_CH.orig.dic de_CH.dic >>de_CH.diff
+ :copy de_DE.diff de_20.diff
+
+
+# Check for updated OpenOffice spell files. When there are changes the
+# ".new.aff" and ".new.dic" files are left behind for manual inspection.
+
+check:
+ :assertpkg unzip patch
+ :fetch $ZIPFILE_19
+ :fetch $DICT_FILES
+ @try:
+ :mkdir tmp
+ :cd tmp
+ :sys $UNZIP ../$ZIPFILE_19
+ :copy ../*.aff .
+ :copy ../*.dic .
+ :move de_OLDSPELL.aff de_19.aff
+ :move de_OLDSPELL.dic de_19.dic
+ :move de_DE_frami.aff de_DE.aff
+ :move de_DE_frami.dic de_DE.dic
+ :move de_AT_frami.dic de_AT.dic
+ :move de_AT_frami.aff de_AT.aff
+ :move de_CH_frami.dic de_CH.dic
+ :move de_CH_frami.aff de_CH.aff
+ :copy de_DE.dic de_20.dic
+ :copy de_DE.aff de_20.aff
+
+ @import stat
+ @for nm in ['de_DE', 'de_19', 'de_20', 'de_AT', 'de_CH']:
+ @for ext in ['aff', 'dic']:
+ :sys {force} diff ../$(nm).orig.$ext $(nm).$ext >d
+ @if os.stat('d')[stat.ST_SIZE] > 0:
+ :copy $(nm).$ext ../$(nm).new.$ext
+ :sys {force} diff ../README_$(nm).txt README_$(nm).txt >d
+ @finally:
+ :cd ..
+ :delete {r}{f}{q} tmp
+
+# vim: set sts=4 sw=4 :