414 lines
9.0 KiB
Plaintext
414 lines
9.0 KiB
Plaintext
#-index-name: Khmer
|
|
#-display-name: Khmer braille
|
|
#
|
|
#+locale: km
|
|
#+type: literary
|
|
#+contraction: no
|
|
#+grade: 1
|
|
#+dots: 6
|
|
#+direction: both
|
|
#+system: cambodia
|
|
#
|
|
#-copyright: Sao Mai Center for the Blind <www.saomaicenter.org/en>
|
|
#-license: LGPLv2.1
|
|
#
|
|
# Copyright (C) 2018 by Sao Mai Center for the Blind <www.saomaicenter.org/en>
|
|
#
|
|
# 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 and maintained by: Dang Hoai Phuc <danghoaiphuc@gmail.com>
|
|
# with help from Khemara Ly from Myanmar
|
|
#
|
|
#-author: Dang Hoai Phúc <danghoaiphuc@gmail.com>
|
|
#-maintainer-name: Dang Hoai Phuc
|
|
#-maintainer-email: danghoaiphuc@gmail.com
|
|
#
|
|
#-updated: 2020-11-17
|
|
#
|
|
# Based on <http://liblouis.org/braille-specs/khmer>
|
|
|
|
space \s 0 blank
|
|
space \t 9 tab
|
|
space \x000a 0 newline
|
|
space \x000c 0
|
|
space \x000d 0 carriage return
|
|
space \x001b 1b escape character for html back-translation
|
|
space \x00A0 a NO-BREAK SPACE <noBreak> 0020 NON-BREAKING SPACE
|
|
#space \x200b 0
|
|
|
|
# latin letters
|
|
lowercase a 1
|
|
lowercase b 12
|
|
lowercase c 14
|
|
lowercase d 145
|
|
lowercase e 15
|
|
lowercase f 124
|
|
lowercase g 1245
|
|
lowercase h 125
|
|
lowercase i 24
|
|
lowercase j 245
|
|
lowercase k 13
|
|
lowercase l 123
|
|
lowercase m 134
|
|
lowercase n 1345
|
|
lowercase o 135
|
|
lowercase p 1234
|
|
lowercase q 12345
|
|
lowercase r 1235
|
|
lowercase s 234
|
|
lowercase t 2345
|
|
lowercase u 136
|
|
lowercase v 1236
|
|
lowercase w 2456
|
|
lowercase x 1346
|
|
lowercase y 13456
|
|
lowercase z 1356
|
|
|
|
base uppercase A a
|
|
base uppercase B b
|
|
base uppercase C c
|
|
base uppercase D d
|
|
base uppercase E e
|
|
base uppercase F f
|
|
base uppercase G g
|
|
base uppercase H h
|
|
base uppercase I i
|
|
base uppercase J j
|
|
base uppercase K k
|
|
base uppercase L l
|
|
base uppercase M m
|
|
base uppercase N n
|
|
base uppercase O o
|
|
base uppercase P p
|
|
base uppercase Q q
|
|
base uppercase R r
|
|
base uppercase S s
|
|
base uppercase T t
|
|
base uppercase U u
|
|
base uppercase V v
|
|
base uppercase W w
|
|
base uppercase X x
|
|
base uppercase Y y
|
|
base uppercase Z z
|
|
|
|
# numbers definition
|
|
display 0 356
|
|
display 1 2
|
|
display 2 23
|
|
display 3 25
|
|
display 4 256
|
|
display 5 26
|
|
display 6 235
|
|
display 7 2356
|
|
display 8 236
|
|
display 9 35
|
|
digit 0 245
|
|
digit 1 1
|
|
digit 2 12
|
|
digit 3 14
|
|
digit 4 145
|
|
digit 5 15
|
|
digit 6 124
|
|
digit 7 1245
|
|
digit 8 125
|
|
digit 9 24
|
|
digit \x17e0 245
|
|
digit \x17e1 1
|
|
digit \x17e2 12
|
|
digit \x17e3 14
|
|
digit \x17e4 145
|
|
digit \x17e5 15
|
|
digit \x17e6 124
|
|
digit \x17e7 1245
|
|
digit \x17e8 125
|
|
digit \x17e9 24
|
|
|
|
litdigit 0 245
|
|
litdigit 1 1
|
|
litdigit 2 12
|
|
litdigit 3 14
|
|
litdigit 4 145
|
|
litdigit 5 15
|
|
litdigit 6 124
|
|
litdigit 7 1245
|
|
litdigit 8 125
|
|
litdigit 9 24
|
|
litdigit \x17e0 245
|
|
litdigit \x17e1 1
|
|
litdigit \x17e2 12
|
|
litdigit \x17e3 14
|
|
litdigit \x17e4 145
|
|
litdigit \x17e5 15
|
|
litdigit \x17e6 124
|
|
litdigit \x17e7 1245
|
|
litdigit \x17e8 125
|
|
litdigit \x17e9 24
|
|
# signs and punctuations definition
|
|
display ! 2346
|
|
punctuation ! 235
|
|
display " 5
|
|
punctuation " 236
|
|
#prepunc " 236
|
|
#postpunc " 356
|
|
display ? 1456
|
|
punctuation ? 236
|
|
match %[^_~]%<* " %[_.$]*%[a#] 236
|
|
match %[a#]%[_.$]* " %>*%[^_~] 356
|
|
|
|
display # 3456
|
|
sign # 3456
|
|
display $ 1246
|
|
sign $ 4-234
|
|
display % 146
|
|
sign % 4-356
|
|
math % 3456-245-356
|
|
display & 12346
|
|
sign & 4-12346
|
|
punctuation ' 3
|
|
display ( 12356
|
|
punctuation ( 2356
|
|
display ) 23456
|
|
punctuation ) 2356
|
|
display * 16
|
|
sign * 5-236
|
|
display + 346
|
|
math + 5-235
|
|
display , 6
|
|
punctuation , 6
|
|
punctuation - 36
|
|
math - 5-36
|
|
hyphen - 36
|
|
display . 46
|
|
punctuation . 256
|
|
#decpoint . 3
|
|
display / 34
|
|
sign / 34
|
|
math / 5-34
|
|
punctuation / 34
|
|
#display : 156
|
|
#punctuation : 45
|
|
display ; 56
|
|
punctuation ; 23
|
|
display < 126
|
|
math < 5-246
|
|
display = 123456
|
|
math = 5-2356
|
|
display > 345
|
|
punctuation > 5-135
|
|
display @ 47
|
|
sign @ 4
|
|
|
|
display [ 2467
|
|
punctuation [ 46-126
|
|
display \\ 12567
|
|
sign \\ 4-16
|
|
display ] 124567
|
|
punctuation ] 46-345
|
|
display ^ 45
|
|
sign ^ 4-26
|
|
display : 156
|
|
punctuation : 45
|
|
display _ 456
|
|
sign _ 4-456
|
|
display ` 4
|
|
sign ` 4-4 grave accent
|
|
|
|
display } 12456
|
|
punctuation } 456-345
|
|
display | 1256
|
|
sign | 456-1256
|
|
display { 246
|
|
punctuation { 456-126
|
|
display ~ 45
|
|
math ~ 4-35
|
|
punctuation \x17D4 123456
|
|
punctuation \x201C 236
|
|
punctuation \x201D 356
|
|
|
|
include braille-patterns.cti
|
|
|
|
|
|
|
|
# two special cases, not put v infront of subscript consonants
|
|
#match - \x17D2\x178B - 36-23456
|
|
#match - \x17D2\x178D - 356-23456
|
|
# letters with two character codes for each, all are from dependent vowels
|
|
match - \x17BB\x17C6 - 1246
|
|
match - \x17B6\x17C6 - 1356
|
|
match - \x17BB\x17C7 - 1346
|
|
match - \x17C1\x17C7 - 136
|
|
match - \x17C4\x17C7 - 2346
|
|
# add v subscript for consonants
|
|
letter \x17D2 1236
|
|
# if o in print before 4 vowels below, should be placed after these 4 vowels
|
|
match - \x17A2\x17BE - 146-135
|
|
#match - \x17A2\x17C1 - 124-135
|
|
noback pass2 @135-124 @124-135
|
|
match - \x17A2\x17C2 - 126-135
|
|
match - \x17A2\x17C3 - 24-135
|
|
# regular consonants Dot pattern for regular consonants
|
|
letter \x1780 1245
|
|
letter \x1781 13
|
|
#letter \x1782 6-1245
|
|
letter គ 6-1245
|
|
letter \x1783 6-13
|
|
letter \x1784 12456
|
|
letter \x1785 245
|
|
letter \x1786 346
|
|
letter \x1787 6-245
|
|
letter \x1788 6-346
|
|
letter \x1789 6-1456
|
|
letter \x178A 145
|
|
letter \x178B 36-23456
|
|
letter \x178C 6-145
|
|
letter \x178D 356-23456
|
|
letter \x178E 1345
|
|
letter \x178F 2345
|
|
letter \x1790 23456
|
|
letter \x1791 6-2345
|
|
letter \x1792 6-23456
|
|
letter \x1793 6-1345
|
|
letter \x1794 12
|
|
letter \x1795 1234
|
|
letter \x1796 12346
|
|
letter \x1797 6-1234
|
|
letter \x1798 134
|
|
letter \x1799 6-13456
|
|
letter \x179A 1235
|
|
letter \x179B 6-123
|
|
letter \x179C 2456
|
|
letter \x179F 234
|
|
letter \x17A0 125
|
|
letter \x17A1 123
|
|
letter \x17A2 135
|
|
# independent vowels #Dot patern for independent vowels
|
|
letter \x17A5 6-34
|
|
letter \x17A6 15-1
|
|
letter \x17A7 14-1
|
|
#letter \x17A8
|
|
letter \x17A9 6-25
|
|
letter \x17AA 1256
|
|
letter \x17B3 456-14
|
|
letter \x17AB 6-1346
|
|
letter \x17AC 1346-1
|
|
letter \x17AD 1456
|
|
letter \x17AE 1456-1
|
|
letter \x17AF 5
|
|
letter \x17B0 124-1
|
|
letter \x17B1 156-1
|
|
letter \x17B2 156-1
|
|
#dependent vowels # Dot paterns for dependent vowels
|
|
letter \x17B6 16
|
|
letter \x17B7 34
|
|
letter \x17B8 15
|
|
letter \x17B9 246
|
|
letter \x17BA 26
|
|
letter \x17BB 14
|
|
letter \x17BC 25
|
|
letter \x17BD 23
|
|
letter \x17BE 146
|
|
letter \x17BF 12345
|
|
letter \x17C0 12356
|
|
letter \x17C1 124
|
|
letter \x17C2 126
|
|
letter \x17C3 24
|
|
letter \x17C4 156
|
|
letter \x17C5 456
|
|
#letter \x17BB\x17C6 1246
|
|
letter \x17C6 13456
|
|
#letter \x17B6\x17C6 1356
|
|
letter \x17C7 1
|
|
#letter \x17BB\x17C7 1346
|
|
#letter \x17C1\x17C7 136
|
|
#letter \x17C4\x17C7 2346
|
|
#additional letters not found on wiki page
|
|
letter \x17CB 35
|
|
letter \x17d0 345
|
|
letter \x17c8 45
|
|
letter \x17c9 4
|
|
letter \x17cf 3
|
|
letter \x17cd 356
|
|
letter \x17ca 36
|
|
letter \x17d7 2
|
|
letter \x17cc 2356
|
|
letter \x200c 16-5-13
|
|
|
|
numsign 3456
|
|
letsign 56
|
|
capsletter 6
|
|
begcapsword 6-6
|
|
endcapsword 6-3
|
|
lencapsphrase 3
|
|
begcapsphrase 6-6-6
|
|
begcaps 6-6-6
|
|
endcaps 6-3
|
|
|
|
# time processing with : as saperator sign
|
|
noback match %# :0 %# 45-245
|
|
noback match %# :1 %# 45-1
|
|
noback match %# :2 %# 45-12
|
|
noback match %# :3 %# 45-14
|
|
noback match %# :4 %# 45-145
|
|
noback match %# :5 %# 45-15
|
|
noback match %# '0 %# 3-245
|
|
noback match %# '1 %# 3-1
|
|
noback match %# '2 %# 3-12
|
|
noback match %# '3 %# 3-14
|
|
noback match %# '4 %# 3-145
|
|
noback match %# '5 %# 3-15
|
|
# unknown character
|
|
replace \x200b
|
|
# add space between digits and letters
|
|
#noback correct $d$l "\s"
|
|
#noback context $d[$l] @0*
|
|
noback pass2 @245-56 @245-0
|
|
noback pass2 @1-56 @1-0
|
|
noback pass2 @12-56 @12-0
|
|
noback pass2 @14-56 @14-0
|
|
noback pass2 @145-56 @145-0
|
|
noback pass2 @15-56 @15-0
|
|
noback pass2 @124-56 @124-0
|
|
noback pass2 @1245-56 @1245-0
|
|
noback pass2 @125-56 @125-0
|
|
noback pass2 @24-56 @24-0
|
|
|
|
# moving vowels and subscript consonants to before dependent consonants
|
|
class consonant \x1780\x1781\x1782\x1783\x1784\x1785\x1786\x1787\x1788\x1789\x178A\x178B\x178C\x178D\x178E\x178F\x1790\x1791\x1792\x1793\x1794\x1795\x1796\x1797\x1798\x1799\x179A\x179B\x179C\x179F\x17A0\x17A1\x17A2
|
|
# place vowels before subscripted and dependent consonants
|
|
noback correct [%consonant]"\x17D2\x179A\x17BE" "\x17BE\x17D2\x179A"*
|
|
noback correct [%consonant]"\x17D2\x179A\x17C1" "\x17C1\x17D2\x179A"*
|
|
noback correct [%consonant]"\x17D2\x179A\x17C2" "\x17C2\x17D2\x179A"*
|
|
noback correct [%consonant]"\x17D2\x179A\x17C3" "\x17C3\x17D2\x179A"*
|
|
# place vowels before consonants
|
|
noback correct [%consonant]"\x17BE" "\x17BE"*
|
|
noback correct [%consonant]"\x17C1" "\x17C1"*
|
|
noback correct [%consonant]"\x17C2" "\x17C2"*
|
|
noback correct [%consonant]"\x17C3" "\x17C3"*
|
|
|
|
noback correct [%consonant"\x17d2"%consonant]"\x17BE" "\x17BE"*
|
|
noback correct [%consonant"\x17d2"%consonant]"\x17C1" "\x17C1"*
|
|
noback correct [%consonant"\x17d2"%consonant]"\x17C2" "\x17C2"*
|
|
noback correct [%consonant"\x17d2"%consonant]"\x17C3" "\x17C3"*
|
|
|
|
|
|
|
|
noback correct [%consonant]"\x17D2\x179A" "\x17D2\x179A"*
|
|
|
|
#class vowelbefore \x17C1\x17C2\x17C3\x17BE
|
|
#noback context "\x17D2\x179A"[%consonant]"\x17BE" ?
|
|
#"\x17BE\x17D2\x179A"*
|