#liblouis Irish Grade 2 Contracted  Braille code
# Version: INBAF May 2019
#  Copyright (C) 2019 Ronan McGuirk, <ronan.p.mcguirk@gmail.com>.
#
#-index-name: Irish, contracted
#-display-name: Irish contracted braille
#
#+locale:ga
#+type:literary
#+contraction:full
#+grade:2
#+system:INBAF
#
# Updated Irish Braille (UIB) version 2019 by INBAF (ratified May 27 2019):
# http://liblouis.org/braille-specs/irish/#updated-irish-braille-2019
#
#  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/>.

# www.inbaf.ie Irish Grade 2 Braille  Version 2.0 June 2019

# Maintained by Ronan McGuirk, <ronan.p.mcguirk@gmail.com>

include ga-g1.utb
 contraction c
contraction e
contraction f
contraction g
contraction h
contraction l
contraction o
contraction p
contraction r
contraction u
contraction v
contraction agn
contraction st
contraction bh
contraction ch
contraction dh
contraction fh
contraction gh
contraction mh
contraction ph
contraction sh
contraction th
contraction tht
contraction mb
contraction bhm
contraction gc
contraction chmar
contraction nd
contraction ng
contraction ghmar
contraction lm
contraction nr
contraction bp
contraction rmar
contraction tt
contraction dt
contraction thmar
contraction brl

contraction C
contraction E
contraction F
contraction G
contraction H
contraction L
contraction P
contraction R
contraction U
contraction V
contraction BH
contraction CH
contraction DH
contraction FH
contraction GH
contraction MH
contraction PH
contraction SH
contraction TH
contraction MB
contraction BHM
contraction GC
contraction CHMAR
contraction ND
contraction NG
contraction GHMAR
contraction LM
contraction NR
contraction BP
contraction RMAR
contraction TT
contraction DT
contraction THMAR
contraction BRL



always ar 	345
always ch 	16
begword con 25
begword dis 256
midword ea 2
midendword ear 15-345 
always ed 1246
always er 12456
always en	26
always gh 	126
always in 	35
midendword ing 	346
always ou 1256
always ow 246
always sh 	146
always st 	34
always th 	1456
always wh 156
# Words

word againn 1-1245-1345
word bíonn 12
word cathain 14
word déanamh 145
word eile 15
word féidir 124
word gach 1245
word halla 125
word leis 123
word maith 134
word nuair 1345
word oíche 135
word píosa 1234
word raibh 1235
word agus 234
word staighre 34
word tabhair 2345
word thabhairt 1456-2345
word uaireanta 136
word véarsa 1236
word bhíonn 12-125
word chuaigh 16
word dhéanamh 145-125
word fhéidir 124-125
word gheobhaidh 126
word mhaith 134-125
word phíosa 1234-125
word shampla 146
word tháinig 1456
word mbíonn 134-12
word bhíomar 12-125-134
word gcathain 1245-14
word chuamar 16-134-345
word ndéanamh 1345-145
word ngach 1345-1245
word gheobhamar 126-134-345
word liom  123-134
word níor 1345-1235
word bpíosa 12-1234
word rabhamar 1235-134-345
word tabhairt 2345-2345
word dtabhairt 145-2345
word thángamar 1456-134-345
word braille 12-1235-123

 
# exceptions where contractions are not to be used 
begword aingh 1-35-126
always liaingh 123-24-1-35-126
begword coing 14-135-35-1245
always cráing 14-1235-12346-35-1245
always éacs 	123456-1-14-234
always téacs 2345-123456-1-14-234
always féing 124-123456-35-1245
always féingh 124-123456-35-126
always saing 234-1-35-1245
begword uaingh 136-1-35-126
always cearting 14-15-345-2345-35-1245 
always chearting 16-15-345-2345-35-1245 
always cluastuisc 14-123-136-1-234-2345-136-24-234-14
begword chluastuisc 16-123-136-1-234-2345-136-24-234-14
always crostagairt 14-1235-135-234-2345-1-1245-1-24-1235-2345
begword chrostagairt 16-1235-135-234-2345-1-1245-1-24-1235-2345
begword físt 124-12356-234-2345
begword fhíst 124-125-12356-234-2345
begword bhfíst 12-125-124-12356-234-2345
begword íost 12356-135-234-2345
begword luast 123-136-1-234-2345
begword spástaist 234-1234-12346-234-2345-1-24-34
always tinedh 2345-35-15-145-125
begword trast 2345-1235-1-234-2345
begword dtrast 145-2345-1235-1-234-2345
begword thrast 1456-1235-1-234-2345
begword uast 136-1-234-2345
begword uisce 136-24-234-14-15
always uisceadá 136-25-234-14-2-145-12346
