# liblouis: Welsh Grade 2 Braille Contraction Table
#
#  Copyright (C) 2004-2008 ViewPlus Technologies, Inc. www.viewplus.com
#  Copyright (C) 2004-2006 JJB Software, Inc. www.jjb-software.com
#
#  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 by Tom Johnston <tom.johnston@accessibilityconsulting.co.uk>. 

include cy-cy-g1.utb

# the letter a
word a 1
word anghofio 1-1345-1245-125
always ar 345
word arbennig 345-12-15-1345-1345-24-1245
always arh 1-1235-125

#the letter b
word beth 12
always blwyddyn 12-123
always braille 12-1235-123
word byddai 12-145-145

#the letter c
word cael 14
always cyrraedd 456-14

#the letter ch
word chwarae 16
always chwerthin 5-16

#the letter d
always dechrau 145-16-1235
word diolch 145-16
always diwedd 145-2456
word diwethaf 145-2456-1456
always dydd 5-145
word dyma 145

#the letter dd
word ddoe 145-145

#the letter e
always ed 1246
always edd 15-145-145
word ef 15
word efallai 15-124-123-123
always eisiau 15-24-234
always eistedd 5-15
always en 26
always er 12456
always erh 15-1235-125

#the letter f
word fel 124
always fyny 5-124

#the letter ff
word ffordd 124-124
always ffrind 124-124-1235

#the letter g
always gorffen 1245-1235-124-124
always gweithio 456-1245
word gwelwch 1245-2456
word gwneud 1245-1345-145
word gwybod 1245-2456-12
word gyda 1245

#the letter h
always heddiw 5-125
always hefyd 456-125
word hoffi 125
word hynny 125-1345

#the letter i
word i 24
endword iaeth 56-1456
endword iaid 46-145
endword ion 46-1345
always in 35

#the letter l
word lawr 123

#the letter ll
word llawer 123-123
always llythr 123-123-1235

#the letter m
word mae 134
word meddai 134-145-145
always meddwl 456-134
always mynd 5-134

#the letter n
word neithiwr 1345-1456
always newydd 5-1345
word nid 1345

#the letter o
word o 135
always o'r\sgloch 135-3-1235-0-1245-123
word oedd 5-135
always of 12356
always off 135-124-124
word oherwydd 135-125-2456
always ow 135-2456

#the letter p
word penderfynu 1234-26-145 #the letter p
always pethau 1234-1456-136
word plant 1234-123
always plentyn 5-1234
word pobl 1234
always prynhawn 1234-1235-125

#the letter r
word roedd 1235
endword rwydd 56-145-145

#the letter rh
word rhai 1235-125
always rhaid 5-1235-125
word rhyw 1235-125-2456
word rhywbeth 1235-125-2456-12
word rhywbryd 1235-125-2456-12-1235
word rhywfaint 1235-125-2456-124-2345
word rhywfodd 1235-125-2456-124
word rhywle 1235-125-2456-123
word rhywun 1235-125-2456-136

#the letter s
always siarad 5-234
always st 34
always sth 234-1456
always stori 34
word sydd 234
always sylweddoli 456-234

#the letter t
word trwy 2345
always tywydd 5-2345

#the letter u
always uchel 5-136
word unig 136
word uwchben 136-2456-12

#the letter w
endword waith 46-1456
word wedi 2456
always wedyn 456-2456
always wrth 5-2456
word weithiau 2456-1456-136

#the letter y
word y 13456
endword yddes 56-234
always ysgol 5-13456
word ysgrifennu 13456-234-1245

# Système International Prefixes
begword yotta 13456-135-2345-2345-1 10^24
begword zetta 1356-15-2345-2345-1 10^21
 begword exa 15-1346-1 10^18
begword peta 1234-15-2345-1 10^15
begword tera 2345-12456-1 10^12
begword giga 1245-24-1245-1 10^9
begword mega 134-15-1245-1 10^6
begword kilo 13-24-123-135 10^3
begword hecto 125-15-14-2345-135 10^2
begword deca 145-15-14-1 10^1
begword deci 145-15-14-24 10^-1
begword centi 14-26-2345-24 10^-2
begword milli 134-24-123-123-24 10^-3
begword micro 134-24-14-1235-135 10^-6
begword nano 1345-1-1345-135 10^-9
begword pico 1234-24-14-135 10^-12
begword femto 124-15-134-2345-135 10^-15
begword atto 1-2345-2345-135 10^-18
begword zepto 1356-15-1234-2345-135 10^-21
begword yocto 13456-135-14-2345-135 10^-24

