nvdaportable/NVDA/louis/tables/th-g1.uti

317 lines
14 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# liblouis: Thai Grade 1 character definitions table
#
# copyright: 2024, Thai braille fund and FOUNDATION FOR THE BLIND IN THAILAND UNDER THE ROYAL PATRONAGE OF H.M. THE QUEEN.
#
# 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/>.
#-maintainer: Chatupol Nootatong <jpt@tab.or.th>
include spaces.uti
# Thai Consinants
letter \x0e01 1245 # ก
letter \x0e02 13 # ข
letter \x0e03 13b # ฃ
letter \x0e04 136 # ค
letter \x0e05 136a # ฅ
letter \x0e06 1369 # ฆ
letter \x0e07 12456 # ง
letter \x0e08 245 # จ
letter \x0e09 34 # ฉ
letter \x0e0a 346 # ช
letter \x0e0b 2346 # ซ
letter \x0e0c 3469 # ฌ
letter \x0e0d 134569 # ญ
letter \x0e0e 1459 # ฎ
letter \x0e0f 12569 # ฏ
letter \x0e10 23459 # ฐ
letter \x0e11 234569 # ฑ
letter \x0e12 23456a # ฒ
letter \x0e13 13459 # ณ
letter \x0e14 145 # ด
letter \x0e15 1256 # ต
letter \x0e16 2345 # ถ
letter \x0e17 23456 # ท
letter \x0e18 23456b # ธ
letter \x0e19 1345 # น
letter \x0e1a 1236 # บ
letter \x0e1b 12346 # ป
letter \x0e1c 1234 # ผ
letter \x0e1d 1346 # ฝ
letter \x0e1e 1456 # พ
letter \x0e1f 1246 # ฟ
letter \x0e20 14569 # ภ
letter \x0e21 134 # ม
letter \x0e22 13456 # ย
letter \x0e23 1235 # ร
letter \x0e25 123 # ล
letter \x0e27 2456 # ว
letter \x0e28 2349 # ศ
letter \x0e29 234a # ษ
letter \x0e2a 234 # ส
letter \x0e2b 125 # ห
letter \x0e2c 1239 # ฬ
letter \x0e2d 135 # อ
letter \x0e2e 123456 # ฮ
# Thai vowel
letter \x0e30 1 # ะ
letter \x0e31 345 # ั
letter \x0e47 3 # ็
letter \x0e32 16 # า
letter \x0e34 12 # ิ
letter \x0e35 23 # ี
letter \x0e38 14 # ุ
letter \x0e39 25 # ู
letter \x0e36 246 # ึ
letter \x0e37 26 # ื
letter \x0e40 124 # เ
letter \x0e41 126 # แ
letter \x0e42 24 # โ
letter \x0e33 1356 # ำ
letter \x0e44 156 # ไ
letter \x0e43 156-2 # ใ
letter \x0e24 1235-2 # ฤ
letter \x0e26 123-2 # ฦ
letter \x0e48 35 # ่
letter \x0e49 256 # ้
letter \x0e4a 2356 # ๊
letter \x0e4b 236 # ๋
sign ? 236 # ?
sign \x0e46 2 # ๆ
sign \x0e4c 356 # ์
sign \x0e4d 5 # ํ
sign \x0e3a 3 # ฺ
sign \x0e2f 56-23 # ฯ
sign \x0e3f 4-12 # ฿
sign \x0e45 5-16 # ๅ
sign \x0e4e 4-15 # ๎
sign \x0e4f 4-14 # ๏
sign \x0e5a 4-256 # ๚
sign \x0e5b 4-23 # ๛
# make phayan yai
noback pass2 @56-23-123-56-23 @56-123
# Thai digit
digit \x0e50 245b #
digit \x0e51 1b # ๑
digit \x0e52 12b # ๒
digit \x0e53 14b # ๓
digit \x0e54 145b # ๔
digit \x0e55 15b # ๕
digit \x0e56 124b # ๖
digit \x0e57 1245b # ๗
digit \x0e58 125b # ๘
digit \x0e59 24b # ๙
#attribute Thai Consinants
attribute thaiconsinants \x0e01\x0e02\x0e03\x0e04\x0e05\x0e06\x0e07\x0e08\x0e09\x0e0a\x0e0b\x0e0c\x0e0d\x0e0e\x0e0f\x0e10\x0e11\x0e12\x0e13\x0e14\x0e15\x0e16\x0e17\x0e18\x0e19\x0e1a\x0e1b\x0e1c\x0e1d\x0e1e\x0e1f\x0e20\x0e21\x0e22\x0e23\x0e25\x0e27\x0e28\x0e29\x0e2a\x0e2b\x0e2c\x0e2d\x0e2e
#attribute tone marks
attribute tonemarks \x0e48\x0e49\x0e4a\x0e4b
# thai sign
attribute thaiSign \x0e46\x0e4c\x0e4d\x0e3a\x0e2f\x0e3f\x0e45\x0e4e\x0e4f\x0e5a\x0e5b
#attribute Thai Consinants for punctuation
attribute forpunc \x0e01\x0e02\x0e03\x0e04\x0e05\x0e06\x0e07\x0e08\x0e09\x0e0a\x0e0b\x0e0c\x0e0d\x0e0e\x0e0f\x0e10\x0e11\x0e12\x0e13\x0e14\x0e15\x0e16\x0e17\x0e18\x0e19\x0e1a\x0e1b\x0e1c\x0e1d\x0e1e\x0e1f\x0e20\x0e21\x0e22\x0e23\x0e25\x0e27\x0e28\x0e29\x0e2a\x0e2b\x0e2c\x0e2d\x0e2e\x0e30\x0e47\x0e32\x0e34\x0e35\x0e38\x0e39\x0e36\x0e37\x0e33\x0e48\x0e49\x0e4a\x0e4b\x0e46\x0e4c\x0e2f\x0e41
# swap for context
swapcd thaiconsinantsCD \x0e01\x0e02\x0e03\x0e04\x0e05\x0e06\x0e07\x0e08\x0e09\x0e0a\x0e0b\x0e0c\x0e0d\x0e0e\x0e0f\x0e10\x0e11\x0e12\x0e13\x0e14\x0e15\x0e16\x0e17\x0e18\x0e19\x0e1a\x0e1b\x0e1c\x0e1d\x0e1e\x0e1f\x0e20\x0e21\x0e22\x0e23\x0e25\x0e27\x0e28\x0e29\x0e2a\x0e2b\x0e2c\x0e2d\x0e2e 1245,13,356-13,136,36-136,6-136,12456,245,34,346,2346,6-346,6-13456,6-145,6-1256,6-2345,6-23456,36-23456,6-1345,145,1256,2345,23456,356-23456,1345,1236,12346,1234,1346,1456,1246,6-1456,134,13456,1235,123,2456,6-234,36-234,234,125,6-123,135,123456
swapcd tonemarksContext \x0e48\x0e49\x0e4a\x0e4b 359,2569,23569,2369
# swap for multipass
swapdd tonemarksPass 359,2569,23569,2369 35,256,2356,236
#attribute Thai Consinants for match
attribute 1 \x0e01\x0e02\x0e03\x0e04\x0e05\x0e06\x0e07\x0e08\x0e09\x0e0a\x0e0b\x0e0c\x0e0d\x0e0e\x0e0f\x0e10\x0e11\x0e12\x0e13\x0e14\x0e15\x0e16\x0e17\x0e18\x0e19\x0e1a\x0e1b\x0e1c\x0e1d\x0e1e\x0e1f\x0e20\x0e21\x0e22\x0e23\x0e25\x0e27\x0e28\x0e29\x0e2a\x0e2b\x0e2c\x0e2d\x0e2e\x0e30\x0e31\x0e47\x0e32\x0e34\x0e35\x0e38\x0e39\x0e36\x0e37\x0e40\x0e41\x0e42\x0e33\x0e44\x0e43\x0e24\x0e26\x0e48\x0e49\x0e4a\x0e4b\x0e46\x0e4c\x0e4d\x0e3a\x0e2f\x0e3f\x0e45\x0e4e\x0e4f\x0e5a\x0e5b
#english character
attribute englishcharacter abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
#Move the tone to the back of the vowel.
noback correct [$x]"\x0e30" "\x0e30"*
noback correct [$x]"\x0e33" "\x0e33"*
#attribute ToneAndVowels
attribute ToneAndVowels \x0e30\x0e31\x0e47\x0e32\x0e34\x0e35\x0e38\x0e39\x0e36\x0e37\x0e33\x0e48\x0e49\x0e4a\x0e4b # สระและวรรณยุกค์ที่ตามหลัง
attribute 2 \x0e30\x0e31\x0e47\x0e32\x0e34\x0e35\x0e38\x0e39\x0e36\x0e37\x0e33\x0e48\x0e49\x0e4a\x0e4b # สระตามหลัง
attribute ToneAndVowelsNoSaraAh \x0e31\x0e47\x0e32\x0e34\x0e35\x0e38\x0e39\x0e36\x0e37\x0e33\x0e48\x0e49\x0e4a\x0e4b # สระและวรรณยุกค์ที่ตามหลัง ยกเว้น สระอะ
attribute Ahead \x0e44\x0e43\x0e42\x0e40 # สระนำหน้าทั้งหลาย
swapdd Aheadbrl 156,156-2,24,124 156,156-2,24,124 # ไใโเ
#ลดรูปสระเออมีตัวสะกด
attribute leadcharacterSaraErSp \x0E01\x0E02\x0E04\x0E08\x0E17\x0E09\x0E16\x0E15\x0E1C\x0E1E\x0E2A\x0E2B
attribute diphthongSaraErSp \x0E23\x0E25\x0E0A\x0E2D\x0E22
noback context "\x0e40"[%thaiconsinants]"\x0e34" *@146
noback context "\x0e40"[%leadcharacterSaraErSp%diphthongSaraErSp]"\x0e34" *@146
noback always \x0E40\x0E1C\x0E2D\x0e34\x0E0D 1234-135-146-6-13456
noback always \x0E40\x0E15\x0E0A\x0E34\x0E19 124-1256-346-12-1345
# ลดรูปสระเอีย
attribute leadcharacterSaraIa \x0E01\x0E04\x0E08\x0E09\x0E15\x0E1B\x0E1E\x0E2A\x0E2B
attribute diphthongSaraIa \x0E27\x0E23\x0E25\x0E28\x0E29\x0E1A\x0E07\x0E19\x0E21\x0E22
noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E22" *@12356
noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E48\x0E22" *@12356-359
noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E49\x0E22" *@12356-2569
noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E4A\x0E22" *@12356-23569
noback context "\x0e40"[%thaiconsinants]"\x0E35\x0E4B\x0E22" *@12356-2369
noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E22"!"\x0E4C"_ *@12356
noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E48\x0E22" *@12356-359
noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E49\x0E22" *@12356-2569
noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E4A\x0E22" *@12356-23569
noback context "\x0e40"[%leadcharacterSaraIa%diphthongSaraIa]"\x0E35\x0E4B\x0E22" *@12356-2369
noback pass2 @12356%tonemarksPass@1 @12356-1%tonemarksPass
noback always \x0E40\x0E15\x0E21\x0E35\x0E22 124-1256-134-23-13456
noback always \x0E40\x0E2A\x0E23\x0E35\x0E22 124-234-1235-23-13456
noback always \x0E40\x0E2A\x0E16\x0E35\x0E22 234-2345-12356
# ลดรูปสระเอือ
#อักษรนำและตามสำหรับสระเอือ
attribute leadcharacterSaraYea \x0E01\x0E02\x0E04\x0E21\x0E1B\x0E1E\x0E2A\x0E2B
attribute diphthongSaraYea \x0E07\x0E23\x0E25\x0E21\x0E22\x0E19
noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E2D" *@12345
noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E48\x0E2D" *@12345-35
noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E49\x0E2D" *@12345-256
noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E4A\x0E2D" *@12345-2356
noback context "\x0e40"[%thaiconsinants]"\x0E37\x0E4B\x0E2D" *@12345-236
noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E2D" *@12345
noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E48\x0E2D" *@12345-35
noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E49\x0E2D" *@12345-256
noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E4A\x0E2D" *@12345-2356
noback context "\x0e40"[%leadcharacterSaraYea%diphthongSaraYea]"\x0E37\x0E4B\x0E2D" *@12345-236
# สลับตำแหน่งสระเอาะ
# อักษรนำและตามสำหรับสระเอาะ
attribute leadcharacterSaraOha \x0E01\x0E04\x0E09\x0E17\x0E1B\x0E1E\x0E2A\x0E2B
attribute diphthongSaraOha \x0E23\x0E25\x0E22\x0E21\x0E1E\x0E19
noback context "\x0e40"[%thaiconsinants]"\x0e32\x0e30" *@135-1
noback context "\x0e40"[%thaiconsinants]"\x0E48\x0e32\x0e30" *@135-1-35
noback context "\x0e40"[%thaiconsinants]"\x0E49\x0e32\x0e30" *@135-1-256
noback context "\x0e40"[%thaiconsinants]"\x0E4A\x0e32\x0e30" *@135-1-2356
noback context "\x0e40"[%thaiconsinants]"\x0E4B\x0e32\x0e30" *@135-1-236
noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0e32\x0e30" *@135-1
noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0E48\x0e32\x0e30" *@135-1-35
noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0E49\x0e32\x0e30" *@135-1-256
noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0E4A\x0e32\x0e30" *@135-1-2356
noback context "\x0e40"[%leadcharacterSaraOha%diphthongSaraOha]"\x0E4B\x0e32\x0e30" *@135-1-236
# ลดรูปสระเอา
# อักษรนำและตามสำหรับสระเอา
attribute leadcharacterSaraOuh \x0E01\x0E02\x0E04\x0E28\x0E09\x0E1B\x0E1E\x0E2B
attribute diphthongSaraOuh \x0E23\x0E25\x0E22\x0E21\x0E07\x0E19\x0E27
noback context "\x0e40"[%thaiconsinants]"\x0e32" *@235
noback context "\x0e40"[%thaiconsinants]"\x0E48\x0e32" *@235-35
noback context "\x0e40"[%thaiconsinants]"\x0E49\x0e32" *@235-256
noback context "\x0e40"[%thaiconsinants]"\x0E4A\x0e32" *@235-2356
noback context "\x0e40"[%thaiconsinants]"\x0E4B\x0e32" *@235-236
noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0e32" *@235
noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0E48\x0e32" *@235-35
noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0E49\x0e32" *@235-256
noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0E4A\x0e32" *@235-2356
noback context "\x0e40"[%leadcharacterSaraOuh%diphthongSaraOuh]"\x0E4B\x0e32" *@235-236
noback always \x0E40\x0E17\x0E23\x0E32 23456-1235-235
noback always \x0E40\x0E2B\x0E23\x0E32 124-125-1235-16
noback always \x0E40\x0E1E\x0E25\x0E32\x0E04\x0E33\x0E48 124-1456-123-16-136-1356-35
noback always \x0E40\x0E1E\x0E25\x0E32\x0E19\x0E35\x0E49 124-1456-123-16-1345-23-256
# ลดรูปสระอัว
noback context "\x0e31\x0e27" @15
noback context "\x0e31"[%tonemarks]"\x0e27" @15*
# สลับตำแหน่งสระแอะ
#อักษรนำและตามสำหรับสระแอะ
attribute leadcharacterSaraAe \x0E01\x0E02\x0E04\x0E1C\x0E2B
attribute diphthongSaraAe \x0E23\x0E25\x0E27\x0E21\x0E22
noback context "\x0e41"[%thaiconsinants]"\x0e30" *@126-1
noback context "\x0e41"[%leadcharacterSaraAe%diphthongSaraAe]"\x0e30" *@126-1
noback always \x0E41\x0E01\x0E27\x0E30 126-1245-2456-1
noback always \x0E41\x0E2A\x0E22\x0E30 234-13456-126-1
# สลับตำแหน่งสระโอะ
#อักษรนำและตามสำหรับสระโอะ
attribute leadcharacterSaraOh \x0E1A\x0E1C\x0E1E
attribute diphthongSaraOh \x0E23\x0E25\x0E22
noback context "\x0e42"[%thaiconsinants]"\x0e30" *@24-1
noback context "\x0e42"[%thaiconsinants%tonemarks]"\x0e30" *@24-1
noback context "\x0e42"[%leadcharacterSaraOh%diphthongSaraOh]"\x0e30" *@24-1
# สลับตำแหน่งสระเอะ
#อักษรนำและตามสำหรับสระเอะ
attribute leadcharacterSaraEh \x0E02\x0E1C\x0E1E\x0E2B
attribute diphthongSaraEh \x0E25
noback context "\x0e40"[%thaiconsinants]"\x0e30" *@124-1
noback context "\x0e40"[%thaiconsinants]"\x0E48\x0e30" *@124-1-35
noback context "\x0e40"[%thaiconsinants]"\x0E49\x0e30" *@124-1-256
noback context "\x0e40"[%thaiconsinants]"\x0E4A\x0e30" *@124-1-2356
noback context "\x0e40"[%thaiconsinants]"\x0E4B\x0e30" *@124-1-236
noback context "\x0e40"[%leadcharacterSaraEh%diphthongSaraEh]"\x0e30" *@124-1
#Move Narukahit to the front of the letter
noback correct [%thaiconsinants]"\x0E4D" "\x0E4D"*
# Delete a space in front of maiyamok
noback correct $s"\x0E46" "\x0E46"
#attribute ThaiDigit
attribute thaidigit \x0e50\x0e51\x0e52\x0e53\x0e54\x0e55\x0e56\x0e57\x0e58\x0e59
# Add a dot 6 before the number sign. When detecting a character as a Thai number
noback pass2 @3456%thaidigit @6*
# If 3 or more consecutive . marks are found, change to dot 6.
noback context "..." @6-6-6#1=1
noback context #1=1"." @6
noback context #1=1 #1=0
# Remove the virtual dots from the Thai Digit.
noback pass3 @245b @245
noback pass3 @1b @1
noback pass3 @12b @12
noback pass3 @14b @14
noback pass3 @145b @145
noback pass3 @15b @15
noback pass3 @124b @124
noback pass3 @1245b @1245
noback pass3 @125b @125
noback pass3 @24b @24
# Remove the virtual dots from the Thai Consinants.
noback pass3 @13b @356-13
noback pass3 @136a @36-136
noback pass3 @1369 @6-136
noback pass3 @3469 @6-346
noback pass3 @134569 @6-13456
noback pass3 @1459 @6-145
noback pass3 @12569 @6-1256
noback pass3 @23459 @6-2345
noback pass3 @234569 @6-23456
noback pass3 @23456a @36-23456
noback pass3 @13459 @6-1345
noback pass3 @23456b @356-23456
noback pass3 @14569 @6-1456
noback pass3 @2349 @6-234
noback pass3 @234a @36-234
noback pass3 @1239 @6-123
noback pass3 @359 @35
noback pass3 @2569 @256
noback pass3 @23569 @2356
noback pass3 @2369 @236