# liblouis: German Grade 0 Braille
#
# Das System der deutschen Blindenschrift (2015/2018)
# http://www.bskdl.org/textschrift.html
#
# Bemerkung:
# - Gross-/Kleinschreibung wird nicht berücksichtigt (d.h. für
#   Abkürzungen u.ä. braucht es Vorprogramm)
# - Akzente: Hinweis auf die beiden Tabellen (bis jetzt nur als
#   Kommentar in de-g0.utb)
#
# -----------
#-name: Deutsche Basisschrift
#-index-name: German, uncontracted
#-display-name: German uncontracted braille
#
#+locale:de
#+type:literary
#+contraction:no
#+grade:0
#+direction:forward
# ------------
#
#  Copyright (C) 2018 SBS Schweizerische Bibliothek für Blinde, Seh- und Lesebehinderte
#
#  This file is part of liblouis.
#
#  liblouis is free software: you can redistribute it and/or modify it
#  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.
#
#  liblouis is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with liblouis. If not, see
#  <http://www.gnu.org/licenses/>.
#
#-------------------------------------------------------------------------------

include de-chardefs6.cti
# for a detailed representation of french and italian accents un-comment the next line
#include de-accents-detailed.cti
include de-accents.cti
include de-g0-core.uti
