# liblouis: Norwegian contracted braille, level 1.
#
#  Copyright (C) 2005 ViewPlus Technologies, Inc. www.viewplus.com
#  Copyright (C) 2009 Lars Bjørndal <lars@lamasti.net>
#
#  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/>.

# Created June 9, 2005 by Leon Ungier <Leon.Ungier@ViewPlus.com> with
# help and guidance from Lars Bjørndal <lars@lamasti.net>.

# Modified Sep 30, 2005 by LU

# Heavily overworked by lars@lamasti.net, 2009.

include no-no-g0.utb
capsnocont
#------------------------------------------------------
# -------------- level 1 contractions -----------------
#------------------------------------------------------
endword ar 3456
word at 1
word ble 12
word de 1456
endword de 1456
word du 145
word eg 1245
word eller 15
word ellers 15-234
word en 126
endword en 126
word ende 126-1456
endword ende 126-1456
word er 156
endword er 156
word et 346
endword et 346
word etter 1356
begword etter 1356
word etterat 1356-1
word ettersom 1356-234
word etterpå 1356-1234

word for 1246											# level 1 contractions
endword for 1246
begword for 1246
word forat 1246-1
word forfra 1246-124
word forover 1246-1346
word forlike 1246-123

word forhold 12346
endword forhold 12346
begword forhold 12346

word forholdsvis 12346-1236

word fra 124											# level 1 contractions
word før 246
word gjennom 12456
begword gjennom 12456
endword gjennom 12456
word gjennomfør 12456-246

word han 125
word hans 125-234
word har 1235
word hun 136
word hvor 2456
begword hvor 2456

word ikke 24-13										# level 1 contractions
word ikkje 24-13-245
word jeg 245
word kan 13
word like 123
word mange 134
word med 146
word mye 13456
word når 1345

word og 14												# level 1 contractions
word også 14-234
word oss 135										
word over 1346
begword over 1346
word overfor 1346-1246
word overpå 1346-1234
word overunder 1346-12345
word overfør 1346-246
word overvære 1346-345
word overvar 1346-3456

word på 1234
word som 234
word til 2345
word under 12345
begword under 12345
word underer 12345-345
word underet 12345-346
word underfra 12345-124
word undersom 12345-234
word undertil 12345-2345

word var 3456
word ved 1236
word være 345											# level 1 contractions

letsign 56
noletsign i
noletsign I
noletsign å
noletsign Å
noletsign à
noletsign á
#noletsignbefore '.
noletsignafter :.

# Remove dot 56 before e-post (email)
noback pass2 @56-15-36-1234-135-234-2345 @15-36-1234-135-234-2345
noback pass2 @56-6-15-36-1234-135-234-2345 @6-15-36-1234-135-234-2345

# -------------------------------------------------------------------
