# liblouis: Hungarian Grade 1 table
#
#  Copyright (C) 2011-2017 Attila Hammer from IT Foundation for the Visually Impaired - Hungary. www.infoalap.hu
#
#  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/>.
#
#  Maintained by Attila Hammer  hammer.attila@infoalap.hu
#
# If you found bugs with hungarian grade1 table, report it with following address:
# Attila Hammer <hammer.attila@infoalap.hu
#If you have a Launchpad account, report table related requests with following bug tracker address: https://bugs.launchpad.net/belin

include hu-backtranslate-correction.dis
include hu-chardefs.cti
include hu-exceptionwords.cti
include braille-patterns.cti

#Braille indicators
numsign 3456
capsletter 46
begcapsword 46-46
emphclass italic
emphclass underline
emphclass bold
begemph italic 356
endemph italic  236
begemph bold 356
endemph bold 236
begemph underline 356
endemph underline 236
begcomp 456-346
endcomp 456-156
midnum : 3
midnum - 36-3456
hyphen - 36
decpoint , 2
midnum . 3-3456
endnum . 3
endnum – 36-36
#Following part implementing the new braille standard changes
#When some punctuation character have after end of numbers, need add a dot6 prefix before the punctuation character dots
endnum : 6-25
endnum ? 6-26
endnum ; 6-23
endnum ! 6-235
endnum " 6-236
endnum * 6-35
noback always . 3
always ' 6-3
postpunc . 256
postpunc ; 23
word ; 23
midnum : 25
postpunc : 25
noback always : 25
noback always ! 235
endnum . 3
always • 6-35
endnum % 3456-245-356
endnum / 5-2
# literary forms of the decimal digits
include litdigits6Dots.uti
midendnumericmodechars ,:.-

#Special letter replacements
always cs 146	General need replacing cs letters with a combined dot combination
always ccs 146-146	General need replacing ccs letters with a combined dot combination
always csz 14-156
always cszs 146-345
always ccsz 14-14-156
always gy 1456	General need replacing gy letters with a combined dot combination
always ggy 1456-1456	General need replacing ggy letters with a combined dot combination
always ly 456
always lly 456-456	General need replacing ly letters with a combined dot combination
always ny 1246	General need replacing ny letters with a combined dot combination
always nny 1246-1246	General need replacing nny letters with a combined dot combination
always ty 1256	General need replacing ty letter pairs with a combined dot combination
always tty 1256-1256		General need replacing ty letter pairs with a combined dot combination combined dot combination
always sz 156	General need replacing sz letters with a combined dot combination
always ssz 156-156
always zsz 126-156
always zszs 345-345
always zs 345	General need replacing zs letters with a combined dot combination
always zzs 345-345	General need replacing zs letters with a combined dot combination

#Special punctuation simbols
prepunc " 236	Opening quotation simbol
postpunc " 356	Closing quotation simbol
prepunc « 236
postpunc » 356
prepunc » 236
postpunc « 356
noback always " 236	Need this rule to present one left quotation mark if the user firsttyping the " character
prepunc ( 2346	Opening left parenthese
postpunc ) 1356	Closing right parenthese
noback always ( 2346	Need this rule to the user always see 2346 dot combination if type first ( character a text
noback always ) 1356	Need this rule to the user always see 1356 dot combination if type first ) character a text
prepunc « 236
postpunc » 356
prepunc ‘ 236
postpunc ’ 356
prepunc ‚ 236
postpunc ‚ 356
prepunc “ 236
prepunc ” 236
postpunc ” 356
prepunc „ 236
postpunc „ 356
prepunc < 5-13
postpunc > 46-2

#Other exceptions With need marking different dot combination
noback always Q 12346
noback always Z 126
noback always # 123456
always $ 5-145
always % 3456-245-356
always ~ 5-2345
always < 5-13
always > 46-2
always / 5-2
noback always | 45
always { 5-2346
always } 5-1356
always [ 46-2346
always ] 46-1356
noback always \\ 16
noback always ^ 2346
noback always ` 4
noback always Æ 1
always lyú 456-346
always lysz 456-156
space \x000c 0
space \x001b 1b
space \e 1b
space \f 0
always ä 5-1
noback context $l$p["–"] @36-36
noback context $l["–"] @36-36
noback always \\_ 6 letter sign before Roman page numbers
noback pass2 @3456-356 @356-3456
include hu-hu-g1_braille_input.cti
undefined 26
