From 10099f1c3752721df2febefc2bdb8bb64853c95d Mon Sep 17 00:00:00 2001
From: Dimo Karaivanov
Date: Thu, 27 Oct 2022 14:31:57 +0300
Subject: [PATCH] New dictionary loader (#89)
* new, simpler (and hopefully, more efficient) dictionary loader
* no more dict.properties
* dictionaries are now validated during the build process
* TraditionalT9Settings code cleanup and code style improvements
* removed English, French, Italian, Russian repeating words
* removed invalid and repeating German words
---
.gitignore | 1 -
assets/de-utf8.txt | 975 +-----------------
assets/en-utf8.txt | 9 -
assets/fr-utf8.txt | 4 -
assets/it-utf8.txt | 3 -
assets/ru-utf8.txt | 76 +-
build.gradle | 41 +-
res/values-bg/strings.xml | 8 +-
res/values-de/strings.xml | 6 +-
res/values-fr/strings.xml | 7 +-
res/values-it/strings.xml | 6 +-
res/values-ru/strings.xml | 5 +-
res/values-uk/strings.xml | 7 +-
res/values/strings.xml | 6 +-
scripts/remove-dictionary-repeating-words.js | 39 +-
.../answer/UnicodeBOMInputStream.java | 315 ------
.../github/sspanak/tt9/db/DictionaryDb.java | 12 +-
.../db/DictionaryImportAbortedException.java | 7 +
.../tt9/db/DictionaryImportException.java | 14 +
.../sspanak/tt9/db/DictionaryLoader.java | 259 +++++
.../InvalidLanguageCharactersException.java | 15 +
.../sspanak/tt9/languages/Language.java | 6 +-
.../tt9/preferences/T9Preferences.java | 28 +-
.../sspanak/tt9/ui/TraditionalT9Settings.java | 540 +++-------
24 files changed, 534 insertions(+), 1855 deletions(-)
delete mode 100644 src/com/stackoverflow/answer/UnicodeBOMInputStream.java
create mode 100644 src/io/github/sspanak/tt9/db/DictionaryImportAbortedException.java
create mode 100644 src/io/github/sspanak/tt9/db/DictionaryImportException.java
create mode 100644 src/io/github/sspanak/tt9/db/DictionaryLoader.java
create mode 100644 src/io/github/sspanak/tt9/languages/InvalidLanguageCharactersException.java
diff --git a/.gitignore b/.gitignore
index c36085e5..ad2c9e8a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,7 +24,6 @@ local.properties
*.log
#Other
-assets/dict.properties
t9build.properties
*.keystore
diff --git a/assets/de-utf8.txt b/assets/de-utf8.txt
index 5f251013..d091faf2 100644
--- a/assets/de-utf8.txt
+++ b/assets/de-utf8.txt
@@ -287,7 +287,6 @@ abdrückten
abebben
abebbende
Abel
-abend
Abend
Abendanzug
Abendbrot
@@ -379,7 +378,6 @@ abfahrend
abfahrendem
abfahrenden
abfahrender
-abfahrt
Abfahrt
abfährt
Abfahrten
@@ -522,7 +520,6 @@ abfragen
Abfragetext
abfragt
abfräsen
-abfuhr
Abfuhr
abfuhren
abführen
@@ -2131,7 +2128,6 @@ abkommandierte
abkommandierten
abkommandierter
abkommandiertes
-abkommen
Abkommen
abkommend
abkommende
@@ -2166,7 +2162,6 @@ abkriegen
abkriegendem
abkriegenden
abkriegender
-abkühlen
Abkühlen
abkühlend
abkühlende
@@ -2629,7 +2624,6 @@ Abriegelung
abriet
abrieten
abringen
-abriss
Abriss
abrollen
abrollend
@@ -2801,7 +2795,6 @@ abschiebender
abschiebendes
Abschiebung
Abschiebungen
-abschied
Abschied
abschiede
Abschieds
@@ -2909,7 +2902,6 @@ Abschn
abschnallen
abschneide
abschneiden
-abschnitt
Abschnitt
abschnitte
abschnitten
@@ -3040,7 +3032,6 @@ abseifende
abseifenden
abseifender
abseifendes
-abseilen
Abseilen
abseitigen
abseits
@@ -3246,9 +3237,7 @@ abstammendes
abstammte
abstammten
Abstammung
-abstand
Abstand
-abstände
Abstände
Abständen
Abstandes
@@ -3332,7 +3321,6 @@ absterbendem
absterbenden
absterbender
absticht
-abstieg
Abstieg
abstiege
abstiegen
@@ -3414,7 +3402,6 @@ abstreitende
abstreitendem
abstreitenden
abstreitendes
-abstrich
Abstrich
Abstriche
abstrichen
@@ -3483,7 +3470,6 @@ Abtastraten
Abtasttheorem
Abtastung
Abtastungen
-abtauchen
Abtauchen
abtauchende
abtauchenden
@@ -3561,7 +3547,6 @@ abtretendes
Abtreter
Abtretung
Abtretungen
-abtrieb
Abtrieb
Abtritt
Abtritte
@@ -3798,7 +3783,6 @@ abwischendes
abwischte
abwohnen
Abwurf
-abwürfe
Abwürfe
abwürfen
abwürgen
@@ -4028,7 +4012,6 @@ Achsel
Achselhöhle
Achselhöhlen
Achseln
-achselzucken
Achselzucken
Achsen
Achsenmächte
@@ -4038,7 +4021,6 @@ achsigem
achsigen
achsiger
achsiges
-acht
Acht
achtbar
achtbare
@@ -4215,7 +4197,6 @@ addiertes
addiertest
Addition
Additionen
-additiv
Additiv
additive
additiven
@@ -4989,7 +4970,6 @@ Alkoholkonzentration
Alkoholspiegel
Alkoholvergiftungen
Alkoven
-all
All
allabendlich
allabendliche
@@ -5120,7 +5100,6 @@ allgemein
allgemeinbildende
Allgemeinbildung
allgemeine
-allgemeinem
Allgemeinem
allgemeinen
allgemeiner
@@ -5148,10 +5127,8 @@ Allheilmittels
Allianz
Allianzen
alliiert
-alliierte
Alliierte
alliiertem
-alliierten
Alliierten
alljährlich
alljährlichem
@@ -5274,7 +5251,6 @@ altem
alten
Altenheim
Altenheimen
-alter
Alter
älter
altere
@@ -7382,7 +7358,6 @@ angrenzenden
angrenzender
angrenzendes
angrenzten
-angriff
Angriff
Angriffe
angriffen
@@ -7408,7 +7383,6 @@ angrinsende
angrinsendem
angrinsenden
angrinsendes
-angst
Angst
Ängste
Ängsten
@@ -7543,7 +7517,6 @@ anheim
anheischig
anheizen
anheizt
-anhieb
Anhieb
anhielt
anhielte
@@ -7652,7 +7625,6 @@ anklammernd
anklammerndem
anklammernden
anklammernder
-anklang
Anklang
Anklänge
anklängen
@@ -7849,7 +7821,6 @@ anliefernden
anlieferndes
anliefert
Anlieferung
-anliegen
Anliegen
anliegend
anliegendem
@@ -8172,7 +8143,6 @@ anprallenden
anprallender
anprallendes
Anpralls
-anprangern
Anprangern
anprangerte
anpreisen
@@ -8494,7 +8464,6 @@ anschneidende
anschneidendem
anschneidender
anschneidendes
-anschnitt
Anschnitt
anschnitten
Anschnittes
@@ -8729,7 +8698,6 @@ anstachelndes
anstachle
Anstalt
Anstalten
-anstand
Anstand
anständig
anständige
@@ -8810,7 +8778,6 @@ ansteuernder
ansteuerndes
ansteuerte
Ansteuerung
-anstieg
Anstieg
anstiege
anstiegen
@@ -8890,7 +8857,6 @@ anstrengendste
anstrengt
Anstrengung
Anstrengungen
-anstrich
Anstrich
Anstriche
Anstrichs
@@ -9068,7 +9034,6 @@ antriebe
antrieben
Antriebs
antrifft
-antritt
Antritt
Antrittes
Antrittsbesuch
@@ -9099,7 +9064,6 @@ anvertrautem
anvertrauten
anvertrautes
Anverwandlung
-anverwandte
Anverwandte
anverwandten
anvisieren
@@ -9542,7 +9506,6 @@ Aquariums
äquidistanten
Äquidistanz
äquifunktional
-äquivalent
Äquivalent
äquivalente
äquivalenten
@@ -9891,7 +9854,6 @@ Argentinien
argentinische
argentinischen
arger
-ärger
Ärger
ärgere
ärgerem
@@ -9999,7 +9961,6 @@ Arkansas
arktisch
arktische
arktischen
-arm
Arm
Armada
Armatur
@@ -10152,7 +10113,6 @@ arteigene
arteigenem
arteigener
arteigenes
-arten
Arten
Arterie
Arterien
@@ -10284,7 +10244,6 @@ Assumptionist
Assumptionisten
Ast
äst
-äste
Äste
Aster
Astern
@@ -10387,7 +10346,6 @@ Atlantiks
Atlantis
atlantischen
Atlas
-atmen
Atmen
atmete
Atmosphäre
@@ -10476,7 +10434,6 @@ atü
ätzt
ätzten
Ätzung
-au
Au
Aubergine
auch
@@ -10672,7 +10629,6 @@ auffischende
auffischendem
auffischenden
auffischendes
-aufflackern
Aufflackern
aufflammen
aufflammend
@@ -11913,7 +11869,6 @@ auflockernden
auflockerndes
Auflockerung
Auflockerungstendenz
-auflodern
Auflodern
auflodernd
auflodernde
@@ -12318,7 +12273,6 @@ Aufschneiderei
Aufschneidereien
Aufschneiders
aufschneidet
-aufschnitt
Aufschnitt
aufschnitte
Aufschnitts
@@ -12365,7 +12319,6 @@ aufschütteln
aufschwingen
Aufschwung
Aufschwungs
-aufsehen
Aufsehen
aufsehend
aufsehenden
@@ -12454,9 +12407,7 @@ aufstampfen
aufstampfende
aufstampfenden
aufstampfender
-aufstand
Aufstand
-aufstände
Aufstände
aufständen
aufständisch
@@ -12505,7 +12456,6 @@ aufstellt
Aufstellung
Aufstellungen
Aufstellungsplanung
-aufstieg
Aufstieg
aufstiegen
Aufstiegs
@@ -12536,7 +12486,6 @@ aufstreichend
aufstreichenden
aufstreichender
aufstreichendes
-aufstrich
Aufstrich
aufstrichen
Aufstrichs
@@ -12656,13 +12605,11 @@ auftretendem
auftretenden
auftretender
Auftretens
-auftrieb
Auftrieb
auftriebe
Auftriebs
Auftriebskraft
Auftriebskräfte
-auftritt
Auftritt
Auftritte
Auftritten
@@ -12688,9 +12635,7 @@ aufwachten
aufwallen
aufwallt
Aufwallung
-aufwand
Aufwand
-aufwände
Aufwände
aufwänden
Aufwandes
@@ -13250,7 +13195,6 @@ ausdrehende
ausdrehender
ausdrehendes
Ausdruck
-ausdrücke
Ausdrücke
ausdrucken
ausdrücken
@@ -13358,7 +13302,6 @@ ausfahrend
ausfahrende
ausfahrender
ausfahrendes
-ausfahrt
Ausfahrt
Ausfahrten
Ausfall
@@ -13446,7 +13389,6 @@ ausfressend
ausfressende
ausfressenden
ausfressendes
-ausfuhr
Ausfuhr
ausführbar
ausführbare
@@ -15566,9 +15508,7 @@ ausstaffiertem
ausstaffierten
ausstaffierter
Ausstaffierung
-ausstand
Ausstand
-ausstände
Ausstände
ausstanzen
ausstatten
@@ -15624,7 +15564,6 @@ aussterbendes
Aussterbens
Aussteuer
aussteuern
-ausstieg
Ausstieg
Ausstiegschance
ausstieß
@@ -15738,7 +15677,6 @@ austrinkend
austrinkende
austrinkender
austrinkendes
-austritt
Austritt
Austritten
Austrittes
@@ -15825,7 +15763,6 @@ Auswirkung
Auswirkungen
auswischen
Auswuchs
-auswüchse
Auswüchse
auswüchsen
Auswuchses
@@ -16212,7 +16149,6 @@ Bahnüberganges
Bahnverbindung
Bahnwärter
Bahrain
-bahre
Bahre
Bai
Bairemaß
@@ -16276,7 +16212,6 @@ Ballaste
Ballasten
Ballastes
Bälle
-ballen
Ballen
Bällen
Ballens
@@ -16347,7 +16282,6 @@ Bandaufnahme
Bandbreite
Bandbreiten
Bande
-bände
Bände
banden
bänden
@@ -16378,7 +16312,6 @@ Banditen
Bandpass
Bands
Bandscheibe
-bang
Bang
bange
bangen
@@ -16435,7 +16368,6 @@ Banknote
Banknoten
Banknotenumlauf
Bankraubes
-bankrott
Bankrott
bankrotte
bankrottem
@@ -16464,7 +16396,6 @@ Bannung
banque
Bantu
Baptist
-bar
Bar
Bär
Baracke
@@ -16531,7 +16462,6 @@ barmherziges
Barmherzigkeit
Barmittel
Barmixer
-barock
Barock
Barometer
Barometerstand
@@ -16783,7 +16713,6 @@ Baum
Baumaschinen
Baumaterialien
Baumdiagramm
-bäume
Bäume
Baumeister
Baumeisters
@@ -17145,7 +17074,6 @@ bebt
bebte
bebten
Becher
-bechern
Bechern
Bechers
Becken
@@ -17183,7 +17111,6 @@ bedankte
bedankten
bedanktest
bedanktet
-bedarf
Bedarf
Bedarfs
Bedarfsartikel
@@ -17325,7 +17252,6 @@ Bedienpult
bedienst
Bedienstete
bediensteten
-bediensteter
Bediensteter
bedient
Bedientastatur
@@ -18157,7 +18083,6 @@ Begrenztheit
Begrenzung
Begrenzungen
Begrenzungslinie
-begriff
Begriff
begriffe
begriffen
@@ -18339,7 +18264,6 @@ Behandlungserfolge
Behandlungsmethode
behandschuht
Behang
-behänge
Behänge
behangen
behängen
@@ -18857,7 +18781,6 @@ beißendem
beißender
beißendes
beißt
-beistand
Beistand
beistanden
Beistandspakt
@@ -18907,7 +18830,6 @@ beitretende
beitretendem
beitretenden
beitretendes
-beitritt
Beitritt
Beitritte
Beitrittsbedingung
@@ -19205,7 +19127,6 @@ Belagerungen
Belagerungszustand
Belagerungszuständen
Belagerungszustandes
-belang
Belang
belange
belangen
@@ -19307,7 +19228,6 @@ belebtest
belebtet
Belebung
Belebungsmaßnahme
-beleg
Beleg
belegbar
belegbare
@@ -21314,7 +21234,6 @@ besoldungsmäßig
Besoldungsordnung
besondere
besonderem
-besonderen
Besonderen
besonderer
besonderes
@@ -21447,9 +21366,7 @@ bestahl
bestahlen
bestahlt
Bestallungen
-bestand
Bestand
-bestände
Bestände
bestanden
bestandene
@@ -21753,7 +21670,6 @@ bestrahltest
bestrahltet
Bestrahlung
bestrebe
-bestreben
Bestreben
bestrebend
bestrebende
@@ -22066,7 +21982,6 @@ Betrachtungseinheit
Betrachtungsweise
betraf
betrafen
-betrag
Betrag
Beträge
betragen
@@ -22138,7 +22053,6 @@ betreuter
betreutes
betreutest
Betreuung
-betrieb
Betrieb
betriebe
betrieben
@@ -22307,7 +22221,6 @@ betrübtem
betrübter
betrübtes
betrübtest
-betrug
Betrug
betrüge
betrugen
@@ -22384,7 +22297,6 @@ Bettlakens
Bettler
Bettlers
Bettnachbar
-bettnässen
Bettnässen
Bettruhe
Betttuch
@@ -22421,7 +22333,6 @@ beugtet
Beugung
Beugungen
Beugungsform
-beule
Beule
beulen
beunruhigen
@@ -22479,10 +22390,8 @@ beurteiltest
Beurteilung
Beurteilungen
Beurteilungskriterien
-beute
Beute
Beutel
-beuteln
Beuteln
Beutelschneider
beutelt
@@ -22748,7 +22657,6 @@ beweinter
beweintes
beweintest
beweintet
-beweis
Beweis
Beweisangeboten
Beweisaufnahme
@@ -22952,7 +22860,6 @@ bewusster
bewusstes
Bewusstheit
bewusstlos
-bewusstlose
Bewusstlose
bewusstlosem
bewusstlosen
@@ -23062,7 +22969,6 @@ bezogenen
bezogener
bezogst
bezogt
-bezug
Bezug
Bezüge
Bezügen
@@ -23536,7 +23442,6 @@ bislang
Bismarck
Bismarcks
Bison
-biss
Biss
bisschen
bisse
@@ -23635,7 +23540,6 @@ Blankovollmacht
Blankovollmachten
Bläschen
Bläschens
-blase
Blase
Blasebalg
blasen
@@ -23722,7 +23626,6 @@ Blech
Blechbüchse
Blechbüchsen
Bleche
-blechen
Blechen
blechern
blecherne
@@ -24186,7 +24089,6 @@ Böe
Boeing
bog
bogen
-bögen
Bögen
Bogenabstand
Bogenfenster
@@ -24306,7 +24208,6 @@ Bonze
Bonzen
Boot
boote
-booten
Booten
Bootes
Bootfahrten
@@ -24626,7 +24527,6 @@ brasilianischen
brasilianischer
Brasilien
brate
-braten
Braten
bratend
bratenden
@@ -24842,7 +24742,6 @@ Bremen
Bremsbelag
Bremsbeläge
bremse
-bremsen
Bremsen
bremsend
bremsende
@@ -24990,7 +24889,6 @@ Briketten
brillant
brillante
brillantem
-brillanten
Brillanten
brillanter
brillanteste
@@ -25048,7 +24946,6 @@ bröckelnder
bröckelt
bröckelte
bröckelten
-brocken
Brocken
brodeln
brodelnd
@@ -25209,7 +25106,6 @@ brummst
brummte
brummten
brummtest
-brunch
Brunch
brünett
brünette
@@ -25286,7 +25182,6 @@ Bruthennen
Brutkasten
Brutofen
Brutstätte
-brutto
Brutto
Bruttoeinkommen
Bruttoeinnahmen
@@ -25443,7 +25338,6 @@ Buchwerte
Buchwerten
Buchwertes
bücke
-buckel
Buckel
buckelig
buckeligem
@@ -25474,7 +25368,6 @@ Budget
Budgets
Büfett
Büfetts
-büffel
Büffel
büffeln
büffelt
@@ -25692,10 +25585,8 @@ Buntstifte
Buntstiften
Buntstiftes
Burda
-bürde
Bürde
Burg
-bürge
Bürge
Burgen
bürgen
@@ -25801,7 +25692,6 @@ bürstetet
Bus
Busch
Büsche
-büschel
Büschel
büscheln
Büschen
@@ -25930,7 +25820,6 @@ Carsten
Cartansche
Cartanschen
cartesische
-cartesisches
Cartesisches
Cartoon
cartoons
@@ -26365,7 +26254,6 @@ Cousins
CPU
CPUs
Crack
-creme
Creme
cremefarben
cremefarbig
@@ -26538,7 +26426,6 @@ dämliches
Damm
Dammbruch
Dammbrüche
-dämme
Dämme
dämmerhaft
Dämmerlicht
@@ -27072,7 +26959,6 @@ dazwischentretende
dazwischentretenden
dazwischentretendes
dB
-DB
dBase
de
deaktivieren
@@ -27159,7 +27045,6 @@ Defekten
defekter
defektes
defensiv
-defensive
Defensive
defensiven
defensiver
@@ -28068,14 +27953,12 @@ dich
Dichothomie
Dichotomie
dicht
-dichte
Dichte
Dichtefunktion
dichtem
dichten
dichtend
dichtende
-dichter
Dichter
dichteren
Dichterinnen
@@ -28105,7 +27988,6 @@ dick
Dickdarm
Dickdärme
Dickdarms
-dicke
Dicke
dickem
dicken
@@ -28175,7 +28057,6 @@ dienend
dienenden
dienender
dienendes
-diener
Diener
dienern
Dieners
@@ -28184,7 +28065,6 @@ dienlich
dienliche
dienlichen
dienlicher
-dienst
Dienst
Dienstag
Dienstagen
@@ -28342,7 +28222,6 @@ diffamierten
Diffamierung
Differente
Differenten
-differential
Differential
Differentiale
Differentialen
@@ -29094,7 +28973,6 @@ Dotter
Dotterblume
dottergelb
Dottern
-double
Double
Doubles
Doublette
@@ -29167,7 +29045,6 @@ Dramaturgen
dramaturgisch
Dramen
dran
-drang
Drang
dränge
drangeht
@@ -29416,7 +29293,6 @@ dreisprachige
dreisprachigen
dreisprachiges
dreißig
-dreißiger
Dreißiger
dreißigfach
dreißigjährig
@@ -29531,7 +29407,6 @@ Dringlichkeitsstufe
dringlichste
dringst
dringt
-drink
Drink
Drinks
drinnen
@@ -29542,7 +29417,6 @@ drippeln
dritt
drittbeste
dritte
-drittel
Drittel
dritteln
drittelnder
@@ -29870,7 +29744,6 @@ dunkelhäutigen
Dunkelheit
Dunkelkammer
Dunkelmänner
-dunkeln
Dunkeln
dunkelrot
dunkelsten
@@ -30032,7 +29905,6 @@ durcheilendes
durcheilt
durcheilten
durcheiltest
-durcheinander
Durcheinander
durcheinandergeworfener
durcheinanderraten
@@ -30048,7 +29920,6 @@ durchfahrend
durchfahrenden
durchfahrender
durchfahrendes
-durchfahrt
Durchfahrt
Durchfahrten
Durchfall
@@ -30407,7 +30278,6 @@ durchlässiges
Durchlässigkeit
durchlässt
Durchlaucht
-durchlauf
Durchlauf
Durchläufe
durchlaufen
@@ -30800,7 +30670,6 @@ dürftiger
dürftiges
Dürftigkeit
dürr
-dürre
Dürre
dürren
dürrer
@@ -30861,7 +30730,6 @@ düstre
Dutt
Dutte
Dutzend
-dutzende
Dutzende
Dutzenden
dutzendweise
@@ -30904,7 +30772,6 @@ ebendies
ebendiese
ebendieselbe
ebene
-ebenen
Ebenen
ebener
ebenerdig
@@ -30934,7 +30801,6 @@ echtzeitgesteuert
Eck
Eckball
Eckbälle
-ecke
Ecke
ecken
eckig
@@ -31058,7 +30924,6 @@ egalisierte
Egalisierung
Egel
Egeln
-egge
Egge
Ego
Egoismen
@@ -31078,7 +30943,6 @@ egozentrischem
egozentrischer
egozentrisches
eh
-ehe
Ehe
Eheberatung
Ehebett
@@ -31317,7 +31181,6 @@ ehrwürdiger
Ei
Eibe
Eichamt
-eiche
Eiche
Eichel
Eicheln
@@ -31405,7 +31268,6 @@ eifrigstes
Eigelb
Eigelben
Eigelbs
-eigen
Eigen
Eigenarbeit
Eigenart
@@ -31567,7 +31429,6 @@ eignen
eignende
eignenden
eignender
-eigner
Eigner
eignes
eignest
@@ -31664,9 +31525,7 @@ einäugig
einäugigen
Einbahnstraße
Einbahnstraßen
-einband
Einband
-einbände
Einbände
einbändig
einbändigem
@@ -32048,7 +31907,6 @@ Eingänge
Eingängen
eingängig
eingängige
-eingangs
Eingangs
Eingangsbedingung
Eingangsdaten
@@ -32108,10 +31966,8 @@ eingebogen
eingebogene
eingebogenen
eingebogenes
-eingeborene
Eingeborene
eingeborenen
-eingeborener
Eingeborener
eingebracht
eingebrachte
@@ -32790,7 +32646,6 @@ eingrenzen
eingrenzenden
eingrenzten
Eingrenzung
-eingriff
Eingriff
eingriffe
eingriffen
@@ -32831,7 +32686,6 @@ einheftenden
einheftender
einheftendes
einheimisch
-einheimische
Einheimische
einheimischem
einheimischen
@@ -33008,7 +32862,6 @@ einkochend
einkochende
einkochenden
einkochendes
-einkommen
Einkommen
Einkommens
Einkommensbelastung
@@ -33469,7 +33322,6 @@ einschneidender
einschneidendes
einschneidet
einschneien
-einschnitt
Einschnitt
einschnitten
Einschnittes
@@ -33670,7 +33522,6 @@ einsteigender
einsteigt
Einstein
einsteinscher
-Einstein'scher
einstellbar
einstellbare
einstellbaren
@@ -33690,7 +33541,6 @@ einstellten
Einstellung
Einstellungen
Einstellwert
-einstieg
Einstieg
einstiegen
einstig
@@ -33853,7 +33703,6 @@ eintretendem
eintretenden
eintretender
eintrifft
-eintritt
Eintritt
Eintritts
Eintrittsfläche
@@ -33969,7 +33818,6 @@ Einwohners
Einwohnerschaft
Einwohnerzahl
Einwurf
-einwürfe
Einwürfe
einwürfen
Einwurfes
@@ -34220,7 +34068,6 @@ Eisbergen
Eisbergs
Eisdecke
Eisdiele
-eisen
Eisen
eisenärmeren
Eisenbahn
@@ -34553,7 +34400,6 @@ Elemente
Elementen
Elementes
Elements
-elend
Elend
elende
elendem
@@ -34626,7 +34472,6 @@ Elternteil
Elternteile
Elternteilen
Elternteils
-email
Email
Emanuel
Emanuela
@@ -34918,7 +34763,6 @@ Endbild
Endbilder
Enddaten
Enddruck
-ende
Ende
Endeffekt
enden
@@ -35119,7 +34963,6 @@ Engländer
Engländerinnen
Engländern
Englands
-englisch
Englisch
englische
englischem
@@ -36002,7 +35845,6 @@ entnommen
entnommene
entnommenen
entnommenes
-entpacken
Entpacken
entpackten
entprellt
@@ -36597,7 +36439,6 @@ entwürdigtes
entwürdigtest
entwürdigtet
Entwurf
-entwürfe
Entwürfe
Entwurfes
Entwurfs
@@ -36649,7 +36490,6 @@ entzogene
entzogenen
entzogener
entzogst
-entzücken
Entzücken
entzückend
entzückende
@@ -36834,9 +36674,7 @@ erbberechtigt
erbberechtigte
erbberechtigten
erbberechtigtes
-erbe
Erbe
-erben
Erben
erbend
erbende
@@ -38444,10 +38282,8 @@ ernsthaftester
ernsthaftestes
ernstlich
ernstlichen
-ernte
Ernte
Erntedankfest
-ernten
Ernten
erntend
erntenden
@@ -39078,7 +38914,6 @@ Erstattungen
Erstaufführung
Erstauftrag
erstaune
-erstaunen
Erstaunen
erstaunend
erstaunende
@@ -39107,7 +38942,6 @@ erstauntes
erstauntest
erstauntet
erstbeste
-erste
Erste
ersteche
erstechen
@@ -39287,7 +39121,6 @@ ertönendes
ertönt
ertönte
ertönten
-ertrag
Ertrag
ertrage
Erträge
@@ -39669,9 +39502,7 @@ Erzes
erzeuge
erzeugen
erzeugend
-erzeugende
Erzeugende
-erzeugenden
Erzeugenden
erzeugender
erzeugendes
@@ -39814,7 +39645,6 @@ essbares
Essbesteck
Essbestecks
esse
-essen
Essen
essend
essenden
@@ -40301,7 +40131,6 @@ Exports
Exportüberschuss
Exportüberschüsse
Exposition
-express
Express
Expressgut
Expression
@@ -40446,13 +40275,11 @@ Fachbetrieb
Fachblatt
Fachbücher
Fachdozent
-fache
Fache
fächeln
fächelte
fachen
fachende
-fächer
Fächer
fächerförmig
fächern
@@ -40580,7 +40407,6 @@ Fachzeitschrift
Fachzeitung
Fachzweige
Fackel
-fackeln
Fackeln
facto
Fädchen
@@ -40766,7 +40592,6 @@ Fahrstühlen
Fahrstuhles
Fahrstuhls
Fahrstuhlwartung
-fahrt
Fahrt
fährt
Fährte
@@ -40843,15 +40668,12 @@ Falk
Falke
Falken
Falklandinseln
-fall
Fall
Fallbeil
Fallbeispiel
-falle
Falle
Fälle
fallen
-fällen
Fällen
fallend
fällend
@@ -40979,7 +40801,6 @@ faltigsten
faltigster
faltigstes
Faltung
-fam
Fam
familiär
familiäre
@@ -41059,7 +40880,6 @@ fanden
fänden
fandest
Fanfare
-fang
Fang
Fangarm
fangbewehrt
@@ -41234,10 +41054,8 @@ faserigen
faseriger
faseriges
Faserlänge
-fasern
Fasern
Faserzeug
-fass
Fass
Fassade
Fassaden
@@ -41435,7 +41253,6 @@ federleichten
federleichter
federleichtes
Federlesens
-federn
Federn
federnde
federndem
@@ -41477,7 +41294,6 @@ Fehdehandschuh
Fehdehandschuhe
Fehdehandschuhes
Fehden
-fehl
Fehl
Fehlanpassung
Fehlanzeige
@@ -41606,7 +41422,6 @@ fehlte
fehlten
fehltest
fehltraten
-fehltritt
Fehltritt
Fehltritts
Fehlurteil
@@ -41631,7 +41446,6 @@ Feierlichkeiten
feierlichste
feierlichstem
feierlichsten
-feiern
Feiern
feiernd
feiernde
@@ -41694,10 +41508,8 @@ Feinanpassung
Feinbäckerei
Feinbäckereien
Feinbleche
-feind
Feind
Feindbild
-feinde
Feinde
feinden
Feindes
@@ -42052,7 +41864,6 @@ ferromagnetischen
Ferse
Fersen
Fersengeld
-fertig
Fertig
Fertigbauweise
fertige
@@ -42086,7 +41897,6 @@ Fertigungsstraßen
Fertigungstechnik
Fertigware
Fertigwaren
-fertigwerden
Fertigwerden
fertigzuwerden
fesch
@@ -42420,7 +42230,6 @@ fettigster
fettigstes
Fettnäpfchen
Fettsucht
-fetzen
Fetzen
Fetzens
feucht
@@ -42644,7 +42453,6 @@ Filmarchiv
Filmatelier
Filmateliers
Filmaufnahmen
-filme
Filme
Filmemacher
filmen
@@ -42683,7 +42491,6 @@ Filmvorstellungen
Filter
filtere
filterlos
-filtern
Filtern
filternd
filternde
@@ -42711,7 +42518,6 @@ filzigen
filziges
Filzstiften
Fimmel
-final
Final
finale
finalen
@@ -42810,7 +42616,6 @@ Findungen
Finesse
Finessen
fing
-fingen
Fingen
Finger
Fingerabdruck
@@ -42877,7 +42682,6 @@ Firlefanz
Firma
Firmament
Firmamentes
-firmen
Firmen
Firmenautos
firmeneigen
@@ -43048,7 +42852,6 @@ flachhügelig
Flachland
Flachländern
Flachlandes
-flachs
Flachs
flachste
flachstem
@@ -43070,7 +42873,6 @@ Fladen
Fläden
Fladens
Flag
-flagge
Flagge
flaggen
Flaggenalphabet
@@ -43093,9 +42895,7 @@ flämische
flämischer
flämisches
Flämmchen
-flamme
Flamme
-flammen
Flammen
flammend
flammenden
@@ -43178,7 +42978,6 @@ flaumigem
flaumiger
flaumiges
Flausen
-flaute
Flaute
Flautezeit
flechte
@@ -43210,7 +43009,6 @@ Fleckwassers
Fledermaus
Fledermäuse
Fledermäusen
-flegel
Flegel
Flegelalter
flegelhaft
@@ -43331,7 +43129,6 @@ Flickzeug
Flickzeuges
Flickzeugs
Flieder
-fliegen
Fliegen
fliegend
fliegende
@@ -43443,7 +43240,6 @@ flitztest
flitztet
flocht
Flocke
-flocken
Flocken
flockig
flockige
@@ -43454,7 +43250,6 @@ flog
flogen
flöget
flogst
-floh
Floh
Flöhe
flohen
@@ -43492,7 +43287,6 @@ flötetest
flötetet
Flötist
flott
-flotte
Flotte
Flottenabkommen
Flottenmanöver
@@ -43520,7 +43314,6 @@ fluchen
Flüchen
Flucher
Fluches
-flucht
Flucht
fluchtartig
fluchtartige
@@ -43760,7 +43553,6 @@ fokussieren
fokussiert
fokussierten
Fokussierung
-folge
Folge
Folgeaufträge
Folgeband
@@ -43989,7 +43781,6 @@ formelles
formelmäßig
Formeln
Formelzeichen
-formen
Formen
Formenbau
formend
@@ -44100,7 +43891,6 @@ forschend
forschenden
forschender
forschendes
-forscher
Forscher
Forschergruppe
Forschergruppen
@@ -44172,7 +43962,6 @@ Forstwirtschaft
forstwirtschaftlichen
fort
fortan
-fortbestand
Fortbestand
fortbestanden
fortbestehe
@@ -44356,7 +44145,6 @@ fortpflanzendes
fortpflanzt
Fortpflanzung
Fortran
-FORTRAN
fortrannte
forträumen
fortreißen
@@ -44376,7 +44164,6 @@ fortschreitende
fortschreitenden
fortschreitender
fortschreitendes
-fortschritt
Fortschritt
fortschritte
fortschritten
@@ -44433,7 +44220,6 @@ fortzuschaffen
fortzuschreiten
fortzusetzen
Forum
-fossil
Fossil
Fossilien
Foto
@@ -44520,7 +44306,6 @@ Frack
Fräcke
Fräcken
Fracks
-frage
Frage
Fragebogen
Fragebögen
@@ -44587,7 +44372,6 @@ Fraktionen
fraktionslos
Fraktionsvorsitzende
Franc
-frank
Frank
Frankens
Frankenstein
@@ -44610,7 +44394,6 @@ frankiertet
franko
frankophon
Frankreich
-franse
Franse
Franz
Franziska
@@ -44632,7 +44415,6 @@ frappantes
frappieren
frappierend
fräsen
-fraß
Fraß
fraßen
Fraßes
@@ -44942,7 +44724,6 @@ freitragend
Freitreppe
Freitreppen
Freiverkehr
-freiwerden
Freiwerden
Freiwerdens
Freiwild
@@ -44986,9 +44767,7 @@ fremdartiger
fremdartiges
Fremdatome
fremdbezogen
-fremde
Fremde
-fremden
Fremden
Fremdenbettes
Fremdenführer
@@ -45007,7 +44786,6 @@ Fremdenpolizei
Fremdenverkehr
Fremdenzimmer
Fremdenzimmern
-fremder
Fremder
fremdes
Fremdfinanzierung
@@ -45111,9 +44889,7 @@ freuende
freuenden
freuendes
Freund
-freunde
Freunde
-freunden
Freunden
Freundes
Freundeskreis
@@ -45167,9 +44943,7 @@ frevelte
frevelten
frevle
Frieda
-friede
Friede
-frieden
Frieden
friedender
Friedens
@@ -45368,7 +45142,6 @@ frommen
frommer
frommes
Frömmigkeit
-fron
Fron
Fronarbeit
Fronarbeiten
@@ -45714,7 +45487,6 @@ Füllungen
Füllzeichen
fulminant
fulminante
-fummel
Fummel
fummeln
fummelnd
@@ -45809,7 +45581,6 @@ fünfzehnten
fünfzehnter
fünfzehntes
fünfzig
-fünfziger
Fünfziger
fünfzigjährig
fünfzigste
@@ -45848,7 +45619,6 @@ funkelt
funkelte
funkelten
funkeltest
-funken
Funken
funkend
funkende
@@ -45886,9 +45656,7 @@ funktest
funktet
Funktion
funktional
-funktionale
Funktionale
-funktionalen
Funktionalen
funktionales
Funktionalität
@@ -45901,7 +45669,6 @@ funktionellen
funktioneller
funktionelles
Funktionen
-funktionieren
Funktionieren
funktionierend
funktionierende
@@ -45951,7 +45718,6 @@ Fürbitte
Furche
furchen
furchender
-furcht
Furcht
furchtbar
furchtbare
@@ -46142,7 +45908,6 @@ Fußwegen
Fußweges
Fußzeilen
futsch
-futter
Futter
Futteral
Futterale
@@ -46183,7 +45948,6 @@ Gabe
gäbe
Gabel
gabelig
-gabeln
Gabeln
gabelndes
Gabelstapler
@@ -46306,7 +46070,6 @@ Gammler
gammligste
Gämse
Gämsen
-gang
Gang
Gangart
Gangarten
@@ -46474,7 +46237,6 @@ Gärstoffes
gärt
gärte
Garten
-gärten
Gärten
Gartenanlage
Gartenanlagen
@@ -46748,7 +46510,6 @@ geartetem
gearteten
gearteter
geartetes
-geäst
Geäst
Geästes
geatmet
@@ -46893,9 +46654,7 @@ gebeugten
gebeugtes
gebeutelt
Gebiet
-gebiete
Gebiete
-gebieten
Gebieten
gebietend
gebietende
@@ -47015,7 +46774,6 @@ geborstene
geborstenen
geborstener
geborstenes
-gebot
Gebot
Gebote
geboten
@@ -47100,7 +46858,6 @@ gebräuntes
Gebräus
gebraust
gebrauter
-gebrechen
Gebrechen
gebrechlich
gebrechliche
@@ -47597,7 +47354,6 @@ gefährdeter
gefährdetes
gefährdetest
Gefährdung
-gefahren
Gefahren
gefahrene
gefahrenen
@@ -47700,7 +47456,6 @@ gefalteter
gefaltetes
gefangen
gefangene
-gefangenen
Gefangenen
Gefangenenlager
gefangenes
@@ -48334,14 +48089,12 @@ gegrüßt
geguckt
gegürtet
geh
-gehabe
Gehabe
gehabt
gehabte
gehabten
gehabter
gehackt
-gehackte
Gehackte
gehacktem
gehackten
@@ -48626,7 +48379,6 @@ gehöriger
gehöriges
Gehörlose
Gehörs
-gehorsam
Gehorsam
gehorsame
gehorsamer
@@ -48650,7 +48402,7 @@ gehortet
gehst
Gehsteig
geht
-geht's
+gehts
gehuldigt
gehüllt
gehüllte
@@ -48712,7 +48464,6 @@ geißeln
geißelte
Geißelung
Geist
-geister
Geister
Geisterbeschwörer
Geisterbeschwörern
@@ -48724,7 +48475,6 @@ geisterhaften
geisterhafter
geisterhaftes
Geisterhand
-geistern
Geistern
geistert
geisterten
@@ -49422,7 +49172,6 @@ gelehrigstes
Gelehrsamkeit
gelehrt
gelehrte
-gelehrten
Gelehrten
gelehrter
gelehrteren
@@ -49500,7 +49249,6 @@ gelichteten
gelichtetes
geliebäugelt
geliebt
-geliebte
Geliebte
geliebter
geliebtes
@@ -49621,7 +49369,6 @@ gelüste
gelüsten
gelyncht
gem
-gemach
Gemach
Gemächer
Gemächern
@@ -50201,7 +49948,6 @@ Gentleman
Gentlemen
Genua
genug
-genüge
Genüge
genügen
genügend
@@ -50550,7 +50296,6 @@ geradegestanden
geradehin
geradelt
geradem
-geraden
Geraden
geradenwegs
gerader
@@ -50588,7 +50333,6 @@ Gerassel
Gerassels
gerasselt
gerastete
-gerät
Gerät
gerate
Geräte
@@ -52064,7 +51808,6 @@ geschwollen
geschwollenes
geschwommen
geschworen
-geschworene
Geschworene
Geschworenen
Geschworenengericht
@@ -52091,7 +51834,6 @@ gesehener
gesehenes
gesehnt
geselchte
-geselle
Geselle
gesellen
Gesellenbrief
@@ -53625,7 +53367,6 @@ gewichtete
gewichteten
gewichteter
gewichtetes
-gewichtheben
Gewichtheben
Gewichtheber
gewichtig
@@ -53748,7 +53489,6 @@ gewispertes
gewiss
gewisse
gewissem
-gewissen
Gewissen
gewissenhaft
gewissenhafte
@@ -54125,7 +53865,6 @@ Giebel
Giebeln
Giebels
Giebelwand
-gier
Gier
gieren
gierig
@@ -54279,7 +54018,6 @@ Glasaugen
Glasdachs
Glasenbach
Gläser
-gläsern
Gläsern
gläserne
gläsernem
@@ -54336,7 +54074,6 @@ Glaswand
Glaswollen
glatt
glatte
-glätte
Glätte
Glatteis
Glatteisbildung
@@ -54403,7 +54140,6 @@ gläubig
gläubige
gläubigem
gläubigen
-gläubiger
Gläubiger
Gläubigerbank
gläubigere
@@ -54608,7 +54344,6 @@ gleichwertig
gleichwertige
gleichwertigem
gleichwertiger
-gleichwertiges
Gleichwertiges
Gleichwertigkeit
gleichwohl
@@ -54949,7 +54684,6 @@ Golfspielern
Golfspielers
Golfstrom
Gondel
-gong
Gong
gönne
gönnen
@@ -55030,7 +54764,6 @@ Gouverneure
Gouverneurs
Grab
grabe
-graben
Graben
Gräben
Grabenkrieg
@@ -55234,7 +54967,6 @@ Gräuel
Gräueltat
Gräueltaten
grauem
-grauen
Grauen
grauenerregender
grauenhaft
@@ -55356,7 +55088,6 @@ Greifer
Greifhand
greifst
greift
-greis
Greis
greise
greisen
@@ -55382,9 +55113,7 @@ Grenzabkommen
Grenzabstand
Grenzbewohner
Grenzbewohners
-grenze
Grenze
-grenzen
Grenzen
grenzend
grenzende
@@ -55470,7 +55199,6 @@ griesgrämigen
griesgrämiges
Grieß
Grießbrei
-griff
Griff
griffbereit
griffbereitem
@@ -55498,7 +55226,6 @@ griffigster
griffigstes
Griffs
griffst
-grill
Grill
grille
grillen
@@ -55518,7 +55245,6 @@ grimmigstem
grimmigsten
grimmigstes
grinse
-grinsen
Grinsen
grinsend
grinsende
@@ -55875,7 +55601,6 @@ Grundbuchinhalt
Grunddilemma
Grunddreieck
Grunde
-gründe
Gründe
grundehrlich
grundehrlichem
@@ -55889,7 +55614,6 @@ Grundeinheit
Grundeinstellung
Grundelement
Grundempfehlung
-gründen
Gründen
gründend
gründende
@@ -56153,9 +55877,7 @@ gruseln
Gruß
Grußadresse
Grußbotschaft
-grüße
Grüße
-grüßen
Grüßen
grüßend
grüßende
@@ -56266,7 +55988,6 @@ Gussform
Gussformen
gustiöseren
Gusto
-gut
Gut
Gutachten
Gutachtens
@@ -56329,7 +56050,6 @@ gutgläubige
gutgläubigen
gutgläubiger
gutgläubiges
-guthaben
Guthaben
gutheißend
gutheißende
@@ -56433,7 +56153,6 @@ Haarausfall
Haarbürste
Haarbürsten
Haare
-haaren
Haaren
Haares
Haaresbreite
@@ -56489,7 +56208,6 @@ Haarwassers
Haarwuchsmittel
Haarwuchsmitteln
Haarwuchsmittels
-hab
Hab
habe
haben
@@ -56647,7 +56365,6 @@ häkelt
häkelte
häkelten
häkeltet
-haken
Haken
hakenden
hakender
@@ -56667,7 +56384,6 @@ halbautomatisch
Halbbruder
Halbbrüder
Halbbrüdern
-halbdunkel
Halbdunkel
halbe
Halbebene
@@ -56695,7 +56411,6 @@ halbhohe
halbiere
halbieren
halbierend
-halbierende
Halbierende
halbierendem
halbierender
@@ -56796,7 +56511,6 @@ Halle
hallen
hallender
Hallig
-hallo
Hallo
hallt
hallte
@@ -56844,7 +56558,6 @@ Halsverband
Halsweh
Halswirbel
Halswirbelsäule
-halt
Halt
hält
haltbar
@@ -57228,7 +56941,6 @@ Hängebrücke
Hängebrücken
Hängematte
Hängematten
-hängen
Hängen
hängend
hängende
@@ -57348,7 +57060,6 @@ Harry
harsch
hart
harte
-härte
Härte
Härtefälle
Härtegründe
@@ -57471,7 +57182,6 @@ hastigen
hastiges
hat
Hatree
-hat's
hätscheln
hatschten
hatte
@@ -57736,7 +57446,6 @@ Hausdach
Hausdiener
Hausdienern
Hausdieners
-hause
Hause
hauseigen
hausen
@@ -57883,7 +57592,6 @@ hauswirtschaftlichem
hauswirtschaftlichen
hauswirtschaftlicher
Hauswirtschaftslehre
-haut
Haut
Hautärzte
Hautärzten
@@ -57891,7 +57599,6 @@ Hautarztes
Hautausschlag
Hautcreme
haute
-häute
Häute
hauten
hauteng
@@ -57924,7 +57631,6 @@ Hebelarm
Hebelarme
Hebelarmen
Hebelkraft
-hebeln
Hebeln
Hebels
hebelt
@@ -57943,7 +57649,6 @@ Hebräer
Hebräerin
Hebräern
hebräisch
-hebräische
Hebräische
Hebräischem
hebst
@@ -58169,7 +57874,6 @@ heiltest
Heilung
Heilungen
Heilverfahren
-heim
Heim
Heimarbeit
Heimarbeiten
@@ -58590,7 +58294,6 @@ Hemdenknopfs
Hemdes
Hemds
hemdsärmelig
-hemdsärmeln
Hemdsärmeln
Hemisphären
hemmen
@@ -59217,7 +58920,6 @@ herbeisehnen
herbeisehnte
herbeiwünschen
herbeiwünscht
-herbeiziehen
Herbeiziehen
herbeizuführen
herbeizurufen
@@ -60068,9 +59770,7 @@ herzlosestem
herzlosesten
herzlosester
Herzlosigkeit
-herzog
Herzog
-herzöge
Herzöge
herzogen
herzögen
@@ -60201,7 +59901,6 @@ Hexer
Hexerei
Hexereien
Hi
-hieb
Hieb
hieben
Hiebes
@@ -60706,7 +60405,6 @@ hineinzulegen
hineinzupacken
hineinzustellen
hinfahren
-hinfahrt
Hinfahrt
hinfallen
hinfallend
@@ -60914,7 +60612,6 @@ hinreichende
hinreichenden
hinreichender
hinreicht
-hinreise
Hinreise
hinreisend
hinreisenden
@@ -61379,7 +61076,6 @@ hobeltest
hobeltet
hoble
hobst
-hoch
Hoch
Hochachtung
hochachtungsvoll
@@ -61840,7 +61536,6 @@ hohl
hohle
Höhle
hohlen
-höhlen
Höhlen
höhlendes
Höhlenforscher
@@ -62242,7 +61937,6 @@ Huldigung
Huldigungen
huldvoll
huldvolle
-hülle
Hülle
hüllen
hüllt
@@ -62304,7 +61998,6 @@ Hunden
Hunderasse
hundert
hunderte
-hunderten
Hunderten
hunderter
hundertfach
@@ -62324,11 +62017,9 @@ hundertprozentiger
hundertprozentiges
Hundertschaft
hundertste
-hundertstel
Hundertstel
hundertsten
hunderttausend
-hunderttausende
Hunderttausende
hunderttausenden
hundertzehn
@@ -62559,10 +62250,8 @@ ichbezogenes
Ichform
Ichsucht
ICs
-ideal
Ideal
Idealbedarf
-ideale
Ideale
idealem
idealen
@@ -62760,7 +62449,6 @@ ihm
ihn
ihnen
ihr
-ihre
Ihre
ihrem
ihren
@@ -62855,7 +62543,6 @@ imitierte
imitierten
imitiertest
Imker
-imkern
Imkern
Imkers
immanent
@@ -62906,7 +62593,6 @@ Immunität
Immunkörper
Impedanz
Impedanzwandler
-imperativ
Imperativ
imperativen
Imperator
@@ -63081,7 +62767,6 @@ inadäquat
inaktiv
inaktive
inaktiven
-inaktiver
Inaktiver
inaktives
Inaktivität
@@ -63418,7 +63103,6 @@ informiertest
informiertet
infrage
infragekommen
-infrarot
Infrarot
infraroten
Infrastruktur
@@ -63518,7 +63202,6 @@ Inhomogenitäten
inhuman
inhumanen
initial
-initiale
Initiale
initialen
initialisiere
@@ -63662,7 +63345,6 @@ innere
Innerei
Innereien
innerem
-inneren
Inneren
innerer
inneres
@@ -63677,7 +63359,6 @@ Innern
innerorganismisch
innerpolitisch
innerstaatlich
-innerste
Innerste
innerstem
innersten
@@ -63832,7 +63513,6 @@ inständigste
inständigstem
inständigster
inständigstes
-instandsetzen
Instandsetzen
Instandsetzung
Instandsetzungsarbeit
@@ -63884,7 +63564,6 @@ Instruktion
Instruktionen
instruktiv
Instrument
-instrumental
Instrumental
Instrumentalist
Instrumentalpart
@@ -63926,7 +63605,6 @@ intaktestem
intaktester
intaktestes
integer
-integral
Integral
Integralbildung
integrale
@@ -64034,7 +63712,6 @@ interessantere
interessanterem
interessanteren
interessanteres
-interessantes
Interessantes
interessanteste
interessantesten
@@ -64262,7 +63939,6 @@ Invalidenrente
Invalidenrenten
Invalidität
invariant
-invariante
Invariante
Invarianz
Invasion
@@ -64278,7 +63954,6 @@ inverse
inversem
inversen
inverser
-inverses
Inverses
Inversion
invertieren
@@ -64766,7 +64441,6 @@ jämmerlichste
jämmerlichstem
jämmerlichster
jämmerlichstes
-jammern
Jammern
jammernd
jammerndem
@@ -65020,7 +64694,6 @@ Jumbo
jung
junge
jungem
-jungen
Jungen
jungenhaft
jungenhafte
@@ -65060,7 +64733,6 @@ jüngster
jüngstes
Juni
Junigehalt
-junior
Junior
Juniorchef
Juniorchefin
@@ -65239,7 +64911,6 @@ Kaiserschnitte
Kaiserschnitts
Kaiserslautern
Kajak
-kajaken
Kajaken
Kajaker
Kajakfahren
@@ -65282,7 +64953,6 @@ Kalenderwoche
kalfatern
Kali
Kaliber
-kalibrieren
Kalibrieren
kalibriert
kalibrierten
@@ -65748,7 +65418,6 @@ Kansas
Kant
Kantate
Kante
-kanten
Kanten
kantend
Kantenlänge
@@ -65809,7 +65478,6 @@ Kapillargefäße
Kapillargefäßen
Kapillargefäßes
Kapillarstruktur
-kapital
Kapital
Kapitalabwanderung
Kapitalanlage
@@ -66104,7 +65772,6 @@ Karpfenteich
Karpfenteiche
Karpfenteiches
karre
-karren
Karren
Karriere
karrierebedingt
@@ -66480,7 +66147,6 @@ katzenfreundlicher
katzengewandt
katzenhaft
kaudern
-kauderwelsch
Kauderwelsch
Kauderwelschs
kaue
@@ -66641,8 +66307,6 @@ kavitös
Kay
Kayaking
kB
-KB
-kByte
KByte
keck
keckem
@@ -66665,7 +66329,6 @@ kegelförmigen
kegelförmiger
Kegelklub
Kegelklubs
-kegeln
Kegeln
kegelnd
kegelnde
@@ -66680,9 +66343,7 @@ kegelten
kegeltest
kegle
Kegler
-kehle
Kehle
-kehlen
Kehlen
Kehlkopf
Kehlköpfe
@@ -66755,9 +66416,7 @@ Keilschrift
Keim
Keimdrüse
Keimdrüsen
-keime
Keime
-keimen
Keimen
keimend
keimenden
@@ -66819,7 +66478,6 @@ kellern
kellertiefe
Kellerwohnung
Kellerwohnungen
-kellner
Kellner
kellnern
Kellners
@@ -66918,7 +66576,6 @@ kentertest
kentertet
Kentucky
keplerschen
-Kepler'schen
Keramik
Keramiken
keramisch
@@ -66926,7 +66583,6 @@ keramische
keramischem
keramischen
keramisches
-kerbe
Kerbe
Kerbel
Kerbels
@@ -66954,7 +66610,6 @@ Kern
Kernbereiche
Kernchen
Kerne
-kernen
Kernen
Kernenergie
Kernexplosion
@@ -67059,9 +66714,7 @@ kesseres
kesseste
Ketchup
Ketschup
-kette
Kette
-ketten
Ketten
Kettenantrieb
Kettenantriebe
@@ -67497,7 +67150,6 @@ kitteten
kittetest
kittetet
Kitts
-kitzel
Kitzel
kitzele
kitzelig
@@ -67524,7 +67176,6 @@ klaffenden
klaffendes
klafft
klaffte
-klage
Klage
Klageanspruch
Klageantrag
@@ -67541,7 +67192,6 @@ Klageforderung
Klagelieder
Klageliedern
Klageliedes
-klagen
Klagen
klagend
klagende
@@ -67579,7 +67229,6 @@ klagtest
klagtet
klamm
klamme
-klammen
Klammen
Klammer
Klammerausdruck
@@ -67587,7 +67236,6 @@ klammere
klammerem
klammeren
klammeres
-klammern
Klammern
klammernd
klammernde
@@ -67606,9 +67254,7 @@ klammster
Klammstrecke
Klamotte
Klamotten
-klang
Klang
-klänge
Klänge
klangen
klängen
@@ -67819,7 +67465,6 @@ klatscht
klatschte
klatschten
klatschtet
-klau
Klau
klaue
klauen
@@ -68104,7 +67749,6 @@ klettertest
klettertet
Klick
klicke
-klicken
Klicken
klickt
klickte
@@ -68142,7 +67786,6 @@ klimpert
klimperte
klimperten
klimpertet
-klinge
Klinge
Klingel
klingele
@@ -68206,7 +67849,6 @@ Klo
klobig
Klone
klöne
-klonen
Klonen
klönen
klönst
@@ -68299,7 +67941,6 @@ klumpigem
klumpigen
klumpiges
km
-km/h
knabbern
knabbernd
knabbernde
@@ -68483,7 +68124,6 @@ Knicks
knicksen
knicksend
knickte
-knie
Knie
Kniebeuge
Kniebeugen
@@ -68499,7 +68139,6 @@ Kniegelenken
Kniegelenks
kniehoch
knielang
-knien
Knien
kniend
kniende
@@ -68518,7 +68157,6 @@ knieten
knietest
knietief
knietiefem
-kniff
Kniff
kniffe
kniffelig
@@ -68654,12 +68292,10 @@ knorpeliger
Knorpeln
knorrig
knorrige
-knospe
Knospe
knospen
knospenhaft
knospenhafte
-knoten
Knoten
Knotenpunkt
Knotenpunkte
@@ -68685,7 +68321,6 @@ knüpften
knüpftet
Knüppel
knüppeldick
-knüppeln
Knüppeln
Knüppels
knüpple
@@ -68825,7 +68460,6 @@ Kohleherde
Kohlehydrate
Kohlehydraten
Kohlehydrates
-kohlen
Kohlen
Kohlenbecken
Kohlenbergbau
@@ -68952,7 +68586,6 @@ Kollegiums
Kollekte
Kollektion
Kollektionen
-kollektiv
Kollektiv
kollektive
kollektivem
@@ -69177,7 +68810,6 @@ Kommissionssitzung
Kommissionsvorschläge
Kommissionsvorsitzende
Kommissionsvorsitzender
-kommode
Kommode
kommoden
kommst
@@ -69191,7 +68823,6 @@ kommunales
Kommunalsteuern
Kommunalverfassung
Kommunalwahlen
-kommune
Kommune
kommunen
Kommunikation
@@ -69323,7 +68954,6 @@ komplettestes
komplettieren
Komplettierung
Komplettierungen
-komplex
Komplex
komplexe
komplexen
@@ -69333,7 +68963,6 @@ komplexerem
komplexeren
komplexerer
komplexeres
-komplexes
Komplexes
Komplexität
Komplicen
@@ -69828,7 +69457,6 @@ konspirativen
konstant
konstante
konstantem
-konstanten
Konstanten
konstanter
konstantes
@@ -70290,7 +69918,6 @@ Kopfbedeckung
Kopfbogen
Kopfe
Köpfe
-köpfen
Köpfen
Kopfende
Kopfes
@@ -70379,7 +70006,6 @@ Korinthe
Korinthen
Kork
Korkeiche
-korken
Korken
Korkens
Korkenziehern
@@ -70573,7 +70199,6 @@ kostbarstem
kostbarsten
kostbarstes
koste
-kosten
Kosten
Kostenanteil
Kostenantrag
@@ -70708,7 +70333,6 @@ kracht
krachten
krächzen
krächzendem
-kraft
Kraft
Kraftakt
Kraftanlagen
@@ -70789,14 +70413,12 @@ Kraftwerks
Kragen
Krägen
Kragens
-krähe
Krähe
krähen
kräht
krähtest
krakeelen
Krakeleien
-kralle
Kralle
krallen
krallte
@@ -70819,10 +70441,8 @@ krampfhafte
krampfhaften
Kran
krank
-kranke
Kranke
krankem
-kranken
Kranken
kränken
Krankenanstalt
@@ -71080,7 +70700,6 @@ kreierten
kreierter
kreiertes
kreiertest
-kreis
Kreis
Kreisabschnitt
Kreisabschnitte
@@ -71105,13 +70724,11 @@ kreischte
kreischten
kreischtet
Kreisdirektion
-kreise
Kreise
Kreisel
kreiseln
kreiselnden
Kreisels
-kreisen
Kreisen
kreisende
kreisenden
@@ -71157,9 +70774,7 @@ krepierendes
krepiert
Kresse
Kreta
-kreuz
Kreuz
-kreuze
Kreuze
kreuzen
kreuzende
@@ -71201,9 +70816,7 @@ kriechender
kriechendes
kriechst
Krieg
-kriege
Kriege
-kriegen
Kriegen
Krieger
kriegerisch
@@ -71291,7 +70904,6 @@ Kriminalroman
kriminell
kriminelle
kriminellem
-kriminellen
Kriminellen
krimineller
kriminelles
@@ -71314,7 +70926,6 @@ krisensicher
krisenunabhängig
Kristall
Kristalle
-kristallen
Kristallen
kristallenen
Kristallgitters
@@ -71464,7 +71075,6 @@ kubanische
Kubas
Kübel
Kübeln
-kubik
Kubik
Kubiken
Kubikmeter
@@ -71505,7 +71115,6 @@ kugelförmiges
Kugelgelenk
kugelig
kugeliger
-kugeln
Kugeln
Kugelradius
Kugelschale
@@ -71783,7 +71392,6 @@ kurbelt
Kurbelwelle
Kürbis
Kurde
-kuren
Kuren
küren
Kurgästen
@@ -71791,7 +71399,6 @@ Kurgastes
Kurie
Kurier
Kurierdienst
-kurieren
Kurieren
kurierten
kurios
@@ -71847,7 +71454,6 @@ Kurt
Kurtisane
Kurtisanen
Kurve
-kurven
Kurven
Kurvendiagramme
kurvenreichen
@@ -71866,7 +71472,6 @@ Kurzbezeichnung
Kurzdarstellung
Kurzdokumentation
kurze
-kürze
Kürze
Kürzel
Kürzeln
@@ -71947,7 +71552,6 @@ Kusinen
Kuss
Küsschen
küsse
-küssen
Küssen
küssend
küssende
@@ -72046,7 +71650,6 @@ Labyrinthes
labyrinthischen
lach
lächele
-lächeln
Lächeln
lächelnd
lächelnden
@@ -72085,7 +71688,6 @@ lachtest
lachtet
Lack
Lackanstriche
-lacke
Lacke
lacken
lackiere
@@ -72109,7 +71711,6 @@ ladefähig
Ladefläche
Ladeflächen
Ladehemmung
-laden
Laden
Läden
ladend
@@ -72710,7 +72311,6 @@ Laterne
Laternen
Laternenpfahl
Latex
-LaTeX
Latifundien
Latifundium
Latinum
@@ -72729,7 +72329,6 @@ Lauch
Lauches
laue
lauem
-lauer
Lauer
lauere
lauerem
@@ -72741,7 +72340,6 @@ Lauerstellung
lauert
lauerte
lauerten
-lauf
Lauf
Laufbahn
laufe
@@ -72847,9 +72445,7 @@ lauste
laustem
lauster
laustes
-laut
Laut
-laute
Laute
lautem
lauten
@@ -72926,7 +72522,6 @@ least
leb
Lebedame
Lebedamen
-leben
Leben
lebend
lebende
@@ -73129,7 +72724,6 @@ lebtet
Lebzeiten
lechzen
lechzt
-leck
Leck
lecke
lecken
@@ -73270,7 +72864,6 @@ Lehrbrief
Lehrbuch
Lehrbücher
Lehrbüchern
-lehre
Lehre
lehren
lehrend
@@ -73463,7 +73056,6 @@ leichtsinnigste
leichtsinnigstem
leichtsinnigsten
leichtsinnigstes
-leid
Leid
leide
leiden
@@ -73953,7 +73545,6 @@ Libyer
libysch
libysche
lich
-licht
Licht
Lichtanlagen
Lichtbild
@@ -73984,7 +73575,6 @@ lichtempfindlichstes
lichten
lichtende
lichtenden
-lichtender
Lichtender
lichter
lichterloh
@@ -74212,7 +73802,6 @@ Lieferwagen
Lieferwagens
Lieferzeit
lieft
-liege
Liege
liegen
liegend
@@ -74258,7 +73847,6 @@ Lilie
Liliputaner
Lima
Limerick
-limes
Limes
Limit
Limitation
@@ -74369,9 +73957,7 @@ lispele
lispeln
lisple
List
-liste
Liste
-listen
Listen
Listenpreis
listenreich
@@ -74488,7 +74074,6 @@ lochende
lochenden
lochender
Löcher
-löchern
Löchern
Loches
Lochkarten
@@ -74502,7 +74087,6 @@ lochtest
lochtet
Lochung
locke
-locken
Locken
lockende
lockenden
@@ -74578,7 +74162,6 @@ logische
logischem
logischen
logischer
-logischerweise
Logischerweise
logisches
Logistik
@@ -74598,7 +74181,6 @@ Lohnbüro
Löhne
Lohnempfänger
lohnen
-löhnen
Löhnen
lohnend
lohnende
@@ -74639,7 +74221,6 @@ lohnten
Lohnzahlung
Lohnzettel
Loipe
-lokal
Lokal
lokalbedingt
lokale
@@ -74692,7 +74273,6 @@ Lords
Lore
Lorelei
Loren
-los
Los
lösbar
lösbare
@@ -74892,7 +74472,6 @@ LPG
LPT
lt
Lübeck
-luchs
Luchs
luchsen
Lücke
@@ -75008,12 +74587,10 @@ Luftwiderstand
Luftzug
Luftzüge
Luftzügen
-lug
Lug
Lugano
lüge
lugen
-lügen
Lügen
Lügendetektor
Lügerei
@@ -75034,7 +74611,6 @@ lukullisch
lukullischen
lukullischer
Lukullismen
-lümmel
Lümmel
lümmelte
Lumpen
@@ -75277,7 +74853,6 @@ Magenleiden
Magenleidens
Magens
Magenschmerzen
-magenta
Magenta
mager
magere
@@ -75445,7 +75020,6 @@ makroskopischen
makroskopischer
makroskopisches
Makulatur
-mal
Mal
malaiischen
Malaria
@@ -75474,7 +75048,6 @@ maliziös
maliziöser
Mallorca
Malmö
-maloche
Maloche
Malprogramme
malst
@@ -75558,7 +75131,6 @@ mangelndes
Mangelpunkt
Mängelpunkte
Mängelrüge
-mangels
Mangels
mangelt
mangelte
@@ -75723,11 +75295,9 @@ Marienkäfer
Marienkäfern
Marihuana
marin
-marine
Marine
marineblaue
marinem
-marinen
Marinen
Marineoffizier
Marineoffiziere
@@ -75961,7 +75531,6 @@ Maskottchen
maskulin
Masochismus
masochistisch
-maß
Maß
Massage
Massagen
@@ -75984,7 +75553,6 @@ Maße
Maßeinheit
Maßeinheiten
Massen
-maßen
Maßen
Massenänderung
Massenandrang
@@ -76099,7 +75667,6 @@ massigsten
mäßigte
mäßigten
Mäßigung
-massiv
Massiv
massive
massivem
@@ -76246,12 +75813,9 @@ matschigstem
matschigsten
matschigstes
matt
-matte
Matte
mattem
-matten
Matten
-matter
Matter
mattere
matterem
@@ -76272,12 +75836,10 @@ Mattscheibe
mattschwarz
Mattsetzen
Maturität
-mauer
Mauer
Mauerblümchen
Mauerblümchens
Mauerdurchlass
-mauern
Mauern
mauernde
Mauersteinen
@@ -76313,7 +75875,6 @@ Mauritius
Maus
Mäuse
Mäusen
-mauser
Mauser
mausern
mausert
@@ -76649,7 +76210,6 @@ Meinungsverschiedenheit
Meinungsverschiedenheiten
Meise
Meißel
-meißeln
Meißeln
Meißen
meist
@@ -76662,7 +76222,6 @@ meiste
meisten
meistens
meistenteils
-meister
Meister
meistere
meisterhaft
@@ -76682,7 +76241,6 @@ meisterliche
meisterlichen
meisterlicher
meisterliches
-meistern
Meistern
meisternd
Meisterprüfung
@@ -76765,7 +76323,6 @@ Memo
Memoiren
Memorandum
Menge
-mengen
Mengen
Mengenänderung
Mengenberechnung
@@ -77064,7 +76621,6 @@ Metall
Metallarbeiter
Metallarbeiters
Metalle
-metallen
Metallen
metallene
metallenen
@@ -77181,7 +76737,6 @@ mieden
Mieder
Miederwaren
miedest
-mief
Mief
Miene
Mienen
@@ -77287,7 +76842,6 @@ Mieze
Migräne
Mikado
Mike
-mikro
Mikro
Mikrobe
Mikroben
@@ -77866,7 +77420,6 @@ Misstimmung
misstönen
misstönenden
misstraue
-misstrauen
Misstrauen
Misstrauens
Misstrauensantrag
@@ -78004,7 +77557,6 @@ Mitbürger
Mitbürgerin
Mitbürgerinnen
Mitbürgern
-mitdenken
Mitdenken
Miteigentum
Miteigentümer
@@ -78331,7 +77883,6 @@ Mitteilung
Mitteilungen
Mitteilungsblätter
mitteilungsgemäß
-mittel
Mittel
Mittelachse
Mittelalter
@@ -78397,7 +77948,6 @@ mittelmäßigsten
mittelmäßigstes
Mittelmeer
Mittelmeers
-mitteln
Mitteln
Mittelpunkt
Mittelpunkte
@@ -78407,7 +77957,6 @@ Mittelpunkts
Mittelpunktsformel
Mittelpunktsformeln
Mittelpunktslage
-mittels
Mittels
Mittelschule
Mittelschulen
@@ -78492,7 +78041,6 @@ mitwirkte
mitwirkten
Mitwirkung
Mitwirkungspflicht
-mitwissen
Mitwissen
Mitwissern
Mitwissers
@@ -78531,7 +78079,6 @@ Mnemotechnik
Mob
Möbel
Möbelgeschäft
-möbeln
Möbeln
Möbels
Möbelstück
@@ -78862,7 +78409,6 @@ Monitor
Monitore
Monitoren
Monitors
-mono
Mono
monochromatische
monogam
@@ -78939,7 +78485,6 @@ Moos
moosigen
Moped
Mopeds
-mops
Mops
Möpse
Moral
@@ -79048,7 +78593,6 @@ moslemisch
Moslems
Most
Moste
-mosten
Mosten
Motel
Motiv
@@ -79124,7 +78668,6 @@ Müdigkeit
Muffe
muffig
muffige
-mühe
Mühe
mühelos
mühelose
@@ -79190,7 +78733,6 @@ Mülltonne
Mülltonnen
Müllverbrennungsanlagen
mulmig
-multi
Multi
multifunktional
Multilinearität
@@ -79296,9 +78838,7 @@ munteres
munterstem
muntersten
munterster
-münze
Münze
-münzen
Münzen
Münzer
Münzgeld
@@ -79448,7 +78988,6 @@ Musterlieferung
Mustermesse
Mustermietvertrag
Mustermietverträgen
-mustern
Mustern
musternd
musternde
@@ -79714,7 +79253,6 @@ nacherzählten
nacherzähltes
Nacherzählung
Nacherzählungen
-nachfahre
Nachfahre
nachfahrt
nachfolge
@@ -79742,7 +79280,6 @@ nachforscht
Nachforschung
Nachforschungen
nachfrage
-nachfragen
Nachfragen
nachfühlen
nachfühlend
@@ -79940,7 +79477,6 @@ nachhelfend
nachher
Nachhilfe
Nachhilfestunde
-nachhinein
Nachhinein
Nachholbedarf
Nachholbedarfs
@@ -79951,7 +79487,6 @@ Nachhut
nachjagen
nachkäme
nachkämen
-nachklang
Nachklang
Nachklänge
nachklängen
@@ -79961,7 +79496,6 @@ nachklingendem
nachklingender
nachklingendes
nachkomme
-nachkommen
Nachkommen
Nachkommens
Nachkommenschaft
@@ -80007,7 +79541,6 @@ nachmachender
nachmachendes
nachmessen
nachmessend
-nachmittag
Nachmittag
Nachmittagen
nachmittags
@@ -80028,7 +79561,6 @@ nachrechnendes
nachrechnet
Nachrede
Nachreden
-nachreichen
Nachreichen
Nachreichung
nachrennen
@@ -80143,7 +79675,6 @@ nachsuchendem
nachsuchender
nachsuchendes
nachsuchte
-nacht
Nacht
Nachtangriff
Nachtarbeit
@@ -80265,7 +79796,6 @@ nachwirkender
nachwirkt
Nachwirkung
Nachwirkungen
-nachwuchs
Nachwuchs
nachwuchsen
Nachwuchses
@@ -80370,7 +79900,6 @@ Nahaufnahmen
nahbar
Nahbereich
nahe
-nähe
Nähe
nahegerückt
nahen
@@ -80597,7 +80126,6 @@ Nashörner
nass
Nassau
nasse
-nässe
Nässe
nassem
nassen
@@ -80869,7 +80397,6 @@ Negation
Negationen
negativ
Negativbescheinigungen
-negative
Negative
negativem
negativen
@@ -80994,11 +80521,8 @@ Neonazismus
Neonlicht
Neons
Nepal
-nepp
Nepp
-nerv
Nerv
-nerven
Nerven
Nervenarzt
nervenaufreibend
@@ -81199,7 +80723,6 @@ neueste
neuestem
neuesten
neuester
-neuestes
Neuestes
Neufestsetzung
neuformieren
@@ -81376,11 +80899,8 @@ Newton
Newtonmeter
Newtons
newtonsche
-Newton'sche
newtonschen
-Newton'schen
newtonsches
-Newton'sches
Nicaragua
nicht
Nichtachtung
@@ -81694,7 +81214,6 @@ nieste
niesten
niestest
Niet
-niete
Niete
nieten
Niethosen
@@ -81832,7 +81351,6 @@ nonkonformistisches
Nonne
Nonnen
Nonplusultra
-nord
Nord
Nordafrika
nordafrikanischen
@@ -81900,7 +81418,6 @@ Nordzipfel
nörgeln
nörgelt
nörgelten
-norm
Norm
normal
Normalausführung
@@ -81966,7 +81483,6 @@ Normanne
normativ
normative
norme
-normen
Normen
Normenausschuss
normgerecht
@@ -82167,7 +81683,6 @@ nuklear
nukleare
nuklearen
nukleares
-null
Null
Nulldurchgänge
Nullen
@@ -82197,7 +81712,6 @@ nummeriertes
nummeriertet
Nummerierung
Nummerierungen
-nummern
Nummern
Nummernfolge
Nummernkonten
@@ -82232,10 +81746,8 @@ nutzbringende
nutzbringenden
nutzbringender
nutzbringendes
-nutze
Nutze
nütze
-nutzen
Nutzen
nützen
Nutzenanalyse
@@ -82330,7 +81842,6 @@ obenliegendem
obenliegenden
obenliegender
obenliegendes
-ober
Ober
Oberammergau
Oberarm
@@ -82509,7 +82020,6 @@ obwohl
obzwar
Ochs
Ochse
-ocker
Ocker
ockergelb
ockergelbe
@@ -82680,7 +82190,6 @@ oh
Oheim
Ohio
ohmsche
-Ohm'sche
ohmschen
ohmscher
ohne
@@ -82821,7 +82330,6 @@ Olympiasiegerin
Olympiastadion
Olympiastadions
olympisch
-olympische
Olympische
olympischen
olympischer
@@ -82971,11 +82479,9 @@ Optokoppler
opulent
opulenter
Opus
-orange
Orange
orangefarbene
orangem
-orangen
Orangen
orangenfarbene
Orangensaft
@@ -82986,7 +82492,6 @@ oranges
Oratorium
Oratoriums
Orbital
-orbitale
Orbitale
Orbitales
Orbitals
@@ -83169,7 +82674,6 @@ Orientierungspreis
Orientierungspunkt
Orientierungsrahmen
Orients
-original
Original
Originalantwort
Originalausgabe
@@ -83203,9 +82707,7 @@ Ornament
Ornamenten
Ort
Ortbändern
-orte
Orte
-orten
Orten
ortend
ortende
@@ -83409,9 +82911,7 @@ Ozon
Ozonschicht
paar
Paarbildung
-paare
Paare
-paaren
Paaren
Paares
paart
@@ -83527,7 +83027,6 @@ Paläste
Palästen
Palastes
Palästinenser
-palaver
Palaver
palavern
Palermo
@@ -83641,7 +83140,6 @@ Pappband
Pappbände
Pappbandes
Pappbecher
-pappe
Pappe
Pappel
Pappeln
@@ -83725,10 +83223,8 @@ Paragraphen
Paragraphenreiter
Paraguay
parallel
-parallele
Parallele
parallelem
-parallelen
Parallelen
paralleler
paralleles
@@ -83956,7 +83452,6 @@ Parteivorsitz
Parteivorsitzende
Parteivorstände
Partenkirchen
-parterre
Parterre
partial
Partie
@@ -84004,7 +83499,6 @@ Parzellen
parzelliert
parzellierten
Pascal
-PASCAL
Pascha
Pass
passabel
@@ -84022,7 +83516,6 @@ Passagierin
Passagiers
Passagierschiff
Passagierschiffes
-passant
Passant
Passanten
Passau
@@ -84134,7 +83627,6 @@ Patenkind
Patenschaft
Patenschaften
Patenstelle
-patent
Patent
Patentamt
Patentämter
@@ -84245,12 +83737,10 @@ patrouillierst
patrouillierte
patrouillierten
patrouilliertest
-patsche
Patsche
Pattstellung
patzen
Patzer
-pauke
Pauke
Paukenschlag
Paukenschläge
@@ -84267,7 +83757,6 @@ Pauschalabgeltung
Pauschalbetrag
pauschale
pauschalem
-pauschalen
Pauschalen
pauschaleren
pauschales
@@ -84279,7 +83768,6 @@ Pauschalreisen
pauschalste
Pauschalverurteilung
Pause
-pausen
Pausen
pausenlos
pausenlosem
@@ -84524,7 +84012,6 @@ Peripheriekonzept
Peripherien
Perkussionist
perle
-perlen
Perlen
perlend
perlende
@@ -84767,7 +84254,6 @@ Pfennigfuchser
Pfennigs
Pfennigstück
Pferch
-pferche
Pferche
pferchen
Pferd
@@ -84787,7 +84273,6 @@ Pferdestärke
Pferdestärken
Pfg
pfiff
-pfiffe
Pfiffe
pfiffig
pfiffige
@@ -84804,7 +84289,6 @@ Pfirsich
Pfirsiche
Pfirsichen
pflanze
-pflanzen
Pflanzen
pflanzend
pflanzende
@@ -84852,7 +84336,6 @@ Pflaume
Pflaumen
Pflaumenbaum
pflaumenblaues
-pflege
Pflege
Pflegeanstalt
pflegebedürftig
@@ -84913,7 +84396,6 @@ pflichteifrige
pflichteifrigen
pflichteifriger
pflichteifriges
-pflichten
Pflichten
Pflichtenheft
Pflichtenkreis
@@ -85105,7 +84587,6 @@ philosophischen
philosophischer
philosophisches
Phlegma
-phon
Phon
Phonetik
phonetisch
@@ -85191,7 +84672,6 @@ pickten
piekfein
piepen
piepse
-piepsen
Piepsen
Piepser
piepste
@@ -85338,14 +84818,12 @@ Plakatmaler
Plakatsäule
Plakette
Plaketten
-plan
Plan
planare
planaren
planarer
plane
Pläne
-planen
Planen
Plänen
planende
@@ -85466,11 +84944,9 @@ Plättchen
Plättchens
plattdeutsch
Plattdeutsche
-platte
Platte
plätte
plattem
-platten
Platten
Plattendicke
Plattendicken
@@ -85554,7 +85030,6 @@ plausiblerer
plausibles
Play-back
Playboy
-pleite
Pleite
pleitebedroht
Pleiten
@@ -85598,7 +85073,6 @@ plünderten
plündertet
Plünderung
Plünderungen
-plural
Plural
Plurale
Pluralismus
@@ -85668,7 +85142,6 @@ pokerte
Pol
polar
Polarachse
-polare
Polare
polarem
polaren
@@ -85706,7 +85179,6 @@ Polarstern
Polarwinkel
Polarwinkels
Poldistanz
-pole
Pole
Polemik
Polemiken
@@ -85727,7 +85199,6 @@ polemisiertem
polemisierter
polemisiertes
polemisiertest
-polen
Polen
Polens
Polente
@@ -85854,7 +85325,6 @@ Polygonzüge
Polygonzügen
Polygonzuges
polykristalline
-polymer
Polymer
Polymere
Polymeren
@@ -86001,7 +85471,6 @@ Portweinen
Portweines
Porzellan
Porzellane
-posaune
Posaune
posaunen
posaunet
@@ -86494,7 +85963,6 @@ predigt
predigte
predigten
predigtest
-preis
Preis
Preisabbau
Preisabschlag
@@ -86511,11 +85979,9 @@ preisbereinigt
preisbewusst
Preisbildung
Preisdifferenz
-preise
Preise
Preisempfehlung
Preisempfehlungen
-preisen
Preisen
preisenden
preisender
@@ -86625,7 +86091,6 @@ Premierminister
Premierministerin
Presbyterianer
preschen
-presse
Presse
Presseamt
Presseamtes
@@ -86674,7 +86139,6 @@ Priestern
Priesterrock
Priestertum
Priesterweihe
-prim
Prim
prima
Primaballerina
@@ -86818,7 +86282,6 @@ Probelauf
Probeläufe
probelesen
Probelieferung
-proben
Proben
Probenarbeit
probende
@@ -87610,7 +87073,6 @@ prunkvoll
prunkvolle
prunkvollen
pseudo
-pseudonym
Pseudonym
pseudonymen
Pseudonyms
@@ -87686,7 +87148,6 @@ Pudelmütze
Pudels
pudelwohl
Puder
-pudern
Pudern
Puders
puderte
@@ -87739,9 +87200,7 @@ pulvern
Pulvers
pulverte
Puma
-pump
Pump
-pumpe
Pumpe
pumpen
pumpende
@@ -87760,7 +87219,6 @@ Punk
Punkt
Punkte
Punktekämpfe
-punkten
Punkten
Punktepaar
Punktes
@@ -87812,9 +87270,7 @@ Punktzeile
Punsch
Pupille
Pupillen
-puppe
Puppe
-puppen
Puppen
Puppenspieler
Puppenwagen
@@ -87861,7 +87317,6 @@ putschen
putscht
putschte
Pütt
-putz
Putz
putze
putzen
@@ -87930,7 +87385,6 @@ quäkendsten
quäkendster
Quäker
Quäkers
-qual
Qual
quäle
quälen
@@ -88086,9 +87540,7 @@ Quatsch
Quebec
Quell
Quelldatei
-quelle
Quelle
-quellen
Quellen
Quellenangabe
Quellensteuer
@@ -88104,7 +87556,6 @@ quellten
quer
Querachse
Querachsen
-quere
Quere
Querelement
Querelemente
@@ -88118,7 +87569,6 @@ Querschlägers
Querschnitt
Querschnitte
Querschnitten
-querschnittgelähmte
Querschnittgelähmte
Querschnitts
Querschnittsfläche
@@ -88252,7 +87702,6 @@ rächte
rächten
rächtest
rächtet
-rad
Rad
Radar
Radaranlage
@@ -88329,9 +87778,7 @@ radiertet
Radierung
Radierungen
Radieschen
-radikal
Radikal
-radikale
Radikale
radikalem
radikalen
@@ -88441,7 +87888,6 @@ ragte
ragten
ragtest
Rahm
-rahmen
Rahmen
Rahmenabkommens
Rahmenbedingung
@@ -88518,7 +87964,6 @@ Randbereich
Rande
Randeffekte
Ränder
-rändern
Rändern
Randerscheinung
Randes
@@ -88548,10 +87993,8 @@ Randwert
Randwerte
Randwerten
Randzone
-rang
Rang
Rangältesten
-ränge
Ränge
rangen
rängen
@@ -88692,7 +88135,6 @@ rassische
Rassismus
rassistisch
rassistischer
-rast
Rast
raste
rasten
@@ -88949,9 +88391,7 @@ Raumaufteilung
Raumbedarf
Raumdiagonalen
Raume
-räume
Räume
-räumen
Räumen
räumend
räumende
@@ -89026,7 +88466,6 @@ raus
rausbekommen
Rausch
rausche
-rauschen
Rauschen
rauschend
rauschende
@@ -89057,7 +88496,6 @@ räuspere
räuspern
räuspert
räusperte
-rausschmiss
Rausschmiss
raussuchen
rauszubekommen
@@ -89084,7 +88522,6 @@ reagierte
reagierten
reagiertest
Reaktion
-reaktionär
Reaktionär
reaktionäre
reaktionärem
@@ -89177,7 +88614,6 @@ rebellisches
Reben
Rebenblätter
Rechaud
-rechen
Rechen
Rechenanlage
Rechenanlagen
@@ -89249,7 +88685,6 @@ Rechnungsprüfern
Rechnungsprüfers
Rechnungsprüfung
Rechnungswesens
-recht
Recht
rechte
Rechteck
@@ -89309,7 +88744,6 @@ rechtmäßigen
rechtmäßiger
rechtmäßiges
Rechtmäßigkeit
-rechts
Rechts
Rechtsamt
Rechtsanspruch
@@ -89489,7 +88923,6 @@ rechtzeitige
rechtzeitigen
rechtzeitiger
rechtzeitiges
-reck
Reck
Recke
recken
@@ -89744,7 +89177,6 @@ regelmäßigstes
Regelmechanismen
Regelmechanismus
Regelmöglichkeit
-regeln
Regeln
regelnde
regelndem
@@ -89770,7 +89202,6 @@ regelwidriger
Regelwidrigkeit
Regelzugang
regem
-regen
Regen
Regenbogen
Regenbögen
@@ -90016,9 +89447,7 @@ reibungsloses
Reibungstensor
Reibungstensors
Reibungsterm
-reich
Reich
-reiche
Reiche
reichen
reichend
@@ -90081,7 +89510,6 @@ Reichweiten
reif
reife
reifem
-reifen
Reifen
reifende
reifendem
@@ -90119,9 +89547,7 @@ reiftest
reiftet
Reifung
Reigen
-reihe
Reihe
-reihen
Reihen
Reihenfolge
Reihenhaus
@@ -90218,7 +89644,6 @@ reinwaschende
reinwascht
reinzogen
Reis
-reise
Reise
Reiseantritt
Reisebegleiter
@@ -90258,9 +89683,7 @@ reisen
reisend
Reisende
reisendem
-reisenden
Reisenden
-reisender
Reisender
Reisepass
Reisepässe
@@ -90925,7 +90348,6 @@ retournierter
retourniertes
retourniertest
retrospektiv
-retrospektive
Retrospektive
retrospektiver
rette
@@ -91029,7 +90451,6 @@ revoltieren
revoltierenden
Revolution
revolutionär
-revolutionäre
Revolutionäre
revolutionären
revolutionärer
@@ -91126,7 +90547,6 @@ richtiger
richtigerem
richtigeren
richtigerer
-richtiges
Richtiges
Richtigkeit
Richtigstellung
@@ -91246,10 +90666,8 @@ Rindern
Rindfleisch
Rinds
Ring
-ringe
Ringe
ringelten
-ringen
Ringen
ringend
ringendem
@@ -91267,7 +90685,6 @@ Ringkampf
Ringkämpfen
Ringkampfes
Ringrichter
-rings
Rings
ringst
ringsum
@@ -91323,11 +90740,8 @@ riskiert
riskierte
riskierten
riskiertet
-riss
Riss
-risse
Risse
-rissen
Rissen
rissig
rissige
@@ -91343,10 +90757,8 @@ rissigsten
rissigstes
Rita
Riten
-ritt
Ritt
ritte
-ritten
Ritten
Ritter
ritterlich
@@ -91358,7 +90770,6 @@ rittest
rittlings
rittst
Ritual
-rituale
Rituale
Ritualen
ritualisiert
@@ -91368,7 +90779,6 @@ rituelle
rituellem
rituellen
rituelles
-ritze
Ritze
Ritzel
ritzen
@@ -91398,7 +90808,6 @@ rivalisiertest
Rivalität
Riviera
Rizinus
-robbe
Robbe
robben
robbt
@@ -91486,7 +90895,6 @@ Rohrbruchs
Rohre
Röhre
Rohren
-röhren
Röhren
röhrenförmig
röhrenförmigem
@@ -91502,9 +90910,7 @@ Rohstoffpreise
Rohstoffpreisen
Rohware
Roland
-rolle
Rolle
-rollen
Rollen
Rollenbesetzung
rollendem
@@ -91563,7 +90969,6 @@ römischen
römischer
römisches
Ronald
-röntgen
Röntgen
Röntgenaufnahme
Röntgenstrahlen
@@ -91643,7 +91048,6 @@ Rotationskörpers
Rotationswirkung
rotbraun
rote
-röte
Röte
Röteln
rotem
@@ -91712,7 +91116,6 @@ Rubins
Rubrik
Rubriken
ruchbar
-ruck
Ruck
Rückansicht
Rückantwort
@@ -91920,7 +91323,6 @@ rudimentär
rudimentäre
rudimentäres
Rudolf
-ruf
Ruf
rufe
rufen
@@ -91939,7 +91341,6 @@ Rugby
rügen
rügte
ruh
-ruhe
Ruhe
Ruhebedürftigkeit
Ruhelage
@@ -92135,7 +91536,6 @@ runtergeschraubt
runtergezählt
Runzel
runzele
-runzeln
Runzeln
runzle
runzlig
@@ -92209,7 +91609,6 @@ Rutsch
Rutschbahn
Rutschbahnen
rutsche
-rutschen
Rutschen
rutschend
rutschende
@@ -92368,11 +91767,9 @@ Sachverhalts
Sachverhaltsaufklärung
Sachvermögen
Sachverstand
-sachverständige
Sachverständige
Sachverständigen
Sachverständigenstellen
-sachverständiger
Sachverständiger
Sachvortrag
Sachwert
@@ -92419,7 +91816,6 @@ saftloses
Safts
sag
Saga
-sage
Sage
säge
Sägeblatt
@@ -92462,7 +91858,6 @@ Sägewerke
Sägewerken
Sägewerks
sägezahnförmig
-sag's
sagst
sagt
sägt
@@ -92625,7 +92020,6 @@ Salzbergwerke
Salzbergwerken
Salzburg
Salzburgs
-salze
Salze
salzen
Salzes
@@ -92708,9 +92102,7 @@ Samstage
Samstagen
Samstagnachmittag
samstagnachts
-samstags
Samstags
-samt
Samt
samtartig
samtartige
@@ -93042,7 +92434,6 @@ Sauce
Saucen
Sauciere
Säue
-sauen
Sauen
sauer
Sauerbraten
@@ -93327,7 +92718,6 @@ Schädel
Schädelbruch
Schädeldecke
Schädeln
-schaden
Schaden
Schäden
schadend
@@ -93491,14 +92881,11 @@ schäkerte
schäkerten
schäkertest
schäkertet
-schal
Schal
Schälchen
-schale
Schale
schäle
schalem
-schalen
Schalen
schälen
schälend
@@ -93869,7 +93256,6 @@ Schatzämter
Schatzamtes
Schatzanweisung
Schätzchen
-schätze
Schätze
schätzen
schätzenswert
@@ -93897,7 +93283,6 @@ Schätzung
Schätzungen
Schätzwert
Schätzwerte
-schau
Schau
Schaubild
Schaubilder
@@ -93934,7 +93319,6 @@ schauend
schauenden
schauender
schauendes
-schauer
Schauer
schauerartig
schauerlich
@@ -94456,7 +93840,6 @@ Schichtarbeit
Schichtarbeiter
Schichtarbeitern
Schichtarbeiters
-schichten
Schichten
schichtend
schichtende
@@ -94540,7 +93923,6 @@ schief
schiefe
schiefem
schiefen
-schiefer
Schiefer
Schieferdach
schiefere
@@ -94649,9 +94031,7 @@ schiffbrüchiger
Schiffbruchs
Schiffbrücke
Schiffchen
-schiffe
Schiffe
-schiffen
Schiffen
schiffend
schiffende
@@ -94840,7 +94220,6 @@ schindete
Schinken
Schinkenwürste
Schirm
-schirme
Schirme
schirmen
schirmend
@@ -94886,7 +94265,6 @@ Schlachtbeilen
Schlachtbeiles
Schlachtbeils
schlachte
-schlachten
Schlachten
schlachtend
schlachtende
@@ -94925,14 +94303,12 @@ Schlachtung
Schlachtvieh
Schlachtviehs
Schlacke
-schlacken
Schlacken
schlackern
schlackernd
schlackernde
schlackerst
schlackig
-schlaf
Schlaf
Schlafanzug
Schlafanzügen
@@ -95142,7 +94518,6 @@ schlammigem
schlammigen
schlammiger
schlammiges
-schlampe
Schlampe
schlampen
Schlamperei
@@ -95161,7 +94536,6 @@ schlängelnde
schlängelnder
schlängelndes
schlängelte
-schlangen
Schlangen
Schlangenbiss
Schlangenbisse
@@ -95210,7 +94584,6 @@ Schlaraffenland
Schlaraffenlandes
schlau
Schlauberger
-schlauch
Schlauch
Schlauchboot
Schlauchbooten
@@ -95237,7 +94610,6 @@ Schlawiner
schlecht
schlechte
schlechtem
-schlechten
Schlechten
schlechter
schlechterdings
@@ -95291,9 +94663,7 @@ schleierhaftestem
schleierhaftester
schleierhaftestes
Schleiers
-schleife
Schleife
-schleifen
Schleifen
schleifend
schleifende
@@ -95363,7 +94733,6 @@ schlenkert
schlenkerte
schlenkerten
schlenkertet
-schlepp
Schlepp
schleppe
schleppen
@@ -95413,9 +94782,7 @@ schleunigste
schleunigsten
schleunigster
schleunigstes
-schleuse
Schleuse
-schleusen
Schleusen
Schleusentor
schleust
@@ -95428,7 +94795,6 @@ schlichten
schlichtende
schlichtenden
schlichtender
-schlichter
Schlichter
schlichtere
schlichterem
@@ -95460,7 +94826,6 @@ schliefet
schlieft
schlierenartig
schließe
-schließen
Schließen
schließend
schließende
@@ -95476,7 +94841,6 @@ schließlich
schließt
Schließung
Schließungen
-schliff
Schliff
schliffen
Schliffs
@@ -95488,7 +94852,6 @@ schlimmer
schlimmere
schlimmerem
schlimmerer
-schlimmeres
Schlimmeres
schlimmes
schlimmsten
@@ -95536,7 +94899,6 @@ schlohweiße
schlohweißem
schlohweißer
schlohweißes
-schloss
Schloss
schlossen
Schlosser
@@ -95573,7 +94935,6 @@ Schlucht
Schluchten
Schluchtwandern
schluchze
-schluchzen
Schluchzen
schluchzend
schluchzende
@@ -95701,7 +95062,6 @@ Schlüsselindustrien
Schlüssellöcher
Schlüssellöchern
Schlüsselloches
-schlüsseln
Schlüsseln
Schlüsselnummern
Schlüsselposition
@@ -95937,7 +95297,6 @@ schmelzbare
schmelzbaren
schmelzbarer
schmelzbares
-schmelze
Schmelze
schmelzen
schmelzend
@@ -95958,7 +95317,6 @@ Schmerbäuche
Schmerbäuchen
Schmerbauches
Schmerz
-schmerzen
Schmerzen
schmerzend
schmerzende
@@ -96096,7 +95454,6 @@ Schmierung
Schmierungen
Schmierzettel
schmilzt
-schminke
Schminke
schminken
schminkende
@@ -96156,7 +95513,6 @@ schmorte
schmorten
schmortest
schmortet
-schmuck
Schmuck
schmucke
schmücke
@@ -96361,7 +95717,6 @@ schnauftest
Schnauzbart
Schnauzbärte
Schnauzbartes
-schnauze
Schnauze
schnäuze
schnäuzen
@@ -96442,7 +95797,6 @@ schneeweiße
schneeweißem
schneeweißer
schneeweißes
-schneid
Schneid
Schneidbrenner
Schneidbrennern
@@ -96561,7 +95915,6 @@ schneuzendes
schniefen
schniegeln
Schnippchen
-schnippel
Schnippel
schnippeln
schnippelnd
@@ -96577,12 +95930,10 @@ schnippisch
schnippischen
schnippischer
schnippisches
-schnitt
Schnitt
Schnittblumen
Schnittbohnen
Schnitte
-schnitten
Schnitten
Schnittern
Schnittes
@@ -96717,7 +96068,6 @@ Schnuller
Schnullern
Schnulze
Schnulzen
-schnupfen
Schnupfen
schnupfende
schnupfenden
@@ -96733,7 +96083,6 @@ Schnupftuch
Schnupftücher
Schnupftüchern
Schnupftuches
-schnuppe
Schnuppe
schnuppere
schnuppern
@@ -96791,7 +96140,6 @@ schob
schoben
Schober
Schobern
-schock
Schock
schocke
schocken
@@ -97021,9 +96369,7 @@ schränktet
Schranktüren
Schraubdeckeln
Schraubdeckels
-schraube
Schraube
-schrauben
Schrauben
Schraubendampfer
Schraubenfeder
@@ -97050,10 +96396,8 @@ Schraubverschlüssen
Schraubverschlusses
Schrebergärten
Schrebergartens
-schreck
Schreck
schrecke
-schrecken
Schrecken
schreckend
schreckenden
@@ -97084,7 +96428,6 @@ schrecklichere
schrecklicherem
schrecklicherer
schrecklicheres
-schreckliches
Schreckliches
schrecklichstem
schrecklichsten
@@ -97102,7 +96445,6 @@ schreckte
schreckten
schrecktest
schrecktet
-schrei
Schrei
Schreibarbeit
Schreibaufwand
@@ -97289,15 +96631,11 @@ schrillstem
schrillsten
schrillstes
schrillt
-schritt
Schritt
-schritte
Schritte
-schritten
Schritten
Schrittes
schrittet
-schritthalten
Schritthalten
Schrittmacher
Schrittmachers
@@ -97428,7 +96766,6 @@ schüchternster
schuf
schufen
schufst
-schuft
Schuft
schuften
Schufterei
@@ -97488,7 +96825,6 @@ Schulbücher
Schulbüchern
Schulbuches
Schulbuchs
-schuld
Schuld
Schuldanerkenntnis
schuldbeladen
@@ -97500,7 +96836,6 @@ schuldbewusste
schuldbewussten
schuldbewusster
schuldbewusstes
-schulden
Schulden
Schuldenbergs
schuldend
@@ -97653,7 +96988,6 @@ Schulterblatt
schultere
schulterfrei
Schulterklappe
-schultern
Schultern
schulternde
schulternden
@@ -97750,7 +97084,6 @@ schürte
schürten
schürtest
Schurz
-schürze
Schürze
schürzen
Schurzes
@@ -97785,7 +97118,6 @@ Schusslinien
Schusswaffe
Schussweite
Schusswunde
-schuster
Schuster
schustere
schustern
@@ -97805,7 +97137,6 @@ schütte
schüttele
Schüttelfrost
Schüttelfrosts
-schütteln
Schütteln
schüttelnd
schüttelnde
@@ -97852,9 +97183,7 @@ Schutzbrillen
Schutzdächer
Schutzdächern
Schutzdaches
-schütze
Schütze
-schützen
Schützen
schützend
schützendem
@@ -97945,12 +97274,10 @@ schwäbische
schwäbischen
schwach
schwache
-schwäche
Schwäche
Schwächeanfälle
schwachem
schwachen
-schwächen
Schwächen
schwächend
schwächende
@@ -98037,7 +97364,6 @@ Schwall
Schwälle
Schwallen
Schwalls
-schwamm
Schwamm
Schwammbefall
Schwämme
@@ -98153,7 +97479,6 @@ Schwarzbrots
schwarze
schwarzem
schwarzen
-schwärzen
Schwärzen
schwärzend
schwärzende
@@ -98227,7 +97552,6 @@ schwatzt
schwatzte
schwatzten
schwatztest
-schwebe
Schwebe
Schwebebahn
Schwebebalken
@@ -98441,7 +97765,6 @@ Schwemmlandes
schwemmt
schwemmte
schwemmten
-schwenk
Schwenk
Schwenkarm
Schwenkarme
@@ -98880,14 +98203,12 @@ sechswöchig
sechzehn
sechzehntausend
sechzehnte
-sechzehntel
Sechzehntel
sechzehntem
sechzehnten
sechzehnter
sechzehntes
sechzig
-sechziger
Sechziger
Sechzigern
Sechzigers
@@ -99150,7 +98471,6 @@ Sehfeldern
Sehkraft
sehn
sehne
-sehnen
Sehnen
sehnende
Sehnenscheidenentzündung
@@ -99288,7 +98608,6 @@ seimige
seimigem
seimigen
seimiges
-sein
Sein
seine
seinem
@@ -99310,7 +98629,6 @@ seist
seit
seitdem
Seite
-seiten
Seiten
Seitenanfang
Seitenangabe
@@ -99768,7 +99086,6 @@ senilste
senilstem
senilsten
senilstes
-senior
Senior
Senioren
Seniors
@@ -100016,7 +99333,6 @@ setzte
setzten
setztest
Seuche
-seuchen
Seuchen
Seuchenherd
seufze
@@ -100250,13 +99566,11 @@ siebzehn
siebzehnjährig
siebzehnt
siebzehnte
-siebzehntel
Siebzehntel
siebzehntem
siebzehnten
siebzehntes
siebzig
-siebziger
Siebziger
Siebzigerinnen
Siebzigers
@@ -100309,7 +99623,6 @@ Sieg
siege
Siegel
Siegellack
-siegeln
Siegeln
siegelnd
Siegelring
@@ -100367,7 +99680,6 @@ sieh
siehe
siehst
sieht
-siel
Siel
Siemens
Siesta
@@ -100543,7 +99855,6 @@ sinnbildlich
sinnbildlichem
sinnbildlicher
sinnbildliches
-sinne
Sinne
sinnen
sinnende
@@ -100739,7 +100050,6 @@ situierte
situiertem
situierten
situiertes
-sitz
Sitz
Sitzbad
sitze
@@ -100779,7 +100089,6 @@ sizilianisches
Sizilien
Skala
Skalar
-skalare
Skalare
Skalaren
skalares
@@ -100996,7 +100305,6 @@ Sofortmaßnahmen
Software
Softwarehaus
Softwarepakets
-sog
Sog
sogar
sogen
@@ -101008,7 +100316,6 @@ Sohlenleder
Sohlenleders
Sohn
Söhne
-söhnen
Söhnen
Sohnes
Sohns
@@ -101070,7 +100377,6 @@ solidesten
solidestes
Solidität
Solist
-soll
Soll
Sollbeschaffenheit
Sollbruchstelle
@@ -101080,7 +100386,6 @@ Söller
Sollmaß
Sollmenge
Solls
-soll's
sollst
Sollstärke
sollte
@@ -101089,7 +100394,6 @@ solltest
solltet
Sollwert
Sollzustand
-solo
Solo
Solostimme
Solquellen
@@ -101237,9 +100541,7 @@ Sonnabend
Sonnabende
Sonnabenden
sonnabends
-sonne
Sonne
-sonnen
Sonnen
Sonnenaufgang
Sonnenaufgänge
@@ -101348,7 +100650,6 @@ Sopranen
Sopranist
Sopranisten
Sopranistinnen
-sorge
Sorge
sorgen
sorgend
@@ -101438,7 +100739,6 @@ Souffleusen
soundsovielte
Souterrain
Souterrains
-souverän
Souverän
souveräne
souveränen
@@ -101582,9 +100882,7 @@ Spalieren
Spaliers
Spalt
spaltbaren
-spalte
Spalte
-spalten
Spalten
spaltende
spaltenden
@@ -101616,11 +100914,9 @@ spanischen
spanischer
spanisches
spanlos
-spann
Spann
Spannbeton
Spannbetons
-spanne
Spanne
spannen
spannend
@@ -101851,7 +101147,6 @@ Speere
Speeren
Speerwurf
Speiche
-speichel
Speichel
Speicheldrüsen
Speichelfluss
@@ -101897,7 +101192,6 @@ Speisefettes
Speisekammer
Speisekammern
Speisekarte
-speisen
Speisen
speisend
speisende
@@ -101936,7 +101230,6 @@ spektakulären
spektakuläres
spektakulärsten
Spektra
-spektral
Spektral
Spektralanalyse
Spektralanalysen
@@ -102381,13 +101674,10 @@ spitzbübisch
Spitzdach
Spitzdächer
Spitzdachs
-spitze
Spitze
Spitzel
-spitzeln
Spitzeln
Spitzels
-spitzen
Spitzen
Spitzenbelastung
Spitzenbewertung
@@ -102620,7 +101910,6 @@ Sprache
spräche
Spracheigentümlichkeit
Spracheigentümlichkeiten
-sprachen
Sprachen
sprächen
Sprachenumschaltung
@@ -102889,10 +102178,8 @@ spröderes
sprödstem
sprödsten
sprödstes
-spross
Spross
Sprosse
-sprossen
Sprossen
sprossest
Sprössling
@@ -102988,7 +102275,6 @@ Spuks
spukt
Spule
spüle
-spulen
Spulen
spülen
spulend
@@ -103431,7 +102717,6 @@ stagnierendes
stagniert
stagnierte
stagnierten
-stahl
Stahl
Stahlbau
Stahlbaus
@@ -103579,7 +102864,6 @@ stampfte
stampften
stampftest
stampftet
-stand
Stand
Standard
Standardabweichung
@@ -103634,7 +102918,6 @@ Standbild
Ständchen
Ständchens
Stande
-stände
Stände
standen
Stander
@@ -103824,7 +103107,6 @@ starkem
Stärkemehl
Stärkemehls
starken
-stärken
Stärken
stärkende
stärkenden
@@ -104070,7 +103352,6 @@ staubdicht
Stäube
Staubecken
stauben
-stäuben
Stäuben
staubende
staubenden
@@ -104138,7 +103419,6 @@ Stauer
Staufer
Staumauer
staune
-staunen
Staunen
staunend
staunende
@@ -104427,9 +103707,7 @@ Stellage
Stellagen
Stelldichein
Stelldicheins
-stelle
Stelle
-stellen
Stellen
Stellenangebot
Stellenangebote
@@ -104628,7 +103906,6 @@ sterblichem
sterblichen
sterbliches
Sterblichkeit
-stereo
Stereo
Stereoaufnahme
Stereoaufnahmen
@@ -104800,7 +104077,6 @@ steuernder
steuerndes
Steuernummer
steuerpflichtig
-steuerpflichtige
Steuerpflichtige
steuerpflichtigem
steuerpflichtigen
@@ -104852,7 +104128,6 @@ stibitzten
stibitztes
stibitztest
stibitztet
-stich
Stich
Stiche
Stichel
@@ -104955,10 +104230,8 @@ stiebtet
Stiefbruder
Stiefbrüder
Stiefbrüdern
-stiefel
Stiefel
Stiefelknecht
-stiefeln
Stiefeln
stiefelnd
stiefelnde
@@ -104992,7 +104265,6 @@ Stiefväter
Stiefvätern
Stiefvaters
stieg
-stiege
Stiege
stiegen
stiegst
@@ -105001,7 +104273,6 @@ stiehlt
Stiel
Stielen
Stiels
-stier
Stier
stiere
stieren
@@ -105086,7 +104357,6 @@ stilistischer
stilistisches
Stilkunde
still
-stille
Stille
stillegend
stillem
@@ -105142,7 +104412,6 @@ Stillsetzen
stillsitzender
stillsitzendes
stillst
-stillstand
Stillstand
Stillstandes
Stillstands
@@ -105178,7 +104447,6 @@ Stimmband
Stimmbändern
Stimmbruch
Stimmbruchs
-stimme
Stimme
stimmen
Stimmenfang
@@ -105320,7 +104588,6 @@ stolpere
Stolperer
stolpern
stolperten
-stolz
Stolz
stolze
stolzen
@@ -105334,7 +104601,6 @@ Stopfgarn
Stopfnadeln
stopft
stopfte
-stopp
Stopp
stoppe
Stoppel
@@ -105438,7 +104704,6 @@ Störungsmeldung
Störunterdrückung
Story
Storys
-stoß
Stoß
stoßartig
Stoßdämpfer
@@ -105554,7 +104819,6 @@ Strahl
Strahlantrieb
Strahlantriebes
Strahlantriebs
-strahlen
Strahlen
Strahlenbehandlung
Strahlenbrechung
@@ -105721,7 +104985,6 @@ strebten
Strebung
Streckbett
Streckbetts
-strecke
Strecke
strecken
Streckenabschnitt
@@ -105762,13 +105025,11 @@ Streichorchesters
Streichquartett
Streichung
Streichungen
-streif
Streif
Streifband
Streifbändern
Streifbandes
Streife
-streifen
Streifen
Streifens
Streifenwagen
@@ -105843,7 +105104,6 @@ Streubüchse
Streubüchsen
Streudosen
Streueffekt
-streuen
Streuen
streuend
streuende
@@ -105861,7 +105121,6 @@ streute
Streuung
Streuungen
Streuzucker
-strich
Strich
Striche
Strichformen
@@ -105923,7 +105182,6 @@ Stromabnehmer
Stromabnehmern
Stromabnehmers
Strome
-ströme
Ströme
strömen
strömende
@@ -106031,7 +105289,6 @@ Stückarbeitern
Stückarbeiters
Stückchen
stückchenweise
-stücke
Stücke
stückeln
stückelnd
@@ -106046,7 +105303,6 @@ stückeltest
stückeltet
Stückelung
Stückelungen
-stücken
Stücken
Stückes
Stückgut
@@ -106190,7 +105446,6 @@ stummes
Stummfilme
Stummfilmen
Stummfilms
-stümper
Stümper
Stümperei
stümperhaft
@@ -106236,7 +105491,6 @@ stumpfwinkeliges
Stündchen
Stunde
stünde
-stunden
Stunden
stünden
Stundengeschwindigkeit
@@ -106311,9 +105565,7 @@ stures
Sturheit
Sturm
Sturmangriff
-stürme
Stürme
-stürmen
Stürmen
stürmend
stürmende
@@ -106683,7 +105935,6 @@ suggestiver
suggestives
Suggestivfrage
Suggestivität
-sühne
Sühne
sühnen
sühnenden
@@ -106720,9 +105971,7 @@ Summationsbeginns
Summationsindex
Summationszeichen
Sümmchen
-summe
Summe
-summen
Summen
Summenbeschränkung
Summensymbol
@@ -107029,7 +106278,6 @@ Syndikus
Synergie
Synode
Synoden
-synonym
Synonym
synonyme
synonymer
@@ -107177,7 +106425,6 @@ Tadler
Tafel
Tafelbutter
tafelfertig
-tafeln
Tafeln
täfeln
tafelnde
@@ -107207,7 +106454,6 @@ Tagbaues
Tagblätter
Tagblättern
Tagblatts
-tage
Tage
Tagebuch
Tagebücher
@@ -107232,7 +106478,6 @@ Tagelohns
Tagemarsch
Tagemärschen
Tagemarsches
-tagen
Tagen
tagende
tagenden
@@ -107450,7 +106695,6 @@ Talglicht
Talgs
Talisman
Talismanen
-talk
Talk
Talkessel
Talkesseln
@@ -107481,7 +106725,6 @@ Tandem
Tandems
tändle
Tang
-tangens
Tangens
Tangensfunktion
Tangente
@@ -107490,7 +106733,6 @@ Tangentenvektor
Tangentenvektoren
tangential
Tangentialbündels
-tangentiale
Tangentiale
Tangentialebene
Tangentialen
@@ -107731,7 +106973,6 @@ tastetet
Tastsinn
Tastsinnes
Tastsinns
-tat
Tat
Tatar
Tatbestand
@@ -107769,7 +107010,6 @@ tätige
tätigem
tätigen
tätigende
-tätigenden
Tätigenden
tätigender
tätiger
@@ -107849,7 +107089,6 @@ Tau
taub
taube
taubem
-tauben
Tauben
taubenblau
taubenblaue
@@ -108027,7 +107266,6 @@ tausendmal
Tausendsassa
Tausendsassas
tausendste
-tausendstel
Tausendstel
Tausendstels
tausendsten
@@ -108112,7 +107350,6 @@ technologischen
technologischer
technologisches
Technophilie
-techtelmechtel
Techtelmechtel
techtelmechteln
Teckel
@@ -108178,7 +107415,6 @@ teigigsten
teigigstes
Teigs
Teigwaren
-teil
Teil
Teilaspekt
Teilaufgabe
@@ -108207,7 +107443,6 @@ Teilchenstößen
Teilchenzahl
Teilchenzahlen
Teildisziplin
-teile
Teile
Teileigentum
teilen
@@ -108308,7 +107543,6 @@ Teilprobleme
Teilproblems
Teilraten
Teilräumung
-teils
Teils
Teilstrecke
Teilstrecken
@@ -108452,7 +107686,6 @@ Teleskopen
teleskopisch
Teletex
Television
-telex
Telex
Telexdienst
Telexdiensten
@@ -108790,11 +108023,9 @@ Textbuch
Textbücher
Textbuches
Textbuchs
-texte
Texte
Texteingabe
Texten
-textende
Textende
Texter
Texterfassung
@@ -109006,7 +108237,6 @@ Tiefdruckgebiet
Tiefdruckgebieten
Tiefdruckgebiets
Tiefdrucks
-tiefe
Tiefe
Tiefebene
Tiefebenen
@@ -109211,7 +108441,6 @@ Tischdame
Tischdamen
Tischdecke
Tischdecken
-tische
Tische
tischen
Tischgast
@@ -109598,7 +108827,6 @@ Töpfe
Töpfen
Töpfer
Töpferei
-töpfern
Töpfern
Töpfers
Töpferscheibe
@@ -109922,7 +109150,6 @@ tragende
tragenden
tragender
tragendes
-träger
Träger
trägere
trägeren
@@ -110091,12 +109318,10 @@ tranchierter
tranchiertes
tranchiertet
Träne
-tränen
Tränen
Tränendrüse
Tränengas
Tränengases
-trank
Trank
tränke
tranken
@@ -110147,7 +109372,6 @@ transformieren
transformierend
transformierst
transformiert
-transformierte
Transformierte
transformiertem
transformierten
@@ -110212,7 +109436,6 @@ transplantiertes
transplantiertest
transponieren
transponiert
-transponierte
Transponierte
transponierten
Transport
@@ -110364,7 +109587,6 @@ Traumbach
Traumberuf
Traumbild
Traumbilder
-träume
Träume
träumen
träumend
@@ -110494,7 +109716,6 @@ treffsicherstes
treibe
Treibeis
Treibeises
-treiben
Treiben
treibend
treibende
@@ -110630,7 +109851,6 @@ treubrüchigen
treubrüchiger
treubrüchiges
Treubruchs
-treue
Treue
Treuebrüche
Treuebrüchen
@@ -110722,7 +109942,6 @@ tricks
tricksen
trickst
Tridiagonalform
-trieb
Trieb
triebe
trieben
@@ -110891,7 +110110,6 @@ Tripper
tripple
trist
tristen
-tritt
Tritt
Trittbrett
Trittbretter
@@ -111072,7 +110290,6 @@ tröpfelt
tröpfelte
tröpfelten
tröpfeltet
-tropfen
Tropfen
tropfend
tropfende
@@ -111178,7 +110395,6 @@ trottetest
trottetet
Trottoir
Trotts
-trotz
Trotz
trotzdem
trotze
@@ -111289,7 +110505,6 @@ trudle
Trüffel
Trüffeln
Trüffels
-trug
Trug
Trugbild
trüge
@@ -111488,7 +110703,6 @@ tumultuarisch
tumultuarischem
tumultuarischen
tumultuarischer
-tun
Tun
tünche
tünchen
@@ -111525,7 +110739,6 @@ tunneln
Tunnels
Tuns
tupfe
-tüpfel
Tüpfel
Tüpfelchen
Tüpfels
@@ -111567,7 +110780,6 @@ Türke
Türkei
Türken
Türkinnen
-türkis
Türkis
türkisch
türkische
@@ -111580,9 +110792,7 @@ Türklinke
Türklinken
Turm
Türmchens
-türme
Türme
-türmen
Türmen
türmend
türmende
@@ -111660,7 +110870,6 @@ Türschließer
Türschließers
turteln
Turteltaube
-tusch
Tusch
tusche
tuscheln
@@ -111698,7 +110907,6 @@ tuteten
Tutor
TÜV
Tycoon
-typ
Typ
Type
Typen
@@ -111772,7 +110980,6 @@ tyrannisierter
tyrannisiertes
tyrannisiertet
übe
-übel
Übel
Übelbefinden
Übelkeit
@@ -112140,11 +111347,9 @@ tyrannisiertet
überfahrenen
überfahrenes
überfährst
-überfahrt
Überfahrt
überfährt
Überfahrten
-überfall
Überfall
überfalle
Überfälle
@@ -112426,7 +111631,6 @@ tyrannisiertet
übergreifender
übergreifendes
übergreifst
-übergriff
Übergriff
übergriffe
übergriffen
@@ -113248,7 +112452,6 @@ tyrannisiertet
Überschneidung
Überschneidungen
überschneidungsfrei
-überschnitt
Überschnitt
überschnitten
überschoben
@@ -113651,7 +112854,6 @@ tyrannisiertet
übertraf
übertrafet
übertrafst
-übertrag
Übertrag
übertragbar
übertragbarem
@@ -114211,7 +113413,6 @@ umdisponiert
umdisponierte
umdisponierten
umdisponiertest
-umdrehen
Umdrehen
umdrehend
umdrehende
@@ -114871,7 +114072,6 @@ umklammertest
umklammertet
Umklammerung
Umklammerungen
-umklappen
Umklappen
umklappend
umklappende
@@ -115129,7 +114329,6 @@ umringten
umringter
umringtes
umringtet
-umriss
Umriss
umrisse
umrissen
@@ -115457,7 +114656,6 @@ umstellt
Umstellung
umsteuern
umsteuernd
-umstieg
Umstieg
umstimmen
umstimmend
@@ -116750,7 +115948,6 @@ undisziplinierteste
undiszipliniertesten
undiszipliniertester
undiszipliniertestes
-und/oder
unduldsam
unduldsame
unduldsamem
@@ -116924,7 +116121,6 @@ unempfindlichstes
unendlich
unendliche
unendlichem
-unendlichen
Unendlichen
unendlicher
unendlichere
@@ -117638,7 +116834,6 @@ ungeheuchelte
ungeheucheltem
ungeheuchelter
ungeheucheltes
-ungeheuer
Ungeheuer
ungeheuerlich
ungeheuerliche
@@ -118267,9 +117462,7 @@ unidentifizierte
unidentifizierten
unidentifiziertes
unidirektional
-uniform
Uniform
-uniformen
Uniformen
uniformiert
uniformierte
@@ -118325,8 +117518,6 @@ Universitätsprofessors
Universum
Universums
Unix
-UNIX
-unke
Unke
unken
unkenntlich
@@ -118801,12 +117992,10 @@ unrealistische
unrealistischen
unrealistischer
unrealistisches
-unrecht
Unrecht
unrechte
unrechten
unrechter
-unrechtes
Unrechtes
unrechtmäßig
unrechtmäßige
@@ -119783,7 +118972,6 @@ unternahmen
unternähmen
unternahmst
unternehme
-unternehmen
Unternehmen
unternehmend
unternehmende
@@ -119934,7 +119122,6 @@ Unterschenkel
Unterschenkeln
Unterschenkels
Unterschiebung
-unterschied
Unterschied
Unterschiede
unterschieden
@@ -120113,7 +119300,6 @@ Untersumme
Untersummen
untertage
untertägig
-untertan
Untertan
Untertanen
Untertasse
@@ -120122,7 +119308,6 @@ untertauchen
untertauchende
untertauchenden
untertauchender
-unterteil
Unterteil
unterteile
unterteilen
@@ -121015,7 +120200,6 @@ Urstoffe
Urstoffs
Ursula
Urteil
-urteile
Urteile
urteilen
urteilende
@@ -121090,10 +120274,8 @@ Vandalen
Vanille
variabel
Variabilität
-variable
Variable
variablem
-variablen
Variablen
variabler
variablere
@@ -121413,7 +120595,6 @@ verallgemeinert
verallgemeinerte
verallgemeinertem
verallgemeinerten
-verallgemeinerter
Verallgemeinerter
verallgemeinertes
verallgemeinertet
@@ -121433,7 +120614,6 @@ verändere
veränderlich
veränderliche
veränderlichem
-veränderlichen
Veränderlichen
veränderlicher
veränderliches
@@ -121743,9 +120923,7 @@ verbalem
verbalen
verbaler
verbales
-verband
Verband
-verbände
Verbände
verbanden
verbandest
@@ -122117,7 +121295,6 @@ verborgenste
verborgenstem
verborgenster
verborgenstes
-verbot
Verbot
Verbote
verboten
@@ -122190,7 +121367,6 @@ verbrauchter
verbrauchtes
verbrauchtest
verbreche
-verbrechen
Verbrechen
verbrechend
verbrechenden
@@ -122349,12 +121525,9 @@ verbundenes
Verbundenheit
verbündest
verbündet
-verbündete
Verbündete
verbündetem
-verbündeten
Verbündeten
-verbündeter
Verbündeter
verbündetest
verbündetet
@@ -122602,7 +121775,6 @@ verdienend
verdienenden
verdienender
verdienendes
-verdienst
Verdienst
Verdienstausfall
Verdienstausfälle
@@ -123083,7 +122255,6 @@ vereinst
Vereinswesen
vereinte
vereintem
-vereinten
Vereinten
vereinter
vereintes
@@ -123220,7 +122391,6 @@ verewigtes
verewigtest
Verewigung
verfahre
-verfahren
Verfahren
verfahrend
verfahrende
@@ -123245,7 +122415,6 @@ Verfahrensweise
Verfahrensweisen
verfährst
verfährt
-verfall
Verfall
Verfalldatum
verfallen
@@ -123841,7 +123010,6 @@ vergegenwärtigtes
vergegenwärtigtest
vergegenwärtigtet
Vergegenwärtigung
-vergehen
Vergehen
vergehend
vergehende
@@ -124044,7 +123212,6 @@ verglühten
verglühter
verglühtes
vergnüge
-vergnügen
Vergnügen
vergnügend
vergnügenden
@@ -124265,7 +123432,6 @@ verhallten
verhalltes
verhält
verhalte
-verhalten
Verhalten
verhaltenem
verhaltenen
@@ -124447,7 +123613,6 @@ verhätscheltet
verhätscheltste
verhätscheltsten
verhätscheltster
-verhau
Verhau
verhauen
verhauend
@@ -124640,7 +123805,6 @@ verholfene
verholfenem
verholfener
verholfenes
-verhör
Verhör
verhöre
verhören
@@ -125451,7 +124615,6 @@ verlangtet
verlas
verlasen
verlasest
-verlass
Verlass
verlasse
verlassen
@@ -125561,7 +124724,6 @@ verleidete
verleidetem
verleideter
verleidetes
-verleih
Verleih
verleihe
verleihen
@@ -125735,7 +124897,6 @@ Verlöbnisses
verlobst
verlobt
verlobte
-verlobten
Verlobten
verlobter
verlobtes
@@ -126157,7 +125318,6 @@ vermodertem
vermoderten
vermoderter
vermöge
-vermögen
Vermögen
vermögend
vermögende
@@ -126622,7 +125782,6 @@ verpulvertet
verpumpen
verpuppen
verpustet
-verputz
Verputz
verputzen
verputzend
@@ -127161,7 +126320,6 @@ verscheuchtes
verscheuchtest
verscheuern
verschicke
-verschicken
Verschicken
verschickende
verschickenden
@@ -128065,7 +127223,6 @@ Verspottung
versprach
versprachst
verspreche
-versprechen
Versprechen
versprechend
versprechende
@@ -128471,7 +127628,6 @@ verstummtes
verstummtet
verstünde
verstünden
-versuch
Versuch
versuche
versuchen
@@ -128561,7 +127717,6 @@ Vertagungen
vertan
Vertauschbarkeit
vertausche
-vertauschen
Vertauschen
vertauschst
vertauscht
@@ -128703,7 +127858,6 @@ Vertrag
vertrage
Verträge
vertragen
-vertragende
Vertragende
vertragene
vertragenem
@@ -128807,7 +127961,6 @@ vertratest
vertratet
vertratst
vertraue
-vertrauen
Vertrauen
vertrauenerweckender
Vertrauensbasis
@@ -128917,7 +128070,6 @@ Vertreters
Vertretung
Vertretungen
vertretungsberechtigt
-vertrieb
Vertrieb
vertriebe
vertrieben
@@ -129268,10 +128420,8 @@ Verwandschaft
verwandt
verwandte
verwandtem
-verwandten
Verwandten
Verwandtenbesuch
-verwandter
Verwandter
verwandtes
verwandtest
@@ -129384,9 +128534,7 @@ verweiltest
verweiltet
Verweilzeit
verweint
-verweis
Verweis
-verweise
Verweise
verweisen
verweist
@@ -129983,7 +129131,6 @@ verzwickten
verzwickter
Vesper
Vesperbrot
-vespern
Vespern
Vestibül
Veteran
@@ -130071,11 +129218,8 @@ vielerlei
vielerorts
vieles
vielfach
-vielfache
Vielfache
-vielfachen
Vielfachen
-vielfaches
Vielfaches
Vielfachheit
Vielfachheiten
@@ -130271,7 +129415,6 @@ Viertaktmotoren
viertausend
vierte
vierteilen
-viertel
Viertel
Viertelfinale
Vierteljahr
@@ -130318,7 +129461,6 @@ vierzehntes
Vierzeiler
Vierzeilers
vierzig
-vierziger
Vierziger
Vierzigerin
Vierzigern
@@ -130408,7 +129550,6 @@ visierter
visiertes
visiertet
Vision
-visionär
Visionär
visionäre
visionären
@@ -130490,7 +129631,6 @@ Vogelfang
Vogelfutter
Vogelfutters
Vogelhaus
-vögeln
Vögeln
Vogelnest
Vogelnestern
@@ -130854,7 +129994,6 @@ von
voneinander
vonnöten
vonstatten
-vonstattengehen
Vonstattengehen
Vopo
vor
@@ -130962,7 +130101,6 @@ vorausgesetztes
Vorauskasse
voraussagbar
voraussage
-voraussagen
Voraussagen
voraussagt
voraussagte
@@ -131001,7 +130139,6 @@ vorauszusetzen
Vorbau
vorbauen
Vorbaues
-vorbedacht
Vorbedacht
vorbedachte
vorbedachtes
@@ -131210,7 +130347,6 @@ voreingenommene
voreingenommenen
voreingenommener
voreingenommenes
-voreingestellt
Voreingestellt
Voreinstellung
vorenthält
@@ -131362,7 +130498,6 @@ vorgehaltene
vorgehaltenem
vorgehaltenen
vorgehaltenes
-vorgehen
Vorgehen
Vorgehens
Vorgehensweise
@@ -131460,7 +130595,6 @@ vorgesehener
vorgesetzt
vorgesetzte
vorgesetztem
-vorgesetzten
Vorgesetzten
vorgesetzter
vorgesetztes
@@ -131545,7 +130679,6 @@ vorgibt
vorging
vorgingen
vorgreifen
-vorgriff
Vorgriff
vorgriffe
Vorgriffes
@@ -131626,7 +130759,6 @@ vorhersagbaren
vorhersagbarer
vorhersagbares
vorhersage
-vorhersagen
Vorhersagen
vorhersagt
vorhersagten
@@ -131679,7 +130811,6 @@ Vorkenntnis
Vorkenntnisse
Vorkenntnissen
vorknöpfen
-vorkommen
Vorkommen
vorkommende
vorkommenden
@@ -131719,7 +130850,6 @@ vorlautem
vorlauten
vorlauter
vorlautes
-vorleben
Vorleben
vorlegen
Vorleger
@@ -131765,7 +130895,6 @@ Vormarschs
vormenschlich
vormerken
vormerkt
-vormittag
Vormittag
Vormittagen
vormittags
@@ -131823,7 +130952,6 @@ Vorprojekt
Vorprüfung
Vorprüfungen
Vorrang
-vorrangig
Vorrangig
vorrangige
vorrangigem
@@ -131876,7 +131004,6 @@ vorsätzliches
Vorsatzlinse
Vorschau
Vorschein
-vorschieben
Vorschieben
vorschiebt
vorschießen
@@ -132002,9 +131129,7 @@ Vorstädte
Vorstädten
Vorstädter
vorstädtisch
-vorstand
Vorstand
-vorstände
Vorstände
vorständen
Vorstandes
@@ -132107,7 +131232,6 @@ vortrefflicher
vortreffliches
vortreten
Vortrieb
-vortritt
Vortritt
Vortritts
vortrug
@@ -132192,7 +131316,6 @@ Vorwochen
Vorwort
Vorworten
Vorwurf
-vorwürfe
Vorwürfe
vorwurfsvoll
vorwurfsvolle
@@ -132286,18 +131409,14 @@ Waagemeister
Waagen
Waagenfabrik
waagerecht
-waagerechte
Waagerechte
waagerechtem
-waagerechten
Waagerechten
waagerechter
waagerechtes
waagrecht
-waagrechte
Waagrechte
waagrechtem
-waagrechten
Waagrechten
waagrechter
waagrechtes
@@ -132320,7 +131439,6 @@ Waben
wabenförmigen
wach
Wachbootes
-wache
Wache
wachen
wachend
@@ -132514,7 +131632,6 @@ Wagehälse
Wagemut
wagemutig
wagemutige
-wagen
Wagen
wägen
Wagenabteil
@@ -132978,7 +132095,6 @@ wallfahrender
wallfahrendes
Wallfahrer
Wallfahrers
-wallfahrt
Wallfahrt
wallfahrten
Wallfahrtsort
@@ -133008,10 +132124,8 @@ Waltraud
Walzbleche
Walzblechen
Walzblechs
-walze
Walze
wälze
-walzen
Walzen
wälzen
walzend
@@ -133046,12 +132160,10 @@ Wams
Wämse
Wämsern
Wamses
-wand
Wand
Wandbefestigung
Wandbekleidung
Wandbekleidungen
-wände
Wände
Wandel
wandelbar
@@ -133084,7 +132196,6 @@ wandelten
wandeltest
wandeltet
Wandelzeit
-wänden
Wänden
Wanderausstellung
Wanderbühne
@@ -133238,7 +132349,6 @@ warfen
warfst
warm
warme
-wärme
Wärme
Wärmeausgleich
wärmebeständig
@@ -133493,7 +132603,6 @@ Wasserbombe
Wasserdampf
Wasserdampfes
wasserdicht
-wasserdichte
Wasserdichte
wasserdichten
wasserdichter
@@ -133578,7 +132687,6 @@ Wassermängel
Wassermelone
Wassermühle
Wassermühlen
-wassern
Wassern
Wässern
wassernd
@@ -133891,7 +132999,6 @@ wedelten
wedeltest
weder
wedle
-weg
Weg
wegaß
wegbegeben
@@ -134296,7 +133403,6 @@ wegsehende
wegsehenden
wegsehendes
wegsetzen
-wegstrecke
Wegstrecke
wegstrecken
wegstreiche
@@ -134358,7 +133464,6 @@ wegzulaufen
wegzunehmen
wegzupuffern
wegzuziehen
-weh
Weh
wehe
wehen
@@ -134639,7 +133744,6 @@ Weihrauchs
weil
weiland
Weilchen
-weile
Weile
weilen
weilend
@@ -134732,7 +133836,6 @@ weintet
Weintraube
Weintrauben
weis
-weise
Weise
weisem
weisen
@@ -134766,7 +133869,6 @@ weismachend
weismachenden
weismachender
weismachendes
-weiß
Weiß
weissagen
Weissager
@@ -134792,7 +133894,6 @@ Weißbücher
Weißbüchern
Weißbuches
Weißbuchs
-weiße
Weiße
weißen
weißend
@@ -135149,7 +134250,6 @@ Wellblech
Wellblechen
Wellblechs
Welle
-wellen
Wellen
Wellenbad
Wellenbereich
@@ -135415,7 +134515,6 @@ weltwirtschaftlich
Weltwunder
wem
wen
-wende
Wende
Wendekreis
Wendeltreppe
@@ -135541,7 +134640,6 @@ werfende
werfenden
werfender
werfendes
-werft
Werft
Werftarbeiter
Werg
@@ -135552,7 +134650,6 @@ Werkbänken
Werkdienstwohnung
Werke
werkelten
-werken
Werken
werkend
werkenden
@@ -135616,7 +134713,6 @@ Werkzeugtaschen
Wermut
Wermutstropfen
Werner
-wert
Wert
Wertangabe
Wertangaben
@@ -135631,13 +134727,11 @@ wertbeständiger
Wertbrief
Wertbriefe
Wertbriefen
-werte
Werte
Wertebereich
Wertebereiche
Wertegruppe
Werteliste
-werten
Werten
wertend
wertende
@@ -135650,7 +134744,6 @@ Wertepakete
werterhaltend
Werterhöhung
Wertermittlung
-wertes
Wertes
wertest
wertestem
@@ -135906,7 +134999,6 @@ Wetterkarten
Wetterkunde
Wetterlagen
Wetterleuchten
-wettern
Wettern
Wetters
Wettersatellit
@@ -135966,7 +135058,6 @@ Wettrennen
Wettrennens
Wettrudern
Wettruderns
-wettrüsten
Wettrüsten
Wettrüstens
Wettschwimmen
@@ -136290,12 +135381,9 @@ widerspruchsvollste
widerspruchsvollstem
widerspruchsvollster
widerspruchsvollstes
-widerstand
Widerstand
-widerstände
Widerstände
widerstanden
-widerständen
Widerständen
Widerstandes
widerstandest
@@ -136344,7 +135432,6 @@ widerstehender
widerstehendes
widerstehst
widerstrebe
-widerstreben
Widerstreben
widerstrebend
widerstrebendem
@@ -136511,7 +135598,6 @@ wiederaufnehmender
wiederaufnehmendes
wiederaufrüstenden
Wiederaufrüstung
-wiederauftreten
Wiederauftreten
wiederauftretend
wiederauftretende
@@ -136811,7 +135897,6 @@ Wiederkünfte
Wiederlösen
wiedermal
wiedermelden
-wiedersehen
Wiedersehen
wiedersehend
wiedersehende
@@ -136919,7 +136004,6 @@ wieherte
wieherten
wiehertest
wiehertet
-wiener
Wiener
Wienerin
Wienerinnen
@@ -136983,7 +136067,6 @@ Wildheit
Wildhüter
Wildhütern
Wildleder
-wildledern
Wildledern
Wildleders
Wildlinge
@@ -137006,7 +136089,6 @@ Wilfried
Wilhelm
will
Wille
-willen
Willen
willenlos
willenlose
@@ -137021,7 +136103,6 @@ willenlosestem
willenlosesten
willenlosestes
Willenlosigkeit
-willens
Willens
Willensakt
Willensakten
@@ -137500,7 +136581,6 @@ wirrstes
Wirrung
Wirrwarr
Wirrwarrs
-wir's
Wirsingkohl
wirst
Wirt
@@ -137816,7 +136896,6 @@ wodurch
wofern
wofür
wog
-woge
Woge
wogegen
Wogen
@@ -137828,7 +136907,6 @@ woher
wohin
wohingegen
wohinter
-wohl
Wohl
wohlangebracht
wohlanständig
@@ -138214,7 +137292,6 @@ wolkigsten
wolkigster
wolkigstes
Wolldecke
-wolle
Wolle
wollen
wollend
@@ -138513,7 +137590,6 @@ wuchertest
Wucherung
Wucherzins
Wucherzinsen
-wuchs
Wuchs
wuchsen
Wuchses
@@ -138577,12 +137653,9 @@ wulstigste
wulstigsten
wulstigster
wulstigstes
-wund
Wund
-wunde
Wunde
wundem
-wunden
Wunden
Wunder
wunderbar
@@ -138688,9 +137761,7 @@ Wundstarrkrampfs
Wunsch
Wunschbild
Wunschdenken
-wünsche
Wünsche
-wünschen
Wünschen
wünschend
wünschende
@@ -138787,7 +137858,6 @@ würdigten
würdigtet
Würdigung
Wurf
-würfe
Würfe
Würfel
Würfelbecher
@@ -138797,7 +137867,6 @@ würfelförmigen
würfelförmiger
würfelförmiges
würfelig
-würfeln
Würfeln
würfelnde
würfelndem
@@ -138876,7 +137945,6 @@ Wurst
Würstchen
Würstchens
Würste
-wursteln
Wursteln
wurstelnd
wurstelnde
@@ -138900,7 +137968,6 @@ Wurzel
Wurzelbehandlung
Wurzelformel
Wurzelknolle
-wurzeln
Wurzeln
wurzelnd
wurzelnden
@@ -138956,7 +138023,6 @@ wüsstest
wusstet
Wust
wüst
-wüste
Wüste
wüstem
wüsten
@@ -139051,7 +138117,6 @@ zählbares
zahle
zähle
zählebig
-zahlen
Zahlen
zählen
Zahlenangabe
@@ -139263,7 +138328,6 @@ Zahntechnikers
Zander
Zange
Zangen
-zank
Zank
zanke
zanken
@@ -139374,13 +138438,11 @@ zauderte
Zaum
Zaun
Zaunanlage
-zäune
Zäune
Zaunkönig
zäunten
Zebra
Zebras
-zeche
Zeche
Zeeman
Zeh
@@ -139403,7 +138465,6 @@ zehntausend
Zehntausende
Zehntausenden
zehnte
-zehntel
Zehntel
zehntels
zehnten
@@ -139498,7 +138559,6 @@ Zeilenvorschub
Zeilenvorschübe
zeilenweise
zeilig
-zeit
Zeit
zeitabhängigen
Zeitabhängigkeit
@@ -139946,7 +139006,6 @@ zerdrücktes
zerdrücktest
zerdrücktet
Zeremonie
-zeremoniell
Zeremoniell
zeremoniellem
zeremoniellen
@@ -140794,9 +139853,7 @@ zetteln
Zettels
zettelten
Zeug
-zeuge
Zeuge
-zeugen
Zeugen
Zeugenaussagen
zeugend
@@ -140888,7 +139945,6 @@ ziehst
zieht
Ziehung
Ziehvater
-ziel
Ziel
Zielband
zielbewusst
@@ -141282,7 +140338,6 @@ zitterigste
zitterigstem
zitterigsten
zitterigstes
-zittern
Zittern
zitternd
zitternden
@@ -141358,7 +140413,6 @@ zöge
zogen
zögere
zögerlich
-zögern
Zögern
zögernd
zögernde
@@ -141591,7 +140645,6 @@ Züchtung
Züchtungen
Zuchtwahl
zucke
-zucken
Zucken
zücken
zuckend
@@ -141721,7 +140774,6 @@ zufahrend
zufahrende
zufahrenden
zufahrendes
-zufahrt
Zufahrt
Zufahrten
Zufahrtsstraße
@@ -141828,7 +140880,6 @@ zufüllen
Zug
zugab
Zugabe
-zugaben
Zugaben
Zugang
Zugänge
@@ -142074,7 +141125,6 @@ zügellosesten
zügellosester
zügellosestes
Zügellosigkeit
-zügeln
Zügeln
zügelnd
zügelnde
@@ -142450,7 +141500,6 @@ zugreifend
zugreifenden
zugreifender
zugreifendes
-zugriff
Zugriff
Zugriffe
zugriffen
@@ -142460,15 +141509,11 @@ Zugriffspfade
Zugriffszeit
zugrunde
zugrundegegangen
-zugrundegehen
Zugrundegehen
zugrundegelegt
zugrundegerichtet
-zugrundelegen
Zugrundelegen
-zugrundeliegen
Zugrundeliegen
-zugrunderichten
Zugrunderichten
Zugrunderichtens
zugrundezulegen
@@ -142508,7 +141553,6 @@ zuhauenden
zuhauender
zuhauendes
zuhauf
-zuhause
Zuhause
zuheften
zuheilen
@@ -144137,7 +143181,6 @@ zusammenhaltenden
zusammenhaltender
Zusammenhalts
Zusammenhang
-zusammenhänge
Zusammenhänge
zusammenhängen
zusammenhängend
@@ -144186,9 +143229,7 @@ zusammenkitten
zusammenkittende
zusammenkittenden
zusammenkittender
-zusammenklang
Zusammenklang
-zusammenklänge
Zusammenklänge
Zusammenklangs
zusammenklappbar
@@ -144440,7 +143481,6 @@ zusammentretend
zusammentretenden
zusammentretender
zusammentretendes
-zusammentritt
Zusammentritt
zusammentrommeln
zusammentrommelnd
@@ -144456,7 +143496,6 @@ zusammenwerfen
zusammenwerfende
zusammenwerfenden
zusammenwerfender
-zusammenwirken
Zusammenwirken
zusammenwirkend
zusammenwirkende
@@ -144598,7 +143637,6 @@ Zuschneider
Zuschneidern
Zuschneiders
zuschneidest
-zuschnitt
Zuschnitt
zuschnitte
Zuschnittes
@@ -144688,19 +143726,15 @@ zuspringendes
Zuspruch
Zusprüche
Zuspruches
-zustand
Zustand
zustande
-zustände
Zustände
zustandebrachte
zustandebringen
zustandegekommen
-zustandekommen
Zustandekommen
Zustandekommens
zustandekommt
-zuständen
Zuständen
Zustandes
zuständig
@@ -144843,7 +143877,6 @@ Zutritt
Zutrittes
Zutrittsrecht
zutuend
-zutun
Zutun
zuungunsten
zuunterst
@@ -145014,7 +144047,6 @@ zuzutrauen
zuzuweisen
zuzuweisenden
zuzuwenden
-zwang
Zwang
Zwänge
zwangen
@@ -145100,7 +144132,6 @@ zwanzigjährig
zwanzigjährigen
zwanzigjähriger
zwanzigste
-zwanzigstel
Zwanzigstel
Zwanzigstels
zwanzigstem
@@ -145244,7 +144275,6 @@ zweifellosem
zweifellosen
zweifelloser
zweifelloses
-zweifeln
Zweifeln
zweifelnd
zweifelnde
@@ -145270,9 +144300,7 @@ Zweiflern
Zweiflers
Zweig
Zweigbahn
-zweige
Zweige
-zweigen
Zweigen
Zweiges
zweigeteilt
@@ -145739,7 +144767,6 @@ zwölft
zwölftägig
zwölftausend
zwölfte
-zwölftel
Zwölftel
zwölften
zwölftens
diff --git a/assets/en-utf8.txt b/assets/en-utf8.txt
index 8b2cf09b..5dad8233 100644
--- a/assets/en-utf8.txt
+++ b/assets/en-utf8.txt
@@ -25,7 +25,6 @@ ma
md
mi
mo
-ms
may
mr
mrs
@@ -145,7 +144,6 @@ cow
cox
coy
cry
-cs
cub
cue
cum
@@ -236,7 +234,6 @@ gin
gnu
go
gob
-god
goo
got
gum
@@ -278,7 +275,6 @@ hum
hut
ice
icy
-id
if
ifs
ilk
@@ -336,14 +332,12 @@ lot
low
lug
lye
-ma
mad
man
map
mar
mas
mat
-may
me
men
mes
@@ -356,7 +350,6 @@ mom
moo
mop
mow
-ms
mu
mud
mug
@@ -396,7 +389,6 @@ old
on
one
opt
-or
ore
our
out
@@ -405,7 +397,6 @@ owe
owl
own
ox
-pa
pad
pal
pan
diff --git a/assets/fr-utf8.txt b/assets/fr-utf8.txt
index 56f020b5..bfb833b5 100644
--- a/assets/fr-utf8.txt
+++ b/assets/fr-utf8.txt
@@ -141541,9 +141541,7 @@ esquilles
Esquimau
esquimaud
esquimaude
-Esquimaude
esquimaudes
-Esquimaudes
esquimauds
esquimautage
esquimautages
@@ -186709,7 +186707,6 @@ interneront
internes
internés
internet
-Internet
internez
interniez
internions
@@ -215758,7 +215755,6 @@ naphtes
naphtol
naphtols
napoléon
-Napoléon
napoléonien
napoléonienne
napoléoniennes
diff --git a/assets/it-utf8.txt b/assets/it-utf8.txt
index bc969305..67675d43 100644
--- a/assets/it-utf8.txt
+++ b/assets/it-utf8.txt
@@ -1707,7 +1707,6 @@ Courmayeur
Cremona
Cristina
Cristoforo
-DOS
DVI
Daniele
Dante
@@ -1740,7 +1739,6 @@ Euripide
Europa
Eusebio
Eva
-FAQ
FSF
Fabio
Faenza
@@ -102310,7 +102308,6 @@ tosavano
tosavate
tosavi
tosavo
-toscana
toscane
toscani
toscano
diff --git a/assets/ru-utf8.txt b/assets/ru-utf8.txt
index a9d8dede..e938041f 100644
--- a/assets/ru-utf8.txt
+++ b/assets/ru-utf8.txt
@@ -1,33 +1,25 @@
-и
-в
не
на
-я
что
быть
-с
он
-а
это
как
то
этот
по
-к
но
они
мы
она
который
из
-у
свой
вы
весь
за
для
от
-о
так
мочь
все
@@ -167,7 +159,6 @@
поэтому
почему
понимать
-москва
любой
однако
хорошо
@@ -351,7 +342,6 @@
появиться
хотеться
нельзя
-д
белый
центр
опять
@@ -400,7 +390,6 @@
быстро
черный
сильный
-н
порядок
чувствовать
создать
@@ -487,7 +476,6 @@
возможно
принимать
рубль
-б
миллион
целый
приходить
@@ -529,7 +517,6 @@
пара
квартира
забыть
-е
значение
внутренний
связать
@@ -577,7 +564,6 @@
команда
добрый
поле
-г
сша
исследование
общественный
@@ -591,7 +577,6 @@
сон
уходить
служба
-ж
население
воздух
словно
@@ -616,7 +601,6 @@
орган
доллар
держать
-т
название
похожий
дорогой
@@ -703,7 +687,6 @@
поздний
песня
лучше
-п
случиться
ум
выбор
@@ -785,7 +768,6 @@
чтоб
прошлый
столько
-л
понятие
длинный
поддержка
@@ -963,7 +945,6 @@
хватать
вчера
режим
-р
очередной
отдать
здоровье
@@ -1145,7 +1126,6 @@
утверждать
позвонить
реклама
-николай
революция
явление
отдел
@@ -1405,7 +1385,6 @@
бедный
появление
издание
-э
резко
поговорить
еврей
@@ -1436,7 +1415,6 @@
достигнуть
сохранить
встретиться
-ю
предполагать
глубина
приказ
@@ -1552,7 +1530,6 @@
понятно
уважение
последствие
-ф
буква
изображение
творческий
@@ -1595,7 +1572,6 @@
обед
переходить
изучение
-олег
обеспечивать
заставлять
подниматься
@@ -1826,7 +1802,6 @@
публикация
кивнуть
обсуждать
-х
наверняка
напомнить
логика
@@ -1865,7 +1840,6 @@
кошка
саша
характерный
-мария
толстый
общаться
пятый
@@ -2591,7 +2565,6 @@
набрать
защитить
остановка
-з
дорого
какую-то
жестокий
@@ -2779,7 +2752,6 @@
разнообразный
отойти
разделить
-ы
сборник
глобальный
кафе
@@ -2816,7 +2788,6 @@
великолепный
доходить
образовать
-наталья
разрушить
отражать
лезть
@@ -3781,10 +3752,8 @@
симпатичный
сделаться
продаваться
-ш
направляться
предупреждать
-ч
благоприятный
палка
выдающийся
@@ -4016,7 +3985,6 @@
рыцарь
дежурный
отрицать
-светлана
выделяться
частица
динамика
@@ -4276,7 +4244,6 @@
рецепт
сан
махнуть
-соня
смесь
творение
кредитный
@@ -4967,7 +4934,6 @@
привязать
издатель
предать
-й
отставка
заголовок
отступать
@@ -5538,7 +5504,6 @@
как-нибудь
превосходство
конфета
-ь
преподавать
ла
грамотный
@@ -6238,7 +6203,6 @@
даша
армянский
замерзнуть
-вячеслав
фракция
разноцветный
гроза
@@ -6250,7 +6214,6 @@
хрупкий
выпивать
напиться
-будда
октябрьский
невыносимый
сертификат
@@ -6601,7 +6564,6 @@
грант
выраженный
слушаться
-ц
расстроить
веселье
жюри
@@ -7004,7 +6966,6 @@
алена
подсчет
профессионально
-оксана
погладить
рассыпаться
перебирать
@@ -7631,7 +7592,6 @@
несомненный
многократно
выгодно
-санкт-петербург
украинец
коварный
аккумулятор
@@ -8657,7 +8617,6 @@
авраам
мэрия
фуражка
-ё
прикол
минуть
яростно
@@ -11523,7 +11482,6 @@
кабинка
сатурн
байт
-м
прямоугольный
остыть
смягчить
@@ -12768,7 +12726,6 @@
разделяться
конфликтный
лыжи
-ванька
обосноваться
активизация
основополагающий
@@ -13204,7 +13161,6 @@
затащить
терапевтический
чернокожий
-ъ
челнок
моделировать
ограбление
@@ -13526,7 +13482,6 @@
видеокарта
выключатель
росток
-щ
ослаблять
безошибочно
заикаться
@@ -14528,7 +14483,6 @@
акцентировать
высокотехнологичный
невозмутимый
-Нина
железнодорожник
амулет
дилемма
@@ -15852,7 +15806,6 @@
никитич
заманить
вмещать
-жигули
цыганский
поразиться
обсерватория
@@ -22020,7 +21973,6 @@
лицезреть
никулин
неукоснительно
-нельсон
понапрасну
фанатичный
модернизм
@@ -22864,7 +22816,6 @@
гадина
провиант
лещ
-мекка
флагманский
адресоваться
внешнеторговый
@@ -32494,7 +32445,6 @@
холодить
исцелиться
дарвиновский
-оКсана
шайтан
алешин
объёме
@@ -32893,7 +32843,6 @@
аркадьевна
овсяный
обвешать
-мАксвелл
сплетничать
узнаваемость
улать
@@ -32995,7 +32944,6 @@
сомать
пунктуальный
фотокорреспондент
-бояРин
отвержение
философствование
дыгать
@@ -38746,7 +38694,6 @@
мет
кинохроника
подложка
-бойфренд
очиститель
лёгкостью
голубовато
@@ -38934,7 +38881,6 @@
петраков
трип
маттиас
-кондрат
пинг
отписка
фукс
@@ -40162,7 +40108,6 @@
апример
чейни
отшатываться
-серБия
столыпинский
смердеть
физкультурник
@@ -40898,7 +40843,6 @@
сворачивание
дикобраз
родин
-Макар
переговорщик
чметр
валуй
@@ -41894,7 +41838,6 @@
просечь
ярик
генуэзский
-Стеб
глазастый
рпг
цыганов
@@ -44210,7 +44153,6 @@
шпангоут
плебисцит
наркомафия
-Бойфренд
лавчонка
джеми
проверенный
@@ -45721,7 +45663,6 @@
стройно
неход
несоизмеримый
-Спорткомплекс
усреднение
конвульсии
саров
@@ -45832,7 +45773,6 @@
авитаминоз
прополоскать
порыбачить
-Понт
топологический
хромовый
аутотренинг
@@ -47174,7 +47114,6 @@
пятикратный
интеллектуальность
пва
-евроремонт
маканин
окопчик
твердышев
@@ -54281,7 +54220,6 @@
карканье
пасторский
виан
-перегРин
тоить
окунев
юхан
@@ -54906,7 +54844,6 @@
измор
трый
шляхетский
-бРин
лима
нестроевой
суннитский
@@ -55758,7 +55695,6 @@
пиноккио
идиотический
ереть
-Клава
послепродажный
бревна
несомнить
@@ -56484,7 +56420,6 @@
жосслить
полтонна
комбо
-Метрострой
мелеть
руга
антропософия
@@ -59199,7 +59134,6 @@
зульфия
фотокросс
провинциализм
-кордицеПС
комендантша
луковский
аудить
@@ -61891,7 +61825,6 @@
хайти
кворт
пупка
-Таврия
мирье
исподний
видеопрокат
@@ -63203,7 +63136,7 @@
флорентино
сагитировать
долан
-санкт-Петербург
+Санкт-Петербург
салаг
засека
батюшок
@@ -63405,7 +63338,6 @@
пакля
заартачиться
лайдекер
-гРин
агатовый
микросекунда
брыззать
@@ -63460,7 +63392,6 @@
субара
пожестче
омоним
-Евроремонт
амбиз
йцукен
долби
@@ -69811,7 +69742,6 @@
еврисфей
браунли
возьаться
-Казанцев
задержки
портфельчик
неумолимость
@@ -74213,7 +74143,6 @@
социобиология
взбрыкивать
чёткость
-Экспоцентр
засекречивание
бомжик
хамар
@@ -78233,7 +78162,6 @@
войт
эндорэ
окк
-Автосервис
бандеровский
правдин
обрисовываться
@@ -81985,7 +81913,6 @@
цаостров
гафгарьон
астрорунет
-мэйРин
промаркировать
дегтяренко
четвёрки
@@ -84423,7 +84350,6 @@
оршанский
карачевский
неизменять
-Минздрав
чулка
трехосный
четать
diff --git a/build.gradle b/build.gradle
index de26c1ad..64c34644 100644
--- a/build.gradle
+++ b/build.gradle
@@ -106,20 +106,47 @@ android {
// }
}
-task getDictSizes {
+task validateDictionaries {
inputs.dir fileTree(dir:'assets', excludes:['dict.properties'])
outputs.file "t9build.properties"
doLast {
- println "Calculating dict size..."
+ String errors = "";
inputs.getFiles().each {File file ->
- println "dict: "+ file.name
- ant.propertyfile(file:"assets/dict.properties") {
- entry(key: "size."+ file.name, value: file.length())
+ println "Validating dictionary: " + file.name
+
+ def geographicalName = ~"[A-Z]\\w+-[^\\n]+"
+ def uniqueWords = [:]
+
+ int lineNumber = 0
+ file.eachLine {line ->
+ lineNumber++
+ if (line.matches("\\d")) {
+ errors += "Dictionary '" + file.name + "' is invalid. Found numbers on line " + lineNumber + ". Please, remove all numbers.\n"
+ }
+
+ if (line.matches("^\\P{L}+\$")) {
+ errors += "Dictionary '" + file.name + "' is invalid. Found a garbage word: '" + line + "' on line " + lineNumber + ".\n"
+ }
+
+ if (line.matches("^.\$")) {
+ errors += "Dictionary '" + file.name + "' is invalid. Found a single letter: '" + line + "' on line " + lineNumber + ". Remove all single letters. The alphabet will be added automatically.\n"
+ }
+
+ String uniqueWordKey = line ==~ geographicalName ? line : line.toLowerCase()
+ if (uniqueWords[uniqueWordKey] != null && uniqueWords[uniqueWordKey] == true) {
+ errors += "Dictionary '" + file.name + "' is invalid. Found a repeating word: '" + line + "' on line " + lineNumber + ". Ensure all words appear only once.\n"
+ } else {
+ uniqueWords[uniqueWordKey] = true
+ }
}
}
+
+ if (errors != "") {
+ throw new GradleException(errors)
+ }
}
}
-preBuild.dependsOn getDictSizes
-preBuild.mustRunAfter getDictSizes
+preBuild.dependsOn validateDictionaries
+preBuild.mustRunAfter validateDictionaries
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index d5135cdb..aeb90a02 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -17,9 +17,11 @@
Зареди свой речник
Изтрий речник
- Зареждане на речник…
+ Неуспешно зареждане. Невалидна дума \"%1$s\" на ред %2$d за език \"%3$s\".
+ Несупешно зареждане на речник за език \"%1$s\" (%2$s).
+ Зареждане на речник (%1$s)…
Зареждане на вашия речник…
- Зареди речник
- Неуспешно зареждане. Липсва речник за %1$s.
+ Зареждане на речник
+ Неуспешно зареждане. Липсва речник за \"%1$s\".
Речникът е изтрит успешно
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 45de385d..1a48fec7 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -14,10 +14,10 @@
Sprachen
Wörterbuch laden
Benutzerwörterbuch laden
+ Wörterbuch löschen
- Lade Wörterbuch…
+ Lade Wörterbuch (%1$s)…
Lade Benutzerwörterbuch…
Wörterbuch laden
- Wird nicht geladen. Wörterbuch für %1$s nicht gefunden.
- Wörterbuch löschen
+ Wird nicht geladen. Wörterbuch für \"%1$s\" nicht gefunden.
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index b7d2f0a5..a21f5175 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -14,10 +14,11 @@
Choisir langues
Charger le dictionnaire
Charger le dictionnaire utilisateur
+ Supprimer le dictionaire
- Chargement du dictionnaire…
+ Echec du chargement de dictionnaire pour langue «%1$s» (%2$s).
+ Chargement du dictionnaire (%1$s)…
Chargement du dictionnaire utilisateur…
Charger le dictionnaire
- Echec du chargement. Dictionnaire %1$s introuvable.
- Supprimer le dictionaire
+ Echec du chargement. Dictionnaire «%1$s» introuvable.
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index f15cca57..95ad9410 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -14,11 +14,11 @@
Le lingue
Carica dizionario
Carica dizionario utente
+ Eliminare il dizionario
- Caricamento dizionario…
+ Caricamento dizionario (%1$s)…
Caricamento dizionario utente…
Caricamento dizionario
- Impossibile caricare. Dizionario per %1$s non trovato.
- Eliminare il dizionario
+ Impossibile caricare. Dizionario per “%1$s” non trovato.
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index e26ee31a..544169f8 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -17,9 +17,10 @@
Загрузить свой словарь
Очистить словарь
- Загрузка словаря…
+ Ошибка загрузки словаря для языка «%1$s» (%2$s).
+ Загрузка словаря (%1$s)…
Загрузка пользовательского словаря…
Загрузить словарь
- Ошибка загрузки. Словарь %1$s не найден.
+ Ошибка загрузки. Словарь «%1$s» не найден.
Словарь успешно очищен.
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 245f06dc..6a0a1190 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -14,10 +14,11 @@
Вибір мови
Завантажити словник
Завантажити свій словник
+ Очистити словник
- Завантаження словника…
+ Помилка завантаження словника для мови «%1$s» (%2$s).
+ Завантаження словника (%1$s)…
Завантаження словника користувача…
Завантажити словник
- Помилка завантаження. Словник %1$s не знайдено.
- Очистити словник
+ Помилка завантаження. Словник «%1$s» не знайдено.
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0cc0e277..c3634f30 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -21,9 +21,11 @@
SDcard/traditionalt9/user.lang.dict (lang: en/ru/de/fr)
Clear dictionary
- Loading dictionary…
+ Loading failed. Invalid word \"%1$s\" on line %2$d of language \"%3$s\".
+ Failed importing dictionary for language \"%1$s\" (%2$s).
+ Loading dictionary (%1$s)…
Loading user dictionary…
Load dictionary
- Loading failed. Dictionary for %1$s not found.
+ Loading failed. Dictionary for \"%1$s\" not found.
Dictionary successfully cleared.
diff --git a/scripts/remove-dictionary-repeating-words.js b/scripts/remove-dictionary-repeating-words.js
index ca51f903..379701a6 100644
--- a/scripts/remove-dictionary-repeating-words.js
+++ b/scripts/remove-dictionary-repeating-words.js
@@ -2,6 +2,8 @@ const { basename } = require('path');
const { createReadStream, existsSync } = require('fs');
+const GEO_NAME = /[A-Z]\w+\-[^\n]+/;
+
function printHelp() {
console.log(`Usage ${basename(process.argv[1])} LOCALE FILENAME.txt `);
@@ -28,17 +30,44 @@ function validateInput() {
+function getRegularWordKey(locale, word) {
+ if (typeof word !== 'string' || word.length === 0) {
+ return '';
+ }
+
+ return GEO_NAME.test(word) ? word : word.toLocaleLowerCase(locale);
+}
+
+
+
+function getWordKeyPreservingCaptialization(locale, word, wordMap) {
+ if (typeof word !== 'string' || word.length === 0 || typeof wordMap !== 'object') {
+ return '';
+ }
+
+ let wordKey = word.toLocaleLowerCase(locale);
+
+ if (GEO_NAME.test(word) || word.toLocaleLowerCase(locale) !== word) {
+ wordKey = word;
+ if (wordMap[word.toLocaleLowerCase(locale)]) {
+ delete wordMap[word.toLocaleLowerCase(locale)];
+ }
+ }
+
+ return wordKey;
+}
+
+
+
async function removeRepeatingWords({ fileName, locale }) {
const lineReader = require('readline').createInterface({
input: createReadStream(fileName)
});
- const geographicalName = /[A-Z]\w+\-[^\n]+/;
const wordMap = {};
for await (const line of lineReader) {
- const wordKey = geographicalName.test(line) ? line : line.toLocaleLowerCase(locale);
- wordMap[wordKey] = true
+ wordMap[getWordKeyPreservingCaptialization(locale, line, wordMap)] = true;
}
return Object.keys(wordMap);
@@ -57,4 +86,6 @@ function printWords(wordList) {
/** main **/
-removeRepeatingWords(validateInput()).then(words => printWords(words));
+removeRepeatingWords(validateInput())
+ .then(words => printWords(words))
+ .catch(e => console.error(e));
diff --git a/src/com/stackoverflow/answer/UnicodeBOMInputStream.java b/src/com/stackoverflow/answer/UnicodeBOMInputStream.java
deleted file mode 100644
index 34aeda71..00000000
--- a/src/com/stackoverflow/answer/UnicodeBOMInputStream.java
+++ /dev/null
@@ -1,315 +0,0 @@
-/* ____________________________________________________________________________
- *
- * File: UnicodeBOMInputStream.java
- * Author: Gregory Pakosz.
- * Date: 02 - November - 2005
- * ____________________________________________________________________________
- */
-package com.stackoverflow.answer;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PushbackInputStream;
-
-/**
- * The UnicodeBOMInputStream class wraps any
- * InputStream and detects the presence of any Unicode BOM
- * (Byte Order Mark) at its beginning, as defined by
- * RFC 3629 - UTF-8, a transformation format of ISO 10646
- *
- * The
- * Unicode FAQ
- * defines 5 types of BOMs:
- * 00 00 FE FF = UTF-32, big-endian
- * FF FE 00 00 = UTF-32, little-endian
- * FE FF = UTF-16, big-endian
- * FF FE = UTF-16, little-endian
- * EF BB BF = UTF-8
- *
- *
- * Use the {@link #getBOM()} method to know whether a BOM has been detected
- * or not.
- *
- * Use the {@link #skipBOM()} method to remove the detected BOM from the
- * wrapped InputStream object.
- */
-public class UnicodeBOMInputStream extends InputStream
-{
- /**
- * Type safe enumeration class that describes the different types of Unicode
- * BOMs.
- */
- public static final class BOM
- {
- /**
- * NONE.
- */
- public static final BOM NONE = new BOM(new byte[]{},"NONE");
-
- /**
- * UTF-8 BOM (EF BB BF).
- */
- public static final BOM UTF_8 = new BOM(new byte[]{(byte)0xEF,
- (byte)0xBB,
- (byte)0xBF},
- "UTF-8");
-
- /**
- * UTF-16, little-endian (FF FE).
- */
- public static final BOM UTF_16_LE = new BOM(new byte[]{ (byte)0xFF,
- (byte)0xFE},
- "UTF-16 little-endian");
-
- /**
- * UTF-16, big-endian (FE FF).
- */
- public static final BOM UTF_16_BE = new BOM(new byte[]{ (byte)0xFE,
- (byte)0xFF},
- "UTF-16 big-endian");
-
- /**
- * UTF-32, little-endian (FF FE 00 00).
- */
- public static final BOM UTF_32_LE = new BOM(new byte[]{ (byte)0xFF,
- (byte)0xFE,
- (byte)0x00,
- (byte)0x00},
- "UTF-32 little-endian");
-
- /**
- * UTF-32, big-endian (00 00 FE FF).
- */
- public static final BOM UTF_32_BE = new BOM(new byte[]{ (byte)0x00,
- (byte)0x00,
- (byte)0xFE,
- (byte)0xFF},
- "UTF-32 big-endian");
-
- /**
- * Returns a String representation of this BOM
- * value.
- */
- public final String toString()
- {
- return description;
- }
-
- /**
- * Returns the bytes corresponding to this BOM value.
- */
- public final byte[] getBytes()
- {
- final int length = bytes.length;
- final byte[] result = new byte[length];
-
- // Make a defensive copy
- System.arraycopy(bytes,0,result,0,length);
-
- return result;
- }
-
- private BOM(final byte bom[], final String description)
- {
- assert(bom != null) : "invalid BOM: null is not allowed";
- assert(description != null) : "invalid description: null is not allowed";
- assert(description.length() != 0) : "invalid description: empty string is not allowed";
-
- this.bytes = bom;
- this.description = description;
- }
-
- final byte bytes[];
- private final String description;
-
- } // BOM
-
- /**
- * Constructs a new UnicodeBOMInputStream that wraps the
- * specified InputStream.
- *
- * @param inputStream an InputStream.
- *
- * @throws NullPointerException when inputStream is
- * null.
- * @throws IOException on reading from the specified InputStream
- * when trying to detect the Unicode BOM.
- */
- public UnicodeBOMInputStream(final InputStream inputStream) throws NullPointerException,
- IOException
-
- {
- if (inputStream == null)
- throw new NullPointerException("invalid input stream: null is not allowed");
-
- in = new PushbackInputStream(inputStream,4);
-
- final byte bom[] = new byte[4];
- final int read = in.read(bom);
-
- switch(read)
- {
- case 4:
- if ((bom[0] == (byte)0xFF) &&
- (bom[1] == (byte)0xFE) &&
- (bom[2] == (byte)0x00) &&
- (bom[3] == (byte)0x00))
- {
- this.bom = BOM.UTF_32_LE;
- break;
- }
- else
- if ((bom[0] == (byte)0x00) &&
- (bom[1] == (byte)0x00) &&
- (bom[2] == (byte)0xFE) &&
- (bom[3] == (byte)0xFF))
- {
- this.bom = BOM.UTF_32_BE;
- break;
- }
-
- case 3:
- if ((bom[0] == (byte)0xEF) &&
- (bom[1] == (byte)0xBB) &&
- (bom[2] == (byte)0xBF))
- {
- this.bom = BOM.UTF_8;
- break;
- }
-
- case 2:
- if ((bom[0] == (byte)0xFF) &&
- (bom[1] == (byte)0xFE))
- {
- this.bom = BOM.UTF_16_LE;
- break;
- }
- else
- if ((bom[0] == (byte)0xFE) &&
- (bom[1] == (byte)0xFF))
- {
- this.bom = BOM.UTF_16_BE;
- break;
- }
-
- default:
- this.bom = BOM.NONE;
- break;
- }
-
- if (read > 0)
- in.unread(bom,0,read);
- }
-
- /**
- * Returns the BOM that was detected in the wrapped
- * InputStream object.
- *
- * @return a BOM value.
- */
- public final BOM getBOM()
- {
- // BOM type is immutable.
- return bom;
- }
-
- /**
- * Skips the BOM that was found in the wrapped
- * InputStream object.
- *
- * @return this UnicodeBOMInputStream.
- *
- * @throws IOException when trying to skip the BOM from the wrapped
- * InputStream object.
- */
- public final synchronized UnicodeBOMInputStream skipBOM() throws IOException
- {
- if (!skipped)
- {
- in.skip(bom.bytes.length);
- skipped = true;
- }
- return this;
- }
-
- /**
- * {@inheritDoc}
- */
- public int read() throws IOException
- {
- return in.read();
- }
-
- /**
- * {@inheritDoc}
- */
- public int read(final byte b[]) throws IOException,
- NullPointerException
- {
- return in.read(b,0,b.length);
- }
-
- /**
- * {@inheritDoc}
- */
- public int read(final byte b[],
- final int off,
- final int len) throws IOException,
- NullPointerException
- {
- return in.read(b,off,len);
- }
-
- /**
- * {@inheritDoc}
- */
- public long skip(final long n) throws IOException
- {
- return in.skip(n);
- }
-
- /**
- * {@inheritDoc}
- */
- public int available() throws IOException
- {
- return in.available();
- }
-
- /**
- * {@inheritDoc}
- */
- public void close() throws IOException
- {
- in.close();
- }
-
- /**
- * {@inheritDoc}
- */
- public synchronized void mark(final int readlimit)
- {
- in.mark(readlimit);
- }
-
- /**
- * {@inheritDoc}
- */
- public synchronized void reset() throws IOException
- {
- in.reset();
- }
-
- /**
- * {@inheritDoc}
- */
- public boolean markSupported()
- {
- return in.markSupported();
- }
-
- private final PushbackInputStream in;
- private final BOM bom;
- private boolean skipped = false;
-
-} // UnicodeBOMInputStream
diff --git a/src/io/github/sspanak/tt9/db/DictionaryDb.java b/src/io/github/sspanak/tt9/db/DictionaryDb.java
index 8d3fe1dd..db57d621 100644
--- a/src/io/github/sspanak/tt9/db/DictionaryDb.java
+++ b/src/io/github/sspanak/tt9/db/DictionaryDb.java
@@ -59,16 +59,8 @@ public class DictionaryDb {
}
- public static void beginTransaction() {
- getInstance().beginTransaction();
- }
-
-
- public static void endTransaction(boolean success) {
- if (success) {
- getInstance().setTransactionSuccessful();
- }
- getInstance().endTransaction();
+ public static void runInTransaction(Runnable r) {
+ getInstance().runInTransaction(r);
}
diff --git a/src/io/github/sspanak/tt9/db/DictionaryImportAbortedException.java b/src/io/github/sspanak/tt9/db/DictionaryImportAbortedException.java
new file mode 100644
index 00000000..25c6f4b5
--- /dev/null
+++ b/src/io/github/sspanak/tt9/db/DictionaryImportAbortedException.java
@@ -0,0 +1,7 @@
+package io.github.sspanak.tt9.db;
+
+public class DictionaryImportAbortedException extends Exception{
+ public DictionaryImportAbortedException() {
+ super("Dictionary import stopped by request.");
+ }
+}
diff --git a/src/io/github/sspanak/tt9/db/DictionaryImportException.java b/src/io/github/sspanak/tt9/db/DictionaryImportException.java
new file mode 100644
index 00000000..6a3fd087
--- /dev/null
+++ b/src/io/github/sspanak/tt9/db/DictionaryImportException.java
@@ -0,0 +1,14 @@
+package io.github.sspanak.tt9.db;
+
+public class DictionaryImportException extends Exception {
+ public final String file;
+ public final String word;
+ public final long line;
+
+ DictionaryImportException(String file, String word, long line) {
+ super("Dictionary import failed");
+ this.file = file;
+ this.word = word;
+ this.line = line;
+ }
+}
diff --git a/src/io/github/sspanak/tt9/db/DictionaryLoader.java b/src/io/github/sspanak/tt9/db/DictionaryLoader.java
new file mode 100644
index 00000000..a0d2ceda
--- /dev/null
+++ b/src/io/github/sspanak/tt9/db/DictionaryLoader.java
@@ -0,0 +1,259 @@
+package io.github.sspanak.tt9.db;
+
+import android.content.Context;
+import android.content.res.AssetManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.regex.Pattern;
+
+import io.github.sspanak.tt9.Logger;
+import io.github.sspanak.tt9.languages.InvalidLanguageCharactersException;
+import io.github.sspanak.tt9.languages.InvalidLanguageException;
+import io.github.sspanak.tt9.languages.Language;
+import io.github.sspanak.tt9.preferences.T9Preferences;
+
+public class DictionaryLoader {
+ private final AssetManager assets;
+ private final T9Preferences prefs;
+
+ private boolean isStopped = true;
+ private int currentFile = 0;
+ private long lastProgressUpdate = 0;
+
+ private final Pattern containsPunctuation = Pattern.compile("\\p{Punct}(? languages) {
+ new Thread() {
+ @Override
+ public void run() {
+ currentFile = 0;
+ isStopped = false;
+ // SQLite does not support parallel queries, so let's import them one by one
+ for (Language lang : languages) {
+ if (isStopped) {
+ break;
+ }
+ importAll(handler, lang);
+ currentFile++;
+ }
+ }
+ }.start();
+ }
+
+
+ public void stop() {
+ isStopped = true;
+ }
+
+
+ private void importAll(Handler handler, Language language) {
+ final String logTag = "tt9.DictionaryLoader.importAll";
+
+ if (language == null) {
+ Logger.e(logTag, "Failed loading a dictionary for NULL language.");
+ sendError(handler, InvalidLanguageException.class.getSimpleName(), -1);
+ return;
+ }
+
+ DictionaryDb.runInTransaction(() -> {
+ long start = System.currentTimeMillis();
+ importLetters(language);
+ Logger.i(
+ logTag,
+ "Loaded letters for '" + language.getName() + "' language in: " + (System.currentTimeMillis() - start) + " ms"
+ );
+
+ try {
+ start = System.currentTimeMillis();
+ importWords(handler, language);
+ Logger.i(
+ logTag,
+ "Dictionary: '" + language.getDictionaryFile() + "'" +
+ " processing time: " + (System.currentTimeMillis() - start) + " ms"
+ );
+ } catch (DictionaryImportAbortedException e) {
+ stop();
+
+ Logger.i(
+ logTag,
+ e.getMessage() + ". File '" + language.getDictionaryFile() + "' not imported."
+ );
+ } catch (DictionaryImportException e) {
+ stop();
+ sendImportError(handler, DictionaryImportException.class.getSimpleName(), language.getId(), e.line, e.word);
+
+ Logger.e(
+ logTag,
+ " Invalid word: '" + e.word
+ + "' in dictionary: '" + language.getDictionaryFile() + "'"
+ + " on line " + e.line
+ + " of language '" + language.getName() + "'. "
+ + e.getMessage()
+ );
+ } catch (Exception e) {
+ stop();
+ sendError(handler, e.getClass().getSimpleName(), language.getId());
+
+ Logger.e(
+ logTag,
+ "Failed loading dictionary: " + language.getDictionaryFile() +
+ " for language '" + language.getName() + "'. "
+ + e.getMessage()
+ );
+ }
+ });
+ }
+
+
+ private void importLetters(Language language) {
+ ArrayList letters = new ArrayList<>();
+
+ for (int key = 0; key <= 9; key++) {
+ for (String langChar : language.getKeyCharacters(key)) {
+ if (langChar.length() == 1 && langChar.charAt(0) >= '0' && langChar.charAt(0) <= '9') {
+ // We do not want 0-9 as "word suggestions" in Predictive mode. It looks confusing
+ // when trying to type a word and also, one can type them by holding the respective
+ // key.
+ continue;
+ }
+
+ Word word = new Word();
+ word.langId = language.getId();
+ word.frequency = 0;
+ word.sequence = String.valueOf(key);
+ word.word = langChar;
+
+ letters.add(word);
+ }
+ }
+
+ DictionaryDb.insertWordsSync(letters);
+ }
+
+
+ private void importWords(Handler handler, Language language) throws Exception {
+ importWords(handler, language, language.getDictionaryFile());
+ }
+
+
+ private void importWords(Handler handler, Language language, String dictionaryFile) throws Exception {
+ long totalWords = countWords(dictionaryFile);
+
+ BufferedReader br = new BufferedReader(new InputStreamReader(assets.open(dictionaryFile), StandardCharsets.UTF_8));
+
+ ArrayList dbWords = new ArrayList<>();
+ long line = 0;
+
+ sendProgressMessage(handler, language, 0, 0);
+
+ for (String word; (word = br.readLine()) != null; line++) {
+ if (isStopped) {
+ br.close();
+ sendProgressMessage(handler, language, 0, 0);
+ throw new DictionaryImportAbortedException();
+ }
+
+ validateWord(language, word, line);
+ dbWords.add(stringToWord(language, word));
+
+ if (line % prefs.getDictionaryImportWordChunkSize() == 0) {
+ DictionaryDb.insertWordsSync(dbWords);
+ dbWords.clear();
+ }
+
+ if (totalWords > 0) {
+ int progress = (int) Math.floor(100.0 * line / totalWords);
+ sendProgressMessage(handler, language, progress, prefs.getDictionaryImportProgressUpdateInterval());
+ }
+ }
+
+ br.close();
+ sendProgressMessage(handler, language, 100, 0);
+ }
+
+
+ private long countWords(String filename) {
+ try (LineNumberReader reader = new LineNumberReader(new InputStreamReader(assets.open(filename), StandardCharsets.UTF_8))) {
+ //noinspection ResultOfMethodCallIgnored
+ reader.skip(Long.MAX_VALUE);
+ long lines = reader.getLineNumber();
+ reader.close();
+
+ return lines;
+ } catch (Exception e) {
+ Logger.w("DictionaryLoader.countWords", "Could not count the lines of file: " + filename + ". " + e.getMessage());
+ return 0;
+ }
+ }
+
+
+ private void validateWord(Language language, String word, long line) throws DictionaryImportException {
+ if (!language.isPunctuationPartOfWords() && containsPunctuation.matcher(word).find()) {
+ throw new DictionaryImportException(language.getDictionaryFile(), word, line);
+ }
+ }
+
+
+ private Word stringToWord(Language language, String word) throws InvalidLanguageCharactersException {
+ Word dbWord = new Word();
+ dbWord.langId = language.getId();
+ dbWord.frequency = 0;
+ dbWord.sequence = language.getDigitSequenceForWord(word);
+ dbWord.word = word;
+
+ return dbWord;
+ }
+
+
+ private void sendProgressMessage(Handler handler, Language language, int progress, int progressUpdateInterval) {
+ long now = System.currentTimeMillis();
+ if (now - lastProgressUpdate < progressUpdateInterval) {
+ return;
+ }
+
+ lastProgressUpdate = now;
+
+ Bundle bundle = new Bundle();
+ bundle.putInt("languageId", language.getId());
+ bundle.putInt("progress", progress);
+ bundle.putInt("currentFile", currentFile);
+ Message msg = new Message();
+ msg.setData(bundle);
+ handler.sendMessage(msg);
+ }
+
+
+ private void sendError(Handler handler, String message, int langId) {
+ Bundle bundle = new Bundle();
+ bundle.putString("error", message);
+ bundle.putInt("languageId", langId);
+ Message msg = new Message();
+ msg.setData(bundle);
+ handler.sendMessage(msg);
+ }
+
+
+ private void sendImportError(Handler handler, String message, int langId, long fileLine, String word) {
+ Bundle bundle = new Bundle();
+ bundle.putString("error", message);
+ bundle.putLong("fileLine", fileLine);
+ bundle.putInt("languageId", langId);
+ bundle.putString("word", word);
+ Message msg = new Message();
+ msg.setData(bundle);
+ handler.sendMessage(msg);
+ }
+}
diff --git a/src/io/github/sspanak/tt9/languages/InvalidLanguageCharactersException.java b/src/io/github/sspanak/tt9/languages/InvalidLanguageCharactersException.java
new file mode 100644
index 00000000..4f5186d5
--- /dev/null
+++ b/src/io/github/sspanak/tt9/languages/InvalidLanguageCharactersException.java
@@ -0,0 +1,15 @@
+package io.github.sspanak.tt9.languages;
+
+public class InvalidLanguageCharactersException extends Exception {
+ private Language language;
+
+ public InvalidLanguageCharactersException(Language language, String extraMessage) {
+ super("Some characters are not supported in language: " + language.getName() + ". " + extraMessage);
+ this.language = language;
+ }
+
+ public Language getLanguage() {
+ return language;
+ }
+}
+
diff --git a/src/io/github/sspanak/tt9/languages/Language.java b/src/io/github/sspanak/tt9/languages/Language.java
index 1e801e41..8a2d4498 100644
--- a/src/io/github/sspanak/tt9/languages/Language.java
+++ b/src/io/github/sspanak/tt9/languages/Language.java
@@ -70,7 +70,7 @@ public class Language {
return chars;
}
- public String getDigitSequenceForWord(String word) throws Exception {
+ public String getDigitSequenceForWord(String word) throws InvalidLanguageCharactersException {
StringBuilder sequence = new StringBuilder();
String lowerCaseWord = word.toLowerCase(locale);
@@ -83,9 +83,7 @@ public class Language {
}
if (word.length() != sequence.length()) {
- throw new Exception(
- "Failed generating digit sequence for word: '" + word + "'. Some characters are not supported in language: " + name
- );
+ throw new InvalidLanguageCharactersException(this, "Failed generating digit sequence for word: '" + word);
}
return sequence.toString();
diff --git a/src/io/github/sspanak/tt9/preferences/T9Preferences.java b/src/io/github/sspanak/tt9/preferences/T9Preferences.java
index eb06b7ea..b85acfd9 100644
--- a/src/io/github/sspanak/tt9/preferences/T9Preferences.java
+++ b/src/io/github/sspanak/tt9/preferences/T9Preferences.java
@@ -2,10 +2,10 @@ package io.github.sspanak.tt9.preferences;
import android.content.Context;
import android.content.SharedPreferences;
-import androidx.preference.PreferenceManager;
-
import android.view.KeyEvent;
+import androidx.preference.PreferenceManager;
+
import java.util.ArrayList;
import java.util.Arrays;
@@ -23,11 +23,13 @@ public class T9Preferences {
private final SharedPreferences prefs;
private final SharedPreferences.Editor prefsEditor;
+
public T9Preferences (Context context) {
prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefsEditor = prefs.edit();
}
+
public static T9Preferences getInstance() {
if (self == null) {
self = new T9Preferences(TraditionalT9.getMainContext());
@@ -36,7 +38,8 @@ public class T9Preferences {
return self;
}
- /************* VALIDATORS *************/
+
+ /************* validators *************/
private boolean doesLanguageExist(int langId) {
return LanguageCollection.getLanguage(langId) != null;
@@ -70,7 +73,7 @@ public class T9Preferences {
}
- /************* PREFERENCES OPERATIONS *************/
+ /************* input settings *************/
public ArrayList getEnabledLanguages() {
int languageMask = prefs.getInt("pref_enabled_languages", 1);
@@ -101,6 +104,7 @@ public class T9Preferences {
prefsEditor.apply();
}
+
public int getTextCase() {
return prefs.getInt("pref_text_case", InputMode.CASE_LOWER);
}
@@ -131,6 +135,7 @@ public class T9Preferences {
}
}
+
public int getInputMode() {
return prefs.getInt("pref_input_mode", InputMode.MODE_PREDICTIVE);
}
@@ -146,18 +151,24 @@ public class T9Preferences {
}
+ /************* hotkey settings *************/
+
public int getKeyBackspace() {
return prefs.getInt("pref_key_backspace", KeyEvent.KEYCODE_BACK);
}
-
public int getKeyInputMode() { return prefs.getInt("pref_key_input_mode", KeyEvent.KEYCODE_POUND); }
-
public int getKeyOtherActions() { return prefs.getInt("pref_key_other_actions", KeyEvent.KEYCODE_STAR); }
- public int getSuggestionsMin() { return 8; }
- public int getSuggestionsMax() { return 20; }
+ /************* internal settings *************/
+ public int getDictionaryImportProgressUpdateInterval() { return 100; /* ms */ }
+ public int getDictionaryImportWordChunkSize() { return 1000; /* words */ }
+ public int getSuggestionsMax() { return 20; }
+ public int getSuggestionsMin() { return 8; }
+
+
+ /************* add word, last word *************/
public String getLastWord() {
return prefs.getString("last_word", "");
@@ -173,5 +184,4 @@ public class T9Preferences {
public void clearLastWord() {
this.saveLastWord("");
}
-
}
diff --git a/src/io/github/sspanak/tt9/ui/TraditionalT9Settings.java b/src/io/github/sspanak/tt9/ui/TraditionalT9Settings.java
index b9b43a0d..1543bc9d 100644
--- a/src/io/github/sspanak/tt9/ui/TraditionalT9Settings.java
+++ b/src/io/github/sspanak/tt9/ui/TraditionalT9Settings.java
@@ -1,6 +1,5 @@
package io.github.sspanak.tt9.ui;
-import android.app.Activity;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.app.ProgressDialog;
@@ -8,38 +7,24 @@ import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
-import android.os.AsyncTask;
import android.os.Bundle;
-import android.os.Environment;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
-import android.os.SystemClock;
-import android.text.TextUtils;
import android.view.View;
import android.widget.ListAdapter;
import android.widget.ListView;
-import com.stackoverflow.answer.UnicodeBOMInputStream;
-
-import java.io.BufferedReader;
-import java.io.Closeable;
-import java.io.File;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Properties;
-import io.github.sspanak.tt9.Logger;
import io.github.sspanak.tt9.R;
import io.github.sspanak.tt9.db.DictionaryDb;
-import io.github.sspanak.tt9.db.Word;
+import io.github.sspanak.tt9.db.DictionaryImportException;
+import io.github.sspanak.tt9.db.DictionaryLoader;
+import io.github.sspanak.tt9.languages.InvalidLanguageCharactersException;
+import io.github.sspanak.tt9.languages.InvalidLanguageException;
import io.github.sspanak.tt9.languages.Language;
import io.github.sspanak.tt9.languages.LanguageCollection;
import io.github.sspanak.tt9.preferences.T9Preferences;
@@ -49,365 +34,11 @@ import io.github.sspanak.tt9.settings_legacy.SettingAdapter;
public class TraditionalT9Settings extends ListActivity implements DialogInterface.OnCancelListener {
- AsyncTask task = null;
- final static String userdictname = "user.%s.dict";
- final static String sddir = "tt9";
+ private DictionaryLoader loader;
+ ProgressDialog progressDialog;
Context mContext = null;
- public static class LoadException extends Exception {
- private static final long serialVersionUID = 3323913652550046354L;
-
- public LoadException() {
- super();
- }
- }
-
- private static class Reply {
- public boolean status;
- private final List msgs;
-
- protected Reply() {
- this.status = true;
- this.msgs = new ArrayList<>(4);
- }
-
- protected void addMsg(String msg) throws LoadException {
- msgs.add(msg);
- if (msgs.size() > 6) {
- msgs.add("Too many errors, bailing.");
- throw new LoadException();
- }
- }
- protected void forceMsg(String msg) {
- msgs.add(msg);
- }
-
- }
-
- private void finishAndShowError(ProgressDialog pd, Reply result, int title){
- if (pd != null) {
- // Logger.d("onPostExecute", "pd");
- if (pd.isShowing()) {
- pd.dismiss();
- }
- }
- if (result == null) {
- // bad thing happened
- Logger.e("onPostExecute", "Bad things happen?");
- } else {
- String msg = TextUtils.join("\n", result.msgs);
- Logger.d("onPostExecute", "Result: " + result.status + " " + msg);
- if (!result.status) {
- showErrorDialog(getResources().getString(title), msg);
- }
- }
- }
-
- private static void closeStream(Closeable is, Reply reply) {
- if (is == null) {
- return;
- }
- try {
- is.close();
- } catch (IOException e) {
- e.printStackTrace();
- reply.forceMsg("Couldn't close stream: " + e.getMessage());
- }
- }
-
- private class LoadDictTask extends AsyncTask {
- /**
- * The system calls this to perform work in a worker thread and delivers
- * it the parameters given to AsyncTask.execute()
- */
- ProgressDialog pd;
- long size;
- long pos;
- boolean internal;
- String[] dicts;
- ArrayList mSupportedLanguages;
-
- LoadDictTask(int msgid, boolean intern, ArrayList supportedLanguages) {
- internal = intern;
-
- dicts = new String[supportedLanguages.size()];
- int x = 0;
- for (Language language : supportedLanguages) {
- if (intern) {
- dicts[x++] = language.getDictionaryFile();
- } else {
- dicts[x++] = String.format(userdictname, language.getName().toLowerCase(Locale.ENGLISH));
- }
- }
- mSupportedLanguages = supportedLanguages;
-
- pd = new ProgressDialog(TraditionalT9Settings.this);
- pd.setMessage(getResources().getString(msgid));
- pd.setOnCancelListener(TraditionalT9Settings.this);
- }
-
- private long getDictSizes(boolean internal, String[] dicts) {
- if (internal) {
- InputStream input;
- Properties props = new Properties();
- try {
- input = getAssets().open("dict.properties");
- props.load(input);
- long total = 0;
- for (String dict : dicts) {
- total += Long.parseLong(props.getProperty("size." + dict));
- }
- return total;
-
- } catch (IOException e) {
- Logger.e("getDictSizes", "Unable to get dict sizes");
- e.printStackTrace();
- return -1;
- } catch (NumberFormatException e) {
- Logger.e("getDictSizes", "Unable to parse sizes");
- return -1;
- }
- } else {
- File backupfile = new File(Environment.getExternalStorageDirectory(), sddir);
- long total = 0;
- File f;
- for (String dict : dicts) {
- f = new File(backupfile, dict);
- if (f.exists() && f.isFile()) {
- total = total + f.length();
- } else {
- total = total + 0;
- }
- }
- return total;
- }
- }
-
- @Override protected void onPreExecute() {
- size = getDictSizes(internal, dicts);
- pos = 0;
- if ( size >= 0 ) {
- pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
- pd.setMax(10000);
- } else {
- pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
- }
- pd.show();
- }
-
- @Override
- protected Reply doInBackground(String... mode) {
- Reply reply = new Reply();
-
- long startnow, endnow;
- startnow = SystemClock.uptimeMillis();
-
- // add characters first, then dictionary:
- Logger.d("doInBackground", "Adding characters...");
- processChars(mSupportedLanguages);
- Logger.d("doInBackground", "Characters added.");
-
- Logger.d("doInBackground", "Adding dict(s)...");
-
- InputStream dictstream = null;
-
- try {
- for (int x=0; x allLanguages) {
- ArrayList list = new ArrayList<>();
-
- try {
- for (Language lang : allLanguages) {
- for (int key = 0; key <= 9; key++) {
- for (String langChar : lang.getKeyCharacters(key)) {
- if (langChar.length() == 1 && langChar.charAt(0) >= '0' && langChar.charAt(0) <= '9') {
- // We do not want 0-9 as "word suggestions" in Predictive mode. It looks confusing
- // when trying to type a word and also, one can type them by holding the respective
- // key.
- continue;
- }
-
- Word word = new Word();
- word.langId = lang.getId();
- word.sequence = String.valueOf(key);
- word.word = langChar;
- word.frequency = 0;
-
- list.add(word);
- }
- }
- }
-
- DictionaryDb.insertWordsSync(list);
- } catch (Exception e) {
- Logger.e("processChars", e.getMessage());
- }
- }
-
- private String getLine(BufferedReader br, Reply rpl, String fname) throws LoadException {
- try {
- return br.readLine();
- } catch (IOException e) {
- e.printStackTrace();
- rpl.status = false;
- rpl.addMsg("IO Error ("+fname+"): " + e.getMessage());
- }
- return null;
- }
-
- private Reply processFile(InputStream is, Reply rpl, Language lang, String fname)
- throws LoadException, IOException {
- long start = System.currentTimeMillis();
-
- UnicodeBOMInputStream ubis = new UnicodeBOMInputStream(is);
-
- BufferedReader br = new BufferedReader(new InputStreamReader(ubis));
- ubis.skipBOM();
-
- int freq;
- String seq;
- int linecount = 1;
- int wordlen;
- String fileWord = getLine(br, rpl, fname);
- ArrayList dbWords = new ArrayList<>();
- int insertChunkSize = 1000;
- int progressUpdateInterval = 100; // ms
- long lastProgressUpdate = 0;
-
- try {
-
- DictionaryDb.beginTransaction();
-
- while (fileWord != null) {
- if (isCancelled()) {
- rpl.status = false;
- rpl.addMsg("User cancelled.");
- break;
- }
- if (fileWord.contains(" ")) {
- rpl.status = false;
- rpl.addMsg("Cannot parse word with spaces: " + fileWord);
- break;
- }
-
- freq = 0;
- wordlen = fileWord.getBytes(StandardCharsets.UTF_8).length;
- pos += wordlen;
- // replace junk characters:
- fileWord = fileWord.replace("\uFEFF", "");
- try {
- seq = lang.getDigitSequenceForWord(fileWord);
- } catch (Exception e) {
- rpl.status = false;
- rpl.addMsg("Error on word ("+fileWord+") line "+
- linecount+" in (" + fname+"): "+
- getResources().getString(R.string.add_word_badchar, lang.getName(), fileWord));
- break;
- }
- linecount++;
-
- Word word = new Word();
- word.sequence = seq;
- word.langId = lang.getId();
- word.word = fileWord;
- word.frequency = freq;
- dbWords.add(word);
-
- if (linecount % insertChunkSize == 0) {
- DictionaryDb.insertWordsSync(dbWords);
- dbWords.clear();
- }
-
- if (size >= 0 && System.currentTimeMillis() - lastProgressUpdate > progressUpdateInterval) {
- publishProgress((int) ((float) pos / size * 10000));
- lastProgressUpdate = System.currentTimeMillis();
- }
- fileWord = getLine(br, rpl, fname);
- }
-
- DictionaryDb.insertWordsSync(dbWords);
- DictionaryDb.endTransaction(true);
- dbWords.clear();
-
- publishProgress((int) ((float) pos / size * 10000));
- } catch (Exception e) {
- DictionaryDb.endTransaction(false);
- Logger.e("processFile", e.getMessage());
- } finally {
- br.close();
- is.close();
- ubis.close();
- is.close();
-
- Logger.d("processFile", "Inserted: " + fname + " in: " + (System.currentTimeMillis() - start) + "ms");
- }
- return rpl;
- }
-
- @Override
- protected void onProgressUpdate(Integer... progress) {
- if (pd.isShowing()) {
- pd.setProgress(progress[0]);
- }
- }
-
- @Override
- protected void onPostExecute(Reply result) {
- finishAndShowError(pd, result, R.string.dictionary_load_title);
- }
- }
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -433,22 +64,33 @@ public class TraditionalT9Settings extends ListActivity implements DialogInterfa
}
+ @Override
+ public void onCancel(DialogInterface dint) {
+ if (loader != null) {
+ loader.stop();
+ }
+ }
+
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Setting s = (Setting)getListView().getItemAtPosition(position);
- if (s.id.equals("help"))
- openHelp();
- else if (s.id.equals("loaddict"))
- preloader(R.string.dictionary_loading, true);
- else if (s.id.equals("truncatedict")) {
- truncateWords();
+ switch (s.id) {
+ case "help":
+ openHelp();
+ break;
+ case "loaddict":
+ loadDictionaries();
+ break;
+ case "truncatedict":
+ truncateWords();
+ break;
+ default:
+ s.clicked(mContext);
+ break;
}
- else if (s.id.equals("loaduserdict"))
- preloader(R.string.dictionary_loading_user_dict, false);
- else
- s.clicked(mContext);
}
+
private void openHelp() {
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(getString(R.string.help_url)));
@@ -465,50 +107,106 @@ public class TraditionalT9Settings extends ListActivity implements DialogInterfa
DictionaryDb.truncateWords(afterTruncate);
}
+ private void loadDictionaries() {
+ ArrayList languages = LanguageCollection.getAll(T9Preferences.getInstance().getEnabledLanguages());
+ initProgress(100 * languages.size());
- private void preloader(int msgid, boolean internal) {
+ Handler loadHandler = new Handler(Looper.getMainLooper()) {
+ @Override
+ public void handleMessage(Message msg) {
+ String error = msg.getData().getString("error", null);
+ if (error != null) {
+ hideProgress();
+ handleError(
+ error,
+ msg.getData().getInt("languageId", -1),
+ msg.getData().getLong("fileLine", -1),
+ msg.getData().getString("word", "")
+ );
+ } else {
+ int langId = msg.getData().getInt("languageId", -1);
+ Language lang = LanguageCollection.getLanguage(langId);
+ String langName = lang != null ? lang.getName() : "???";
- task = new LoadDictTask(
- msgid,
- internal,
- LanguageCollection.getAll(T9Preferences.getInstance().getEnabledLanguages())
- );
- task.execute();
+ String title = getResources().getString(R.string.dictionary_loading, langName);
+ showProgress(
+ msg.getData().getInt("currentFile", 0),
+ msg.getData().getInt("progress", 0),
+ title
+ );
+ }
+ }
+ };
+
+ loader = new DictionaryLoader(this);
+ loader.load(loadHandler, languages);
}
+ private void initProgress(int max) {
+ if (progressDialog == null) {
+ progressDialog = new ProgressDialog(this);
+ progressDialog.setOnCancelListener(TraditionalT9Settings.this);
+ progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+ }
+
+ progressDialog.setMax(max);
+ }
+
+ private void showProgress(int currentFile, int currentFileProgress, String title) {
+ if (progressDialog == null) {
+ return;
+ }
+
+ if (title != null) {
+ progressDialog.setMessage(title);
+ }
+
+ int totalProgress = 100 * currentFile + currentFileProgress;
+ if (totalProgress <= 0 || totalProgress >= progressDialog.getMax()) {
+ progressDialog.dismiss();
+ } else {
+ progressDialog.setProgress(totalProgress);
+ if (!progressDialog.isShowing()) {
+ progressDialog.show();
+ }
+ }
+ }
+
+ private void hideProgress() {
+ if (progressDialog != null) {
+ progressDialog.dismiss();
+ }
+ }
+
+ private void handleError(String errorType, int langId, long line, String word) {
+ Language lang = LanguageCollection.getLanguage(langId);
+ String message;
+
+ if (lang == null || errorType.equals(InvalidLanguageException.class.getSimpleName())) {
+ message = getString(R.string.add_word_invalid_language);
+ } else if (errorType.equals(DictionaryImportException.class.getSimpleName()) || errorType.equals(InvalidLanguageCharactersException.class.getSimpleName())) {
+ String languageName = lang.getName();
+ message = getString(R.string.dictionary_import_bad_char, word, line, languageName);
+ } else if (errorType.equals(IOException.class.getSimpleName()) || errorType.equals(FileNotFoundException.class.getSimpleName())) {
+ String languageName = lang.getName();
+ message = getString(R.string.dictionary_not_found, languageName);
+ } else {
+ String languageName = lang.getName();
+ message = getString(R.string.dictionary_import_error, languageName, errorType);
+ }
+
+ showErrorDialog(getString(R.string.dictionary_load_title), message);
+ }
+
private void showErrorDialog(CharSequence title, CharSequence msg) {
- showErrorDialog(new AlertDialog.Builder(this), title, msg);
- }
-
- private void showErrorDialog(AlertDialog.Builder builder, CharSequence title, CharSequence msg) {
- builder.setMessage(msg).setTitle(title)
- .setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- dialog.dismiss();
- }
- });
+ AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ builder
+ .setMessage(msg)
+ .setTitle(title)
+ .setNeutralButton(android.R.string.ok, (dialog, id) -> dialog.dismiss());
AlertDialog dialog = builder.create();
dialog.show();
}
-
- private void showErrorDialogID(AlertDialog.Builder builder, int titleid, int msgid) {
- builder.setMessage(msgid).setTitle(titleid)
- .setNeutralButton(android.R.string.ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- dialog.dismiss();
- }
- });
- AlertDialog dialog = builder.create();
- dialog.show();
- }
-
-
- @Override
- public void onCancel(DialogInterface dint) {
- task.cancel(false);
- }
}