###############################################################################
# BRLTTY - A background process providing access to the console screen (when in
#          text mode) for a blind person using a refreshable braille display.
#
# Copyright (C) 1995-2023 by The BRLTTY Developers.
#
# BRLTTY comes with ABSOLUTELY NO WARRANTY.
#
# This is free software, placed under the terms of the
# GNU Lesser General Public License, as published by the Free Software
# Foundation; either version 2.1 of the License, or (at your option) any
# later version. Please see the file LICENSE-LGPL for details.
#
# Web Page: http://brltty.app/
#
# This software is maintained by Dave Mielke <dave@mielke.cc>.
###############################################################################

# BRLTTY Contraction Table - German (basic contractions)
# Created by Mario Lang <mlang@delysid.org>.

include de-g0.ctb

class cst cst
class s s
class t t

# Lautgruppenkürzungen
always au 16
always eu 126
always ei 146
always ch 1456
always sch 156
always st 23456
midendword ie 346
always äu 34

before s midendword aus 16-234

always barrier = shouldn't use the ie-contraction
always bankier = shouldn't use the ie-contraction
always famili = familie(n) shouldn't use the ie-contraction
endword studie 23456-136-145-24-15 shouldn't use the ie-contraction
midendword ien = shouldn't use the ie-contraction
midendword iell = shouldn't use the ie-contraction
begmidword dien 145-346-1345
always indien = shouldn't use the ie-contraction
midendword ietät =
always spezies =
before cst midword ungs = Bindungscharakter, Regierungschef

# unsolvable problems:
# die Premiere vs. ich premiere
# die Premieren vs. sie premieren

# exceptions
word aktie = shouldn't use the ie-contraction
always algerier = shouldn't use the ie-contraction
prfword amphibie = shouldn't use the ie-contraction
always amtschef 1-134-2345-234-1456-15-124 shouldn't use the sch-contraction
always amtschines 1-134-2345-234-1456-24-1345-15-234 shouldn't use the sch-contraction
always andalusier = shouldn't use the ie-contraction
always asthma = shouldn't use the st-contraction
before t always bundes = shouldn't use the st-contraction
prfword chemikalie 1456-15-134-24-13-1-123-24-15 shouldn't use the ie-contraction
always dienstag 145-346-1345-234-2345-1-1245 shouldn't use the st-contraction
always donnerstag = shouldn't use the st-contraction
always eschatolog 15-234-1456-1-2345-135-123-135-1245 shouldn't use the sch-contraction
always esther = shouldn't use the st-contraction
prfword folie = shouldn't use the ie-contraction
sufword hoer 125-246-1235 should use the oe-symbol
always interview = shouldn't use the ie-contraction
always koffein = shouldn't use the ei-contraction
always lilie = shouldn't use the ie-contraction
prfword linie 123-24-1345-24-15 shouldn't use the ie-contraction
prfword materie = shouldn't use the ie-contraction
always medien = shouldn't use the ie-contraction
always museum = shouldn't use the eu-contraction
always propriet = proprietär shouldn't use the ie-contraction
always döschen 145-246-234-1456-15-1345
always höschen 125-246-234-1456-15-1345 should use the ch-contraction
word röschen 1235-246-234-1456-15-1345 should use the ch-contraction
always samstag = shouldn't use the st-contraction
word wisst = shouldn't use the st-contraction
always vietnam = shouldn't use the ie-contraction

# names
always daniel = shouldn't use the ie-contraction
