# liblouis: Norwegian literary braille, 8-dot with 6-dot fallback
#
#-name: Norsk litterær punktskrift, 8-punkt med 6-punktsdefinisjoner i reserve
#-index-name: Norwegian, uncontracted, 8-dot, 6-dot fallback
#-display-name: Norwegian 8-dot uncontracted braille with 6-dot fallback
#
#+locale:no
#+type:literary
#+contraction:no
#+dots:8
#+grade:0
#+variant:fallback-6dot
#
#  Copyright (C) 2015 NLB Norwegian library of talking books and braille, http://www.nlb.no/
#
#-copyright: 2015, NLB Norwegian library of talking books and braille, http://www.nlb.no/
#-license: LGPLv2.1
#
# Created August 2015 by Jostein Austvik Jacobsen <jostein@nlb.com> and Ammar Usama <ammar.usama@nlb.no>
#
#-author-name: Jostein Austvik Jacobsen
#-author-email: jostein@nlb.no
#-author-url: https://github.com/josteinaj
#
#-author-name: Ammar Usama
#-author-email: ammar.usama@nlb.no
#-author-url: https://github.com/usama49
#
# Official norwegian braille specifications are collected here:
# http://liblouis.org/braille-specs/norwegian
# This specific table combines 8 dot braille with a fallback mechanism to
# 6 dot braille in cases where a character is defined in 6 dot but not 8 dot.
# The 8 dot table is based on the document "Punkttabell for JAWS".
# The 6 dot table is based on the document "Håndbok i litterær punktskrift".
#
#  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 no-no-8dot.utb

# If character not defined in 8-dot standard; follow 6-dot standard instead
include no-no-chardefs6.uti
