# Russian Braille Table # # Copyright (C) 2018 Elita Group, LTD. www.elitagroup.ru # # 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 # . # by Eugene Kornev include ru-ru.dis All display opcodes #replace text_nabcc.dis Yuemei Sun 03/12/08 # ----------- define all chars -------------------------------------- space \t 0 space \x000A 0 space \x000D 0 space \s 0 blank replace \x0007 punctuation ! 235 # 33 punctuation " 236 # 34 sign # 1456 # 35 sign $ 4-145 # 36 sign % 3456-356 # 37 sign & 6-12346 # 38 punctuation ' 3 # 39 apostrophe punctuation ( 126 # 40 punctuation ) 345 # 41 sign * 25 # 42 math + 346 # 43 punctuation , 2 # 44 punctuation - 36 # 45 punctuation . 256 # 46 math / 6-34 # 47 punctuation \x00AB 236 punctuation \x00BB 356 include loweredDigits6Dots.uti punctuation : 25 # 58 punctuation ; 23 # 59 math < 246 # 60 math = 2356 # 61 math > 135 # 62 punctuation ? 26 # 63 sign @ 146 # 64 # The Alphabet uplow \x0410\x0430 1 uplow \x0411\x0431 12 uplow \x0412\x0432 2456 uplow \x0413\x0433 1245 uplow \x0414\x0434 145 uplow \x0415\x0435 15 uplow \x0416\x0436 245 uplow \x0417\x0437 1356 uplow \x0418\x0438 24 uplow \x0419\x0439 12346 uplow \x041A\x043A 13 uplow \x041B\x043B 123 uplow \x041C\x043C 134 uplow \x041D\x043D 1345 uplow \x041E\x043E 135 uplow \x041F\x043F 1234 uplow \x0420\x0440 1235 uplow \x0421\x0441 234 uplow \x0422\x0442 2345 uplow \x0423\x0443 136 uplow \x0424\x0444 124 uplow \x0425\x0445 125 uplow \x0426\x0446 14 uplow \x0427\x0447 12345 uplow \x0428\x0448 156 uplow \x0429\x0449 1346 uplow \x042A\x044A 12356 uplow \x042B\x044B 2346 uplow \x042C\x044C 23456 uplow \x042D\x044D 246 uplow \x042E\x044E 1256 uplow \x042F\x044F 1246 uplow \x0401\x0451 16 punctuation [ 12356 # 91 sign \\ 6-16 # 92 punctuation ] 23456 # 93 sign ^ 56-26 # 94 circumflex accent sign _ 6-3 # 95 underscore sign ` 4 # 96 grave accent # a - z # 97 - 122 punctuation { 246 # 123 sign | 456 # 124 punctuation } 135 # 125 math ~ 26 # 126 space \X00A0 0 # 160 no-break space sign \x00A2 4-14 # 162 ¢ cents sign sign \x00A3 4-123 # 163 £ pounds sign sign \x00A5 4-13456 # 165 ¥ yen sign sign § 346 # 167 section sign \x00A7 sign \x00A9 126-14-345 # 169 © copyright sign sign \x00AE 126-1235-345 # Registered sign \X2116 1345 NUMERO SIGN punctuation \x00Ad 36 # 173 soft hyphen sign \x00B0 46-35 degrees sign \x00B4 4 always \x00B4 4 # acute accent sign sign \x00B5 56-134 # micro sign, (mu) sign \x00B6 6-1234-345 # 182 ¶ pilcrow sign math \x00D7 236 # 215 × multiplication sign math \x00F7 256 # 247 ÷ division sign punctuation \x2010 36 # 8208 hyphen punctuation \x2011 3678 # 8209 non-breaking hyphen punctuation \x2013 36 # 8211 en dash punctuation \x2014 36 # em dash punctuation \x2018 236 # 8216 smart single left quotation mark punctuation \x2019 356 # 8217 smart single right quotation mark punctuation \x201C 236 # 8220 smart opening double quote punctuation \x201D 356 # 8221 smart closing double quote punctuation \x201E 236 # 8222 smart double low quotation mark punctuation \x201F 356 # 8223 smart double high reverse quotation mark punctuation \x2026 256-256-256 # 8230 smart ellipsis sign \x20AC 4-15 # 8364 Euro sign anywhere else sign \x20bd 4-1235 # Ruble sign anywhere else # --------------------------- end definitions --------------------------------- # Braille indicators numsign 3456 number sign, just a dots operand emphclass italic begemphphrase italic 456 endemphphrase italic after 456 # the decimal digits include litdigits6Dots.uti # Letters are defined in en-chardefs include chardefs.cti # accented letters uplow \x00C0\x00E0 1 # a with grave uplow \x00C1\x00E1 1 # a with acute uplow \x00C2\x00E2 1 # a with circumflex uplow \x00C3\x00E3 1 # a with tilde uplow \x00C4\x00E4 1 # a with dieresis uplow \x00C5\x00E5 1 # a with ring above uplow \x00C6\x00E6 1 # letter ae uplow \x00C7\x00E7 14 # c with cedilla uplow \x00C8\x00E8 15 # e with grave uplow \x00C9\x00E9 15 # e with acute uplow \x00CA\x00EA 15 # e with circumflex uplow \x00CB\x00EB 15 # e with dieresis uplow \x00CC\x00EC 24 # i with grave above uplow \x00CD\x00ED 24 # i with acute above uplow \x00CE\x00EE 24 # i with circumflex uplow \x00CF\x00EF 24 # i with dieresis uplow \x00D0\x00F0 15 # letter eth uplow \x00D1\x00F1 1345 # n with tilde uplow \x00D2\x00F2 135 # o with grave above uplow \x00D3\x00F3 135 # o with acute above uplow \x00D4\x00F4 135 # o with circumflex uplow \x00D5\x00F5 135 # o with tilde uplow \x00D6\x00F6 135 # o with dieresis uplow \x00D8\x00F8 135 # o with stroke uplow \x00D9\x00F9 136 # u with grave above uplow \x00DA\x00FA 136 # u with acute above uplow \x00DB\x00FB 136 # u with circumflex above uplow \x00DC\x00FC 136 # u with dieeresis uplow \x00DD\x00FD 13456 # y with acute above uplow \x00DE\x00FE 4-1456 # letter thorn letter \x00DF 2346 # small sharp s uplow \x0174\x0175 4-2456 w with circumflex uplow \x0176\x0177 4-13456 # y with circumflex uplow \x0178\x00ff 4-13456 # y with diaeresis uplow \x1ef2\x1ef3 4-13456 # y with grave largesign \x00C0 4-1 [C0] upper a grave largesign \x00E0 4-1 [E0] lower a grave largesign \x00C1 4-1 [C1] upper a acute largesign \x00E1 4-1 [E1] lower a acute largesign \x00C2 4-1 [C2] upper a circumflex largesign \x00E2 4-1 [E2] lower a circumflex largesign \x00C3 4-1 [C3] upper a tilde largesign \x00E3 4-1 [E3] lower a tilde largesign \x00C4 4-1 [C4] upper a dieresis largesign \x00E4 4-1 [E4] lower a dieresis largesign \x00C5 4-1 [C5] upper a ring largesign \x00E5 4-1 [E5] lower a ring largesign \x00C6 1-15 [C6] upper ae largesign \x00E6 1-15 [E6] lower ae largesign \x00C7 4-14 [C7] upper c cedilla largesign \x00E7 4-14 [E7] lower c cedilla largesign \x00C8 4-15 [C8] upper e grave largesign \x00E8 4-15 [E8] lower e grave largesign \x00C9 4-15 [C9] upper e acute largesign \x00E9 4-15 [E9] lower e acute largesign \x00CA 4-15 [CA] upper e circumflex largesign \x00EA 4-15 [EA] lower e circumflex largesign \x00CB 4-15 [CB] upper e dieresis largesign \x00EB 4-15 [EB] lower e dieresis largesign \x00CC 4-24 [CC] upper i grave largesign \x00EC 4-24 [EC] lower i grave largesign \x00CD 4-24 [CD] upper i acute largesign \x00ED 4-24 [ED] lower i acute largesign \x00CE 4-24 [CE] upper i circumflex largesign \x00EE 4-24 [EE] lower i circumflex largesign \x00CF 4-24 [CF] upper i dieresis largesign \x00EF 4-24 [EF] lower i dieresis largesign \x00D0 4-15 [D0] upper eth largesign \x00F0 4-15 [F0] lower eth largesign \x00D1 4-1345 [D1] upper n tilde largesign \x00F1 4-1345 [F1] lower n tilde largesign \x00D2 4-135 [D2] upper o grave largesign \x00F2 4-135 [F2] lower o grave largesign \x00D3 4-135 [D3] upper o acute largesign \x00F3 4-135 [F3] lower o acute largesign \x00D4 4-135 [D4] upper o circumflex largesign \x00F4 4-135 [F4] lower o circumflex largesign \x00D5 4-135 [D5] upper o tilde largesign \x00F5 4-135 [F5] lower o tilde largesign \x00D6 4-135 [D6] upper o dieresis largesign \x00F6 4-135 [F6] lower o dieresis largesign \x00D8 4-135 [D8] upper o slash largesign \x00f8 4-135 [F8] lower o slash largesign \x00D9 4-136 [D9] upper u grave largesign \x00F9 4-136 [F9] lower u grave largesign \x00DA 4-136 [DA] upper u acute largesign \x00FA 4-136 [FA] lower u acute largesign \x00DB 4-136 [DB] upper u circumflex largesign \x00FB 4-136 [FB] lower u circumflex largesign \x00DC 4-136 [DC] upper u dieresis largesign \x00FC 4-136 [FC] lower u dieresis largesign \x00DD 4-13456 [DD] upper y acute largesign \x00FD 4-13456 [FD] lower y acute largesign \x00DE 4-2345 [DE] upper t horn largesign \x00FE 4-2345 [FE] lower t horn largesign \x00DF 234-234 (DF) lower ss largesign \x0174 4-2456 lower w circumflex largesign \x0175 4-2456 upper w circumflex largesign \x0176 4-13456 upper y circumflex largesign \x0177 4-13456 lower y circumflex largesign \x0178 4-13456 upper y with dieresis largesign \x00FF 4-13456 lower y with dieresis largesign \x1EF2 4-13456 upper y with grave largesign \x1EF3 4-13456 lower y with grave # punctuation punctuation \x2013 36 # 8211 en dash punctuation \x2014 36 # em dash prepunc ( 126 postpunc ) 345 begword ` 6-236 endnum " 6-356 prepunc " 236 postpunc " 356 endnum \x00AB 6-236 endnum \x00BB 6-356 always \x00AB 236 (opening quotation mark) always \x00BB 356 (closing quotation mark) prepunc ' 6-236 postpunc ' 356-3 word 'em = word 'tis = word 'twas = begnum # 1345 print number sign before number begnum ° 145-1245 degrees sign endnum ° 6-145-1245 ;dg degrees sign begnum \x20AC 15 # euro sign at beginning of number endnum \x20AC 4-15 # euro sign atend of number midnum , 2 endnum , 6-2 midnum . 3 endnum . 6-256 midnum ; 23 endnum ; 6-23 midnum : 25 endnum : 6-25 midnum ? 26 endnum ? 6-26 endnum ! 6-235 endnum \x2018 6-236 endnum \x2019 6-356 endnum \x201C 6-236 endnum \x201D 6-356 endnum \x201E 6-236 endnum \x201F 6-356 postpunc ,\s 2 postpunc , 2 hyphen - 36 #capsnocont postpunc . 256 postpunc ;\s 23 postpunc ; 23 postpunc : 25 postpunc ! 235 always / 6-34 always < 246 always > 135 postpunc ? 26 midnum + 0-235-3456 always + 235 endnum % 3456-356 endnum = 0-2356 always ^ 56-26 always ~ 26 always & 6-12346 # 38 always * 35 midword \x2019 3 # stupid smart apostrophe always [ 12356 always ] 23456 always { 4-246 always } 4-135 prepunc ` 6-236 always @ 146 always \\ 6-16 always \\\\ 6-16-16 always // 6-34-34 always | 456 always ... 256-256-256 always .\s.\s. 256-256-256 . . . # special character sequences sign \x00BD 3456-1-12 # 1/2 fraction sign \x00BC 3456-1-145 # 1/4 fraction sign \x00BE 3456-14-145 # 3/4 fraction noback sign \X25CF 2356 # 9679 black circle # Symbol classes for special rules below: class upperlatin ABCDEFGHIJKLMNOPQRSTUVWXYZ class lowerlatin abcdefghijklmnopqrstuvwxyz class uppercyrillic \x0401\x0410\x0411\x0412\x0413\x0414\x0415\x0416\x0417\x0418\x0419\x041A\x041B\x041C\x041D\x041E\x041F\x0420\x0421\x0422\x0423\x0424\x0425\x0426\x0427\x0428\x0429\x042A\x042B\x042C\x042D\x042E\x042F class lowercyrillic \x0430\x0431\x0432\x0433\x0434\x0435\x0436\x0437\x0438\x0439\x043A\x043B\x043C\x043D\x043E\x043F\x0440\x0441\x0442\x0443\x0444\x0445\x0446\x0447\x0448\x0449\x044A\x044B\x044C\x044D\x044E\x044F\x0451 class latin ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz class cyrleter \x0401\x0410\x0411\x0412\x0413\x0414\x0415\x0416\x0417\x0418\x0419\x041A\x041B\x041C\x041D\x041E\x041F\x0420\x0421\x0422\x0423\x0424\x0425\x0426\x0427\x0428\x0429\x042A\x042B\x042C\x042D\x042E\x042F\x0430\x0431\x0432\x0433\x0434\x0435\x0436\x0437\x0438\x0439\x043A\x043B\x043C\x043D\x043E\x043F\x0440\x0441\x0442\x0443\x0444\x0445\x0446\x0447\x0448\x0449\x044A\x044B\x044C\x044D\x044E\x044F\x0451 swapcd updigit 1234567890 1,12,14,145,15,124,1245,125,24,245 # Adjust spacing around signs according to the Russian braille rules. noback context `["-\s"] @36 noback context [$s]"-"$s ? noback context $l["="]$l @0-2356 noback context $l["="]$d @0-2356 noback context $l["+"]$l @0-235 noback context $l["+"]$d @0-235 noback context $l["<"]$l @0-246-0 noback context $l["<"]$d @0-246-0 noback context [$d"<"]$d %updigit@0-246-0 noback context [$d"<"]$l %updigit@0-246-0 noback context $l[">"]$l @0-135-0 noback context $l[">"]$d @0-135-0 noback context [$d">"]$d %updigit@0-135-0 noback context [$d">"]$l %updigit@0-135-0 noback context [$d"<="] %updigit@0-246-2356 noback context $l["<="] @0-246-2356 noback context [$d">="] %updigit@0-135-2356 noback context $l[">="] @0-135-2356 noback context [$d"<>"] %updigit@0-246-135-0 noback context $l["<>"] @0-246-135-0 noback context [$d"><"] %updigit@0-135-246-0 noback context $l["><"] @0-135-246-0 # Mark cyrillic letters immediately following digits. noback context [$d]%uppercyrillic %updigit@45#1=0 noback context [$d]%lowercyrillic %updigit@5#1=0 # Mark letters immediately following dollar sign. noback context ["$"]%lowercyrillic @4-145-5#1=0 noback context ["$"]%uppercyrillic @4-145-45#1=0 noback context ["$"]%lowerlatin @4-145-6#1=1 noback context ["$"]%upperlatin @4-145-46#1=1 # Make space before text following number with punctuation. noback context [$d","]$l %updigit@2-0 noback context [$d",\s"]$l %updigit@2-0 noback context [$d";"]$l %updigit@23-0 noback context [$d";\s"]$l %updigit@23-0 # Mark lowercase latin letters where it is required. noback context #1=1[]%cyrleter #1=0 noback context #1=1[$d]%lowerlatin %updigit@6 noback context #1=0[]%lowerlatin #1=1@6 # Mark uppercase latin letters where it is appropriate. noback context #1=0[]%upperlatin #1=1@46 noback context %lowerlatin[]%upperlatin #1=1@46 # Mark cyrillic letters immediately following latins. noback context %latin[]%uppercyrillic @45#1=0 noback context %latin[]%lowercyrillic @5#1=0 # Format dialogs and direct speech according to the Russian braille tradition. noback pass2 `@36 *#1=1 noback pass2 @236 *#1=1 noback pass2 @356 *#1=0 noback pass2 #1=1@2@36@0 *#1=2 noback pass2 #1=1@26@36@0 *#1=2 noback pass2 #1=1@235@36@0 *#1=2 noback pass2 #1=2@2[@36@0] @0-36 noback pass2 #1=2@256[@36@0] @0-36