liblouis-rb 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (517) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +520 -0
  3. data/README.md +100 -0
  4. data/Rakefile +80 -0
  5. data/ext/liblouis/braille_character.c +200 -0
  6. data/ext/liblouis/braille_table.c +198 -0
  7. data/ext/liblouis/braille_text.c +223 -0
  8. data/ext/liblouis/extconf.rb +73 -0
  9. data/ext/liblouis/liblouis.c +168 -0
  10. data/ext/liblouis/liblouis_ext.h +49 -0
  11. data/ext/liblouis/table_source.c +161 -0
  12. data/ext/liblouis/translation.c +443 -0
  13. data/liblouis-rb.gemspec +49 -0
  14. data/spec/liblouis_spec.rb +62 -0
  15. data/test/integration/packaging_test.rb +82 -0
  16. data/test/table_source_cases.rb +9 -0
  17. data/test/test_braille_character.rb +62 -0
  18. data/test/test_braille_table.rb +379 -0
  19. data/test/test_braille_text.rb +30 -0
  20. data/test/test_helper.rb +7 -0
  21. data/test/translation_cases.rb +33 -0
  22. data/vendor/liblouis/COPYING +674 -0
  23. data/vendor/liblouis/COPYING.LESSER +502 -0
  24. data/vendor/liblouis/configure.ac +290 -0
  25. data/vendor/liblouis/liblouis/commonTranslationFunctions.c +95 -0
  26. data/vendor/liblouis/liblouis/compileTranslationTable.c +5515 -0
  27. data/vendor/liblouis/liblouis/internal.h +781 -0
  28. data/vendor/liblouis/liblouis/liblouis.h.in +514 -0
  29. data/vendor/liblouis/liblouis/logging.c +233 -0
  30. data/vendor/liblouis/liblouis/lou_backTranslateString.c +1855 -0
  31. data/vendor/liblouis/liblouis/lou_translateString.c +4177 -0
  32. data/vendor/liblouis/liblouis/maketable.c +463 -0
  33. data/vendor/liblouis/liblouis/metadata.c +1258 -0
  34. data/vendor/liblouis/liblouis/pattern.c +1632 -0
  35. data/vendor/liblouis/liblouis/utils.c +448 -0
  36. data/vendor/liblouis/tables/Es-Es-G0.utb +248 -0
  37. data/vendor/liblouis/tables/IPA-unicode-range.uti +200 -0
  38. data/vendor/liblouis/tables/IPA.utb +164 -0
  39. data/vendor/liblouis/tables/Lv-Lv-g1.utb +509 -0
  40. data/vendor/liblouis/tables/Makefile.am +503 -0
  41. data/vendor/liblouis/tables/Pl-Pl-g1.utb +312 -0
  42. data/vendor/liblouis/tables/README +6 -0
  43. data/vendor/liblouis/tables/afr-za-g1.ctb +63 -0
  44. data/vendor/liblouis/tables/afr-za-g2.ctb +1050 -0
  45. data/vendor/liblouis/tables/akk-borger.utb +997 -0
  46. data/vendor/liblouis/tables/akk.utb +1002 -0
  47. data/vendor/liblouis/tables/ancient-languages-borger.utb +114 -0
  48. data/vendor/liblouis/tables/ancient-languages-us.utb +114 -0
  49. data/vendor/liblouis/tables/ar-ar-comp8.utb +293 -0
  50. data/vendor/liblouis/tables/ar-ar-g1-core.uti +291 -0
  51. data/vendor/liblouis/tables/ar-ar-g1.utb +26 -0
  52. data/vendor/liblouis/tables/ar-ar-g2.ctb +447 -0
  53. data/vendor/liblouis/tables/ar-ar-math.uti +501 -0
  54. data/vendor/liblouis/tables/ar.tbl +17 -0
  55. data/vendor/liblouis/tables/as-in-g1.utb +27 -0
  56. data/vendor/liblouis/tables/as.tbl +18 -0
  57. data/vendor/liblouis/tables/aw-in-g1.utb +27 -0
  58. data/vendor/liblouis/tables/awa.tbl +18 -0
  59. data/vendor/liblouis/tables/ba.utb +64 -0
  60. data/vendor/liblouis/tables/be-in-g1.utb +27 -0
  61. data/vendor/liblouis/tables/bel-comp.utb +42 -0
  62. data/vendor/liblouis/tables/bel-detailed.utb +32 -0
  63. data/vendor/liblouis/tables/bel.utb +61 -0
  64. data/vendor/liblouis/tables/bengali.cti +238 -0
  65. data/vendor/liblouis/tables/bg.ctb +215 -0
  66. data/vendor/liblouis/tables/bg.dis +84 -0
  67. data/vendor/liblouis/tables/bg.tbl +21 -0
  68. data/vendor/liblouis/tables/bg.utb +454 -0
  69. data/vendor/liblouis/tables/bh.ctb +24 -0
  70. data/vendor/liblouis/tables/bh.tbl +17 -0
  71. data/vendor/liblouis/tables/bn.tbl +18 -0
  72. data/vendor/liblouis/tables/bo.ctb +184 -0
  73. data/vendor/liblouis/tables/bo.tbl +21 -0
  74. data/vendor/liblouis/tables/boxes.ctb +162 -0
  75. data/vendor/liblouis/tables/br-in-g1.utb +27 -0
  76. data/vendor/liblouis/tables/bra.tbl +18 -0
  77. data/vendor/liblouis/tables/braille-patterns.cti +287 -0
  78. data/vendor/liblouis/tables/ca-chardefs.cti +225 -0
  79. data/vendor/liblouis/tables/ca-g1.ctb +46 -0
  80. data/vendor/liblouis/tables/ca.tbl +18 -0
  81. data/vendor/liblouis/tables/chr-us-g1.ctb +180 -0
  82. data/vendor/liblouis/tables/ckb-chardefs.cti +219 -0
  83. data/vendor/liblouis/tables/ckb-g1.ctb +31 -0
  84. data/vendor/liblouis/tables/ckb-translation.cti +131 -0
  85. data/vendor/liblouis/tables/ckb.tbl +18 -0
  86. data/vendor/liblouis/tables/compress.cti +44 -0
  87. data/vendor/liblouis/tables/controlchars.cti +27 -0
  88. data/vendor/liblouis/tables/cop-eg-comp8.utb +255 -0
  89. data/vendor/liblouis/tables/cop.utb +231 -0
  90. data/vendor/liblouis/tables/corrections.cti +47 -0
  91. data/vendor/liblouis/tables/countries.cti +263 -0
  92. data/vendor/liblouis/tables/critical-apparatus.uti +54 -0
  93. data/vendor/liblouis/tables/cs-chardefs.cti +385 -0
  94. data/vendor/liblouis/tables/cs-comp8.utb +405 -0
  95. data/vendor/liblouis/tables/cs-g1.ctb +37 -0
  96. data/vendor/liblouis/tables/cs-translation.cti +63 -0
  97. data/vendor/liblouis/tables/cs.tbl +20 -0
  98. data/vendor/liblouis/tables/cuneiform-transliterated-compact.utb +432 -0
  99. data/vendor/liblouis/tables/cuneiform-transliterated.utb +160 -0
  100. data/vendor/liblouis/tables/cy-cy-g1.utb +487 -0
  101. data/vendor/liblouis/tables/cy-cy-g2.ctb +199 -0
  102. data/vendor/liblouis/tables/cy.tbl +19 -0
  103. data/vendor/liblouis/tables/da-dk-6miscChars.cti +385 -0
  104. data/vendor/liblouis/tables/da-dk-6miscChars_1993.cti +412 -0
  105. data/vendor/liblouis/tables/da-dk-8miscChars.cti +90 -0
  106. data/vendor/liblouis/tables/da-dk-8miscChars_1993.cti +102 -0
  107. data/vendor/liblouis/tables/da-dk-g08.ctb +290 -0
  108. data/vendor/liblouis/tables/da-dk-g08_1993.ctb +331 -0
  109. data/vendor/liblouis/tables/da-dk-g16-lit_1993.ctb +294 -0
  110. data/vendor/liblouis/tables/da-dk-g16.ctb +289 -0
  111. data/vendor/liblouis/tables/da-dk-g16_1993.ctb +305 -0
  112. data/vendor/liblouis/tables/da-dk-g18.ctb +545 -0
  113. data/vendor/liblouis/tables/da-dk-g18_1993.ctb +563 -0
  114. data/vendor/liblouis/tables/da-dk-g2.dic +7439 -0
  115. data/vendor/liblouis/tables/da-dk-g26-lit_1993.ctb +898 -0
  116. data/vendor/liblouis/tables/da-dk-g26.ctb +1345 -0
  117. data/vendor/liblouis/tables/da-dk-g26_1993.ctb +1127 -0
  118. data/vendor/liblouis/tables/da-dk-g26l-lit_1993.ctb +588 -0
  119. data/vendor/liblouis/tables/da-dk-g26l_1993.ctb +604 -0
  120. data/vendor/liblouis/tables/da-dk-g28.ctb +2426 -0
  121. data/vendor/liblouis/tables/da-dk-g28_1993.ctb +2063 -0
  122. data/vendor/liblouis/tables/da-dk-g28l_1993.ctb +1594 -0
  123. data/vendor/liblouis/tables/da-dk-octobraille.dis +316 -0
  124. data/vendor/liblouis/tables/da-dk-octobraille_1993.dis +313 -0
  125. data/vendor/liblouis/tables/de-accents-detailed.cti +214 -0
  126. data/vendor/liblouis/tables/de-accents.cti +214 -0
  127. data/vendor/liblouis/tables/de-chardefs6.cti +289 -0
  128. data/vendor/liblouis/tables/de-chardefs8.cti +278 -0
  129. data/vendor/liblouis/tables/de-chess.ctb +37 -0
  130. data/vendor/liblouis/tables/de-comp6.utb +226 -0
  131. data/vendor/liblouis/tables/de-de-comp8.ctb +492 -0
  132. data/vendor/liblouis/tables/de-de.dis +331 -0
  133. data/vendor/liblouis/tables/de-eurobrl6.dis +101 -0
  134. data/vendor/liblouis/tables/de-eurobrl6u.dis +96 -0
  135. data/vendor/liblouis/tables/de-g0-core.uti +732 -0
  136. data/vendor/liblouis/tables/de-g0-detailed.utb +84 -0
  137. data/vendor/liblouis/tables/de-g0.utb +57 -0
  138. data/vendor/liblouis/tables/de-g1-core-patterns.dic +4863 -0
  139. data/vendor/liblouis/tables/de-g1-core.cti +67 -0
  140. data/vendor/liblouis/tables/de-g1-detailed.ctb +79 -0
  141. data/vendor/liblouis/tables/de-g1.ctb +54 -0
  142. data/vendor/liblouis/tables/de-g2-core-patterns.dic +26711 -0
  143. data/vendor/liblouis/tables/de-g2-core.cti +607 -0
  144. data/vendor/liblouis/tables/de-g2-detailed.ctb +60 -0
  145. data/vendor/liblouis/tables/de-g2.ctb +57 -0
  146. data/vendor/liblouis/tables/devanagari.cti +325 -0
  147. data/vendor/liblouis/tables/digits6Dots.uti +30 -0
  148. data/vendor/liblouis/tables/digits6DotsPlusDot6.uti +30 -0
  149. data/vendor/liblouis/tables/digits8Dots.uti +30 -0
  150. data/vendor/liblouis/tables/dra.ctb +23 -0
  151. data/vendor/liblouis/tables/dra.tbl +21 -0
  152. data/vendor/liblouis/tables/el.ctb +775 -0
  153. data/vendor/liblouis/tables/en-GB-g2.ctb +829 -0
  154. data/vendor/liblouis/tables/en-chardefs.cti +193 -0
  155. data/vendor/liblouis/tables/en-chess.ctb +37 -0
  156. data/vendor/liblouis/tables/en-g3-patterns.dic +11194 -0
  157. data/vendor/liblouis/tables/en-g3.ctb +2261 -0
  158. data/vendor/liblouis/tables/en-gb-comp8.ctb +282 -0
  159. data/vendor/liblouis/tables/en-gb-g1.utb +527 -0
  160. data/vendor/liblouis/tables/en-in-g1.ctb +162 -0
  161. data/vendor/liblouis/tables/en-nabcc.utb +166 -0
  162. data/vendor/liblouis/tables/en-nz-g1.utb +65 -0
  163. data/vendor/liblouis/tables/en-nz-g2.ctb +46 -0
  164. data/vendor/liblouis/tables/en-ueb-chardefs.uti +938 -0
  165. data/vendor/liblouis/tables/en-ueb-g1.ctb +167 -0
  166. data/vendor/liblouis/tables/en-ueb-g2.ctb +3925 -0
  167. data/vendor/liblouis/tables/en-ueb-math.ctb +71 -0
  168. data/vendor/liblouis/tables/en-us-brf.dis +102 -0
  169. data/vendor/liblouis/tables/en-us-comp6.ctb +149 -0
  170. data/vendor/liblouis/tables/en-us-comp8-ext.utb +626 -0
  171. data/vendor/liblouis/tables/en-us-comp8.ctb +62 -0
  172. data/vendor/liblouis/tables/en-us-compbrl.uti +69 -0
  173. data/vendor/liblouis/tables/en-us-emphasis.uti +45 -0
  174. data/vendor/liblouis/tables/en-us-g1.ctb +199 -0
  175. data/vendor/liblouis/tables/en-us-g2.ctb +1081 -0
  176. data/vendor/liblouis/tables/en-us-interline.ctb +1126 -0
  177. data/vendor/liblouis/tables/en-us-mathtext.ctb +880 -0
  178. data/vendor/liblouis/tables/en_CA.ctb +195 -0
  179. data/vendor/liblouis/tables/en_CA.tbl +21 -0
  180. data/vendor/liblouis/tables/en_GB.tbl +26 -0
  181. data/vendor/liblouis/tables/en_US-comp8-ext.tbl +15 -0
  182. data/vendor/liblouis/tables/en_US.tbl +26 -0
  183. data/vendor/liblouis/tables/eo-g1-x-system.ctb +85 -0
  184. data/vendor/liblouis/tables/eo-g1.ctb +165 -0
  185. data/vendor/liblouis/tables/eo.tbl +14 -0
  186. data/vendor/liblouis/tables/es-chardefs.cti +206 -0
  187. data/vendor/liblouis/tables/es-g1.ctb +36 -0
  188. data/vendor/liblouis/tables/es-g2.ctb +955 -0
  189. data/vendor/liblouis/tables/es-new.dis +284 -0
  190. data/vendor/liblouis/tables/es-no.utb +79 -0
  191. data/vendor/liblouis/tables/es-old.dis +284 -0
  192. data/vendor/liblouis/tables/es.tbl +19 -0
  193. data/vendor/liblouis/tables/et-6dot.utb +269 -0
  194. data/vendor/liblouis/tables/et-g0.utb +139 -0
  195. data/vendor/liblouis/tables/ethio-g1.ctb +335 -0
  196. data/vendor/liblouis/tables/eurodefs.cti +107 -0
  197. data/vendor/liblouis/tables/fa-ir-comp8.ctb +250 -0
  198. data/vendor/liblouis/tables/fa-ir-g1.utb +311 -0
  199. data/vendor/liblouis/tables/fi-fi-8dot.ctb +278 -0
  200. data/vendor/liblouis/tables/fi.utb +354 -0
  201. data/vendor/liblouis/tables/fil-g2.ctb +491 -0
  202. data/vendor/liblouis/tables/fr-bfu-comp6-puncs-math.uti +351 -0
  203. data/vendor/liblouis/tables/fr-bfu-comp6.utb +238 -0
  204. data/vendor/liblouis/tables/fr-bfu-comp68.cti +251 -0
  205. data/vendor/liblouis/tables/fr-bfu-comp8.utb +323 -0
  206. data/vendor/liblouis/tables/fr-bfu-g2.ctb +4644 -0
  207. data/vendor/liblouis/tables/ga-g1.utb +95 -0
  208. data/vendor/liblouis/tables/ga-g2.ctb +231 -0
  209. data/vendor/liblouis/tables/gd.ctb +123 -0
  210. data/vendor/liblouis/tables/gd.tbl +21 -0
  211. data/vendor/liblouis/tables/gez.tbl +21 -0
  212. data/vendor/liblouis/tables/gon.ctb +25 -0
  213. data/vendor/liblouis/tables/gon.tbl +17 -0
  214. data/vendor/liblouis/tables/gr-pl-comp8.uti +256 -0
  215. data/vendor/liblouis/tables/grc-international-common.uti +104 -0
  216. data/vendor/liblouis/tables/grc-international-composed.uti +268 -0
  217. data/vendor/liblouis/tables/grc-international-decomposed.uti +268 -0
  218. data/vendor/liblouis/tables/grc-international-en-composed.utb +54 -0
  219. data/vendor/liblouis/tables/grc-international-en.utb +206 -0
  220. data/vendor/liblouis/tables/grc-international-es.utb +228 -0
  221. data/vendor/liblouis/tables/gu-in-g1.utb +27 -0
  222. data/vendor/liblouis/tables/gu.tbl +18 -0
  223. data/vendor/liblouis/tables/gujarati.cti +221 -0
  224. data/vendor/liblouis/tables/gurumuki.cti +393 -0
  225. data/vendor/liblouis/tables/haw-us-g1.ctb +54 -0
  226. data/vendor/liblouis/tables/hbo-cantillated-rules.uti +71 -0
  227. data/vendor/liblouis/tables/hbo-cantillated.utb +109 -0
  228. data/vendor/liblouis/tables/hbo-common-rules.uti +152 -0
  229. data/vendor/liblouis/tables/hbo-ihbc-rules.uti +58 -0
  230. data/vendor/liblouis/tables/hbo-slim-rules.uti +68 -0
  231. data/vendor/liblouis/tables/hbo-slim.utb +100 -0
  232. data/vendor/liblouis/tables/hbo.utb +107 -0
  233. data/vendor/liblouis/tables/he-IL-comp8.utb +464 -0
  234. data/vendor/liblouis/tables/he-IL.utb +406 -0
  235. data/vendor/liblouis/tables/he-common-consonants.uti +102 -0
  236. data/vendor/liblouis/tables/he-common-vowels-ihbc.uti +161 -0
  237. data/vendor/liblouis/tables/hi-in-g1.utb +27 -0
  238. data/vendor/liblouis/tables/hi.tbl +18 -0
  239. data/vendor/liblouis/tables/hr-chardefs.cti +278 -0
  240. data/vendor/liblouis/tables/hr-comp8.tbl +21 -0
  241. data/vendor/liblouis/tables/hr-comp8.utb +239 -0
  242. data/vendor/liblouis/tables/hr-digits.uti +40 -0
  243. data/vendor/liblouis/tables/hr-g1.ctb +36 -0
  244. data/vendor/liblouis/tables/hr-g1.tbl +9 -0
  245. data/vendor/liblouis/tables/hr-translation.cti +364 -0
  246. data/vendor/liblouis/tables/ht-frenchcompatibility.uti +61 -0
  247. data/vendor/liblouis/tables/ht-g1.utb +114 -0
  248. data/vendor/liblouis/tables/hu-backtranslate-correction.dis +38 -0
  249. data/vendor/liblouis/tables/hu-backtranslate-word-corrections.cti +4293 -0
  250. data/vendor/liblouis/tables/hu-chardefs.cti +298 -0
  251. data/vendor/liblouis/tables/hu-exceptionwords.cti +3204 -0
  252. data/vendor/liblouis/tables/hu-hu-comp8.ctb +183 -0
  253. data/vendor/liblouis/tables/hu-hu-g1.ctb +129 -0
  254. data/vendor/liblouis/tables/hu-hu-g1_braille_input.cti +486 -0
  255. data/vendor/liblouis/tables/hu-hu-g2.ctb +270 -0
  256. data/vendor/liblouis/tables/hu-hu-g2_exceptions.cti +1164 -0
  257. data/vendor/liblouis/tables/hy.ctb +121 -0
  258. data/vendor/liblouis/tables/hy.tbl +21 -0
  259. data/vendor/liblouis/tables/hyph_cs_CZ.dic +3637 -0
  260. data/vendor/liblouis/tables/hyph_da_DK.dic +8896 -0
  261. data/vendor/liblouis/tables/hyph_de_DE.dic +5799 -0
  262. data/vendor/liblouis/tables/hyph_en_US.dic +5537 -0
  263. data/vendor/liblouis/tables/hyph_eo.dic +1024 -0
  264. data/vendor/liblouis/tables/hyph_es_ES.dic +877 -0
  265. data/vendor/liblouis/tables/hyph_fr_FR.dic +1067 -0
  266. data/vendor/liblouis/tables/hyph_hu_HU.dic +98519 -0
  267. data/vendor/liblouis/tables/hyph_it_IT.dic +410 -0
  268. data/vendor/liblouis/tables/hyph_nb_NO.dic +27142 -0
  269. data/vendor/liblouis/tables/hyph_nl_NL.dic +12725 -0
  270. data/vendor/liblouis/tables/hyph_nn_NO.dic +27142 -0
  271. data/vendor/liblouis/tables/hyph_pl_PL.dic +4074 -0
  272. data/vendor/liblouis/tables/hyph_pt_PT.dic +308 -0
  273. data/vendor/liblouis/tables/hyph_ru.dic +6480 -0
  274. data/vendor/liblouis/tables/hyph_sv_SE.dic +4697 -0
  275. data/vendor/liblouis/tables/is-chardefs6.cti +170 -0
  276. data/vendor/liblouis/tables/is-chardefs8.cti +293 -0
  277. data/vendor/liblouis/tables/is.ctb +157 -0
  278. data/vendor/liblouis/tables/is.tbl +18 -0
  279. data/vendor/liblouis/tables/it-it-comp6.utb +404 -0
  280. data/vendor/liblouis/tables/it-it-comp8.utb +663 -0
  281. data/vendor/liblouis/tables/iu-ca-g1.ctb +236 -0
  282. data/vendor/liblouis/tables/ja-kantenji-ucs2.utb +11448 -0
  283. data/vendor/liblouis/tables/ja-kantenji.utb +53 -0
  284. data/vendor/liblouis/tables/ja-rokutenkanji.utb +8710 -0
  285. data/vendor/liblouis/tables/ka-in-g1.utb +27 -0
  286. data/vendor/liblouis/tables/ka.utb +128 -0
  287. data/vendor/liblouis/tables/kannada.cti +282 -0
  288. data/vendor/liblouis/tables/kh-in-g1.utb +26 -0
  289. data/vendor/liblouis/tables/kha.tbl +18 -0
  290. data/vendor/liblouis/tables/kk.utb +77 -0
  291. data/vendor/liblouis/tables/km-g1.utb +412 -0
  292. data/vendor/liblouis/tables/kmr.tbl +108 -0
  293. data/vendor/liblouis/tables/kn.tbl +18 -0
  294. data/vendor/liblouis/tables/ko-2006-g1.ctb +49 -0
  295. data/vendor/liblouis/tables/ko-2006-g2.ctb +53 -0
  296. data/vendor/liblouis/tables/ko-2006.cti +190 -0
  297. data/vendor/liblouis/tables/ko-chars.cti +15140 -0
  298. data/vendor/liblouis/tables/ko-g1-rules.cti +634 -0
  299. data/vendor/liblouis/tables/ko-g1.ctb +48 -0
  300. data/vendor/liblouis/tables/ko-g2-rules.cti +9263 -0
  301. data/vendor/liblouis/tables/ko-g2.ctb +52 -0
  302. data/vendor/liblouis/tables/ko.cti +223 -0
  303. data/vendor/liblouis/tables/kok.ctb +24 -0
  304. data/vendor/liblouis/tables/kok.tbl +17 -0
  305. data/vendor/liblouis/tables/kru.ctb +24 -0
  306. data/vendor/liblouis/tables/kru.tbl +17 -0
  307. data/vendor/liblouis/tables/ks-in-g1.utb +27 -0
  308. data/vendor/liblouis/tables/latinLetterDef6Dots.uti +78 -0
  309. data/vendor/liblouis/tables/latinLetterDef8Dots.uti +75 -0
  310. data/vendor/liblouis/tables/latinLowercase.uti +389 -0
  311. data/vendor/liblouis/tables/latinUppercaseComp6.uti +78 -0
  312. data/vendor/liblouis/tables/lg-ug-g1.utb +60 -0
  313. data/vendor/liblouis/tables/litdigits6Dots.uti +30 -0
  314. data/vendor/liblouis/tables/litdigits6DotsPlusDot6.uti +30 -0
  315. data/vendor/liblouis/tables/lo-g1.utb +3127 -0
  316. data/vendor/liblouis/tables/loweredDigits6Dots.uti +30 -0
  317. data/vendor/liblouis/tables/loweredDigits8Dots.uti +30 -0
  318. data/vendor/liblouis/tables/lt-6dot.utb +308 -0
  319. data/vendor/liblouis/tables/lt-8dot.utb +281 -0
  320. data/vendor/liblouis/tables/lt.ctb +313 -0
  321. data/vendor/liblouis/tables/lv.tbl +22 -0
  322. data/vendor/liblouis/tables/maketablelist.sh +52 -0
  323. data/vendor/liblouis/tables/malayalam.cti +674 -0
  324. data/vendor/liblouis/tables/mao-nz-g1.ctb +65 -0
  325. data/vendor/liblouis/tables/marburg_single_cell_defs.cti +66 -0
  326. data/vendor/liblouis/tables/marburg_unicode_defs.cti +297 -0
  327. data/vendor/liblouis/tables/mk-g1.utb +240 -0
  328. data/vendor/liblouis/tables/ml-in-g1.utb +27 -0
  329. data/vendor/liblouis/tables/ml.tbl +21 -0
  330. data/vendor/liblouis/tables/mn-MN-common.cti +110 -0
  331. data/vendor/liblouis/tables/mn-MN-g1.utb +52 -0
  332. data/vendor/liblouis/tables/mn-MN-g2.ctb +50 -0
  333. data/vendor/liblouis/tables/mn-in-g1.utb +27 -0
  334. data/vendor/liblouis/tables/mni.tbl +18 -0
  335. data/vendor/liblouis/tables/mr-in-g1.utb +27 -0
  336. data/vendor/liblouis/tables/mr.tbl +18 -0
  337. data/vendor/liblouis/tables/ms-my-g2.ctb +4897 -0
  338. data/vendor/liblouis/tables/mt.ctb +114 -0
  339. data/vendor/liblouis/tables/mt.tbl +21 -0
  340. data/vendor/liblouis/tables/mun.ctb +24 -0
  341. data/vendor/liblouis/tables/mun.tbl +17 -0
  342. data/vendor/liblouis/tables/mwr.ctb +24 -0
  343. data/vendor/liblouis/tables/mwr.tbl +17 -0
  344. data/vendor/liblouis/tables/my-g1.utb +771 -0
  345. data/vendor/liblouis/tables/my-g2.ctb +3805 -0
  346. data/vendor/liblouis/tables/ne.ctb +22 -0
  347. data/vendor/liblouis/tables/ne.tbl +18 -0
  348. data/vendor/liblouis/tables/nemethdefs.cti +382 -0
  349. data/vendor/liblouis/tables/nl-BE.dis +532 -0
  350. data/vendor/liblouis/tables/nl-NL-g0.utb.in +646 -0
  351. data/vendor/liblouis/tables/nl-chardefs.uti.in +455 -0
  352. data/vendor/liblouis/tables/nl-comp8.utb +411 -0
  353. data/vendor/liblouis/tables/nl-print.dis +551 -0
  354. data/vendor/liblouis/tables/nl-unicode.dis +540 -0
  355. data/vendor/liblouis/tables/no-no-8dot-fallback-6dot-g0.utb +59 -0
  356. data/vendor/liblouis/tables/no-no-8dot.utb +629 -0
  357. data/vendor/liblouis/tables/no-no-braillo-047-01.dis +247 -0
  358. data/vendor/liblouis/tables/no-no-chardefs6.uti +305 -0
  359. data/vendor/liblouis/tables/no-no-comp8.ctb +323 -0
  360. data/vendor/liblouis/tables/no-no-cyrillic6dot.uti +95 -0
  361. data/vendor/liblouis/tables/no-no-g0.utb +320 -0
  362. data/vendor/liblouis/tables/no-no-g1.ctb +272 -0
  363. data/vendor/liblouis/tables/no-no-g2.ctb +737 -0
  364. data/vendor/liblouis/tables/no-no-g3.ctb +3597 -0
  365. data/vendor/liblouis/tables/no-no-generic.ctb +295 -0
  366. data/vendor/liblouis/tables/no-no-generic.dis +295 -0
  367. data/vendor/liblouis/tables/no-no-latinLetterDef6Dots_diacritics.uti +852 -0
  368. data/vendor/liblouis/tables/no-no.dis +291 -0
  369. data/vendor/liblouis/tables/np-in-g1.utb +27 -0
  370. data/vendor/liblouis/tables/nso-za-g1.utb +38 -0
  371. data/vendor/liblouis/tables/nso-za-g2.ctb +38 -0
  372. data/vendor/liblouis/tables/ny-mw.utb +70 -0
  373. data/vendor/liblouis/tables/or-in-g1.utb +27 -0
  374. data/vendor/liblouis/tables/or.tbl +18 -0
  375. data/vendor/liblouis/tables/oriya.cti +238 -0
  376. data/vendor/liblouis/tables/ovd-6g0.utb +64 -0
  377. data/vendor/liblouis/tables/ovd-8g0.utb +81 -0
  378. data/vendor/liblouis/tables/pa.tbl +18 -0
  379. data/vendor/liblouis/tables/pi.ctb +24 -0
  380. data/vendor/liblouis/tables/pi.tbl +17 -0
  381. data/vendor/liblouis/tables/pl-pl-comp8.ctb +658 -0
  382. data/vendor/liblouis/tables/pl.tbl +12 -0
  383. data/vendor/liblouis/tables/printables.cti +70 -0
  384. data/vendor/liblouis/tables/pt-comp6.utb +299 -0
  385. data/vendor/liblouis/tables/pt-pt-comp8.ctb +395 -0
  386. data/vendor/liblouis/tables/pt-pt-g1.utb +1312 -0
  387. data/vendor/liblouis/tables/pt-pt-g2.ctb +874 -0
  388. data/vendor/liblouis/tables/pt.tbl +20 -0
  389. data/vendor/liblouis/tables/pu-in-g1.utb +42 -0
  390. data/vendor/liblouis/tables/quotation-marks.uti +30 -0
  391. data/vendor/liblouis/tables/ro-g0.utb +85 -0
  392. data/vendor/liblouis/tables/ro.ctb +126 -0
  393. data/vendor/liblouis/tables/ro.tbl +21 -0
  394. data/vendor/liblouis/tables/ru-brf.dis +116 -0
  395. data/vendor/liblouis/tables/ru-comp6.utb +258 -0
  396. data/vendor/liblouis/tables/ru-comp8.utb +740 -0
  397. data/vendor/liblouis/tables/ru-letters.dis +145 -0
  398. data/vendor/liblouis/tables/ru-litbrl-detailed.utb +77 -0
  399. data/vendor/liblouis/tables/ru-litbrl.ctb +857 -0
  400. data/vendor/liblouis/tables/ru-math.uti +395 -0
  401. data/vendor/liblouis/tables/ru-ru-g1.ctb +804 -0
  402. data/vendor/liblouis/tables/ru-unicode.dis +121 -0
  403. data/vendor/liblouis/tables/rw-rw-g1.utb +133 -0
  404. data/vendor/liblouis/tables/sa-in-g1.utb +27 -0
  405. data/vendor/liblouis/tables/sa.tbl +18 -0
  406. data/vendor/liblouis/tables/sah.utb +72 -0
  407. data/vendor/liblouis/tables/sd.tbl +18 -0
  408. data/vendor/liblouis/tables/se-se.ctb +246 -0
  409. data/vendor/liblouis/tables/se-se.dis +334 -0
  410. data/vendor/liblouis/tables/si-in-g1.utb +27 -0
  411. data/vendor/liblouis/tables/sin.cti +213 -0
  412. data/vendor/liblouis/tables/sin.utb +35 -0
  413. data/vendor/liblouis/tables/sk-g1.ctb +1019 -0
  414. data/vendor/liblouis/tables/sk-sk-g1.utb +206 -0
  415. data/vendor/liblouis/tables/sk-sk.utb +112 -0
  416. data/vendor/liblouis/tables/sl-si-comp8.ctb +204 -0
  417. data/vendor/liblouis/tables/sl-si-g1.utb +471 -0
  418. data/vendor/liblouis/tables/sl.tbl +20 -0
  419. data/vendor/liblouis/tables/smi-6g0.utb +64 -0
  420. data/vendor/liblouis/tables/smi-8g0.utb +61 -0
  421. data/vendor/liblouis/tables/sot-za-g1.ctb +72 -0
  422. data/vendor/liblouis/tables/sot-za-g2.ctb +244 -0
  423. data/vendor/liblouis/tables/spaces.uti +62 -0
  424. data/vendor/liblouis/tables/sr-Cyrl.ctb +59 -0
  425. data/vendor/liblouis/tables/sr-common.cti +161 -0
  426. data/vendor/liblouis/tables/sr-cyrletters.cti +92 -0
  427. data/vendor/liblouis/tables/sr-g1.ctb +57 -0
  428. data/vendor/liblouis/tables/sr-latletters.cti +45 -0
  429. data/vendor/liblouis/tables/sv-1989.ctb +241 -0
  430. data/vendor/liblouis/tables/sv-1996.ctb +180 -0
  431. data/vendor/liblouis/tables/sv-6common.uti +1199 -0
  432. data/vendor/liblouis/tables/sv-6g0d.utb +508 -0
  433. data/vendor/liblouis/tables/sv-6g0p.utb +61 -0
  434. data/vendor/liblouis/tables/sv-6g1.uti +106 -0
  435. data/vendor/liblouis/tables/sv-6g1d.ctb +57 -0
  436. data/vendor/liblouis/tables/sv-6g2.uti +254 -0
  437. data/vendor/liblouis/tables/sv-6g2d.ctb +57 -0
  438. data/vendor/liblouis/tables/sv-8g0d.utb +495 -0
  439. data/vendor/liblouis/tables/sv-8g0n.utb +1236 -0
  440. data/vendor/liblouis/tables/sv-8g1.uti +199 -0
  441. data/vendor/liblouis/tables/sv-8g1d.ctb +73 -0
  442. data/vendor/liblouis/tables/sv-8g1n.ctb +73 -0
  443. data/vendor/liblouis/tables/sv-8g2.uti +486 -0
  444. data/vendor/liblouis/tables/sv-8g2d.ctb +73 -0
  445. data/vendor/liblouis/tables/sv-8g2n.ctb +73 -0
  446. data/vendor/liblouis/tables/sv-g0.utb +65 -0
  447. data/vendor/liblouis/tables/sv-g1.ctb +57 -0
  448. data/vendor/liblouis/tables/sv-g2.ctb +57 -0
  449. data/vendor/liblouis/tables/sv-phon.uti +241 -0
  450. data/vendor/liblouis/tables/sw-ke-g1-2.ctb +90 -0
  451. data/vendor/liblouis/tables/sw-ke-g1-3.ctb +109 -0
  452. data/vendor/liblouis/tables/sw-ke-g1-4.ctb +107 -0
  453. data/vendor/liblouis/tables/sw-ke-g1-5.ctb +73 -0
  454. data/vendor/liblouis/tables/sw-ke-g1.utb +278 -0
  455. data/vendor/liblouis/tables/sw-ke-g2.ctb +276 -0
  456. data/vendor/liblouis/tables/syc.utb +195 -0
  457. data/vendor/liblouis/tables/ta-ta-g1.ctb +167 -0
  458. data/vendor/liblouis/tables/ta.ctb +24 -0
  459. data/vendor/liblouis/tables/ta.tbl +21 -0
  460. data/vendor/liblouis/tables/tamil.cti +86 -0
  461. data/vendor/liblouis/tables/te-in-g1.utb +27 -0
  462. data/vendor/liblouis/tables/te.tbl +18 -0
  463. data/vendor/liblouis/tables/telugu.cti +239 -0
  464. data/vendor/liblouis/tables/text_nabcc.dis +426 -0
  465. data/vendor/liblouis/tables/th-comp8-backward.utb +226 -0
  466. data/vendor/liblouis/tables/th-g0.utb +177 -0
  467. data/vendor/liblouis/tables/th-g1.utb +89 -0
  468. data/vendor/liblouis/tables/th-g1.uti +315 -0
  469. data/vendor/liblouis/tables/th-g2.ctb +616 -0
  470. data/vendor/liblouis/tables/tr-g1.ctb +254 -0
  471. data/vendor/liblouis/tables/tr-g2.ctb +863 -0
  472. data/vendor/liblouis/tables/tr-g2.tbl +20 -0
  473. data/vendor/liblouis/tables/tr.ctb +324 -0
  474. data/vendor/liblouis/tables/tr.tbl +21 -0
  475. data/vendor/liblouis/tables/tsn-za-g1.ctb +33 -0
  476. data/vendor/liblouis/tables/tsn-za-g2.ctb +33 -0
  477. data/vendor/liblouis/tables/tt.utb +74 -0
  478. data/vendor/liblouis/tables/uga.utb +86 -0
  479. data/vendor/liblouis/tables/uk-comp.utb +53 -0
  480. data/vendor/liblouis/tables/uk-detailed.utb +32 -0
  481. data/vendor/liblouis/tables/uk.utb +101 -0
  482. data/vendor/liblouis/tables/ukchardefs.cti +106 -0
  483. data/vendor/liblouis/tables/ukmaths_single_cell_defs.cti +65 -0
  484. data/vendor/liblouis/tables/ukmaths_unicode_defs.cti +298 -0
  485. data/vendor/liblouis/tables/uni-text.dis +330 -0
  486. data/vendor/liblouis/tables/unicode-braille.utb +291 -0
  487. data/vendor/liblouis/tables/unicode-without-blank.dis +24 -0
  488. data/vendor/liblouis/tables/unicode.dis +278 -0
  489. data/vendor/liblouis/tables/ur-pk-g1.utb +248 -0
  490. data/vendor/liblouis/tables/ur-pk-g2.ctb +641 -0
  491. data/vendor/liblouis/tables/us-table.dis +67 -0
  492. data/vendor/liblouis/tables/uz-g1.utb +117 -0
  493. data/vendor/liblouis/tables/ve-za-g1.utb +69 -0
  494. data/vendor/liblouis/tables/ve-za-g2.ctb +208 -0
  495. data/vendor/liblouis/tables/vi-cb8.utb +49 -0
  496. data/vendor/liblouis/tables/vi-charsdef.uti +36 -0
  497. data/vendor/liblouis/tables/vi-lettersdef.uti +401 -0
  498. data/vendor/liblouis/tables/vi-puncsdef.uti +446 -0
  499. data/vendor/liblouis/tables/vi-saigon-g1.ctb +530 -0
  500. data/vendor/liblouis/tables/vi-vn-g0.utb +135 -0
  501. data/vendor/liblouis/tables/vi-vn-g1.ctb +574 -0
  502. data/vendor/liblouis/tables/vi-vn-g2.ctb +743 -0
  503. data/vendor/liblouis/tables/wiskunde-chardefs.cti +261 -0
  504. data/vendor/liblouis/tables/wordcx.dis +91 -0
  505. data/vendor/liblouis/tables/xh-za-g1.utb +61 -0
  506. data/vendor/liblouis/tables/xh-za-g2.ctb +386 -0
  507. data/vendor/liblouis/tables/yi.utb +236 -0
  508. data/vendor/liblouis/tables/zh-chn.ctb +45011 -0
  509. data/vendor/liblouis/tables/zh-hk.ctb +10461 -0
  510. data/vendor/liblouis/tables/zh-tw.ctb +53810 -0
  511. data/vendor/liblouis/tables/zh_CHN.tbl +23 -0
  512. data/vendor/liblouis/tables/zhcn-cbs.ctb +31523 -0
  513. data/vendor/liblouis/tables/zhcn-g1.ctb +26523 -0
  514. data/vendor/liblouis/tables/zhcn-g2.ctb +26519 -0
  515. data/vendor/liblouis/tables/zu-za-g1.utb +33 -0
  516. data/vendor/liblouis/tables/zu-za-g2.ctb +33 -0
  517. metadata +558 -0
@@ -0,0 +1,857 @@
1
+ # liblouis: Russian literary text translation table
2
+ #
3
+ # Note that we don't call this table "uncontracted", even though there
4
+ # is also a "Russian contracted braille" table. This is because
5
+ # contractions are not officially used in Russian, and only few people
6
+ # know of it.
7
+ #-index-name: Russian
8
+ #-display-name: Russian braille
9
+ #
10
+ #+language: ru
11
+ #+type: literary
12
+ #+dots: 6
13
+ #+contraction: no
14
+ #+direction: both
15
+ #
16
+ # Copyright (C) 2013 Igor B. Poretsky <poretsky@mlbox.ru>
17
+ # Copyright (C) 2020-2022, 2025 Andrey Yakuboy <braille@yakuboy.ru>
18
+ # Copyright (C) 2020 Bert Frees <bertfrees@gmail.com>
19
+ # Copyright (C) 2026 Danil Kostenkov <danilkostenkov38@gmail.com>
20
+ #
21
+ # This file is part of liblouis.
22
+ #
23
+ # liblouis is free software: you can redistribute it and/or modify it
24
+ # under the terms of the GNU Lesser General Public License as
25
+ # published by the Free Software Foundation, either version 2.1 of the
26
+ # License, or (at your option) any later version.
27
+ #
28
+ # liblouis is distributed in the hope that it will be useful, but
29
+ # WITHOUT ANY WARRANTY; without even the implied warranty of
30
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
31
+ # Lesser General Public License for more details.
32
+ #
33
+ # You should have received a copy of the GNU Lesser General Public
34
+ # License along with liblouis. If not, see
35
+ # <http://www.gnu.org/licenses/>.
36
+ #
37
+ # Based on "Руководство по выпуску брайлевских изданий массового
38
+ # распространения" (Guidelines for edition of mass-distribution
39
+ # braille publications) <http://liblouis.io/braille-specs/russian/>.
40
+ # Mathematical notation follows the Russian "System of Symbols for Math,
41
+ # Physics, Chemistry, and Astronomy" (Bykov et al., 2nd ed., 1982; reprinted
42
+ # 2009) and the Guidelines for edition of mass-distribution Braille
43
+ # publications already used as the primary reference for this table.
44
+
45
+ include ru-unicode.dis
46
+
47
+ # Braille indicators:
48
+ numsign 3456 number sign, just a dots operand
49
+
50
+ # Emphasis indication signs:
51
+ emphclass italic
52
+ emphclass underline
53
+ emphclass bold
54
+ begemphphrase italic 456
55
+ endemphphrase italic after 456
56
+ begemphphrase bold 12456
57
+ endemphphrase bold after 12456
58
+ begemphphrase underline 456
59
+ endemphphrase underline after 456
60
+
61
+ # ----------- define all chars --------------------------------------
62
+
63
+ space \s 0
64
+ space \t 0
65
+ space \x000a 0
66
+ space \x000d 0
67
+ space \s 0 blank
68
+ include spaces.uti
69
+ replace \x0007
70
+ punctuation ! 235 # 33
71
+ noback punctuation " 236 # 34
72
+ sign # 1456 # 35
73
+ sign $ 4-145 # 36
74
+ sign & 6-12346 # 38
75
+ punctuation ' 3 # 39 apostrophe
76
+ punctuation ( 126 # 40
77
+ punctuation ) 345 # 41
78
+ sign * 35 # 42
79
+ punctuation , 2 # 44
80
+ punctuation - 36 # 45
81
+ punctuation . 256 # 46
82
+ math / 6-34 # 47
83
+ punctuation \x00ab 236
84
+ punctuation \x00bb 356
85
+ punctuation : 25 # 58
86
+ punctuation ; 23 # 59
87
+ punctuation ? 26 # 63
88
+ sign @ 146 # 64
89
+
90
+ # The alphabet
91
+
92
+ lowercase \x0430 1
93
+ lowercase \x0431 12
94
+ lowercase \x0432 2456
95
+ lowercase \x0433 1245
96
+ lowercase \x0434 145
97
+ lowercase \x0435 15
98
+ lowercase \x0436 245
99
+ lowercase \x0437 1356
100
+ lowercase \x0438 24
101
+ lowercase \x0439 12346
102
+ lowercase \x043a 13
103
+ lowercase \x043b 123
104
+ lowercase \x043c 134
105
+ lowercase \x043d 1345
106
+ lowercase \x043e 135
107
+ lowercase \x043f 1234
108
+ lowercase \x0440 1235
109
+ lowercase \x0441 234
110
+ lowercase \x0442 2345
111
+ lowercase \x0443 136
112
+ lowercase \x0444 124
113
+ lowercase \x0445 125
114
+ lowercase \x0446 14
115
+ lowercase \x0447 12345
116
+ lowercase \x0448 156
117
+ lowercase \x0449 1346
118
+ lowercase \x044a 12356
119
+ lowercase \x044b 2346
120
+ lowercase \x044c 23456
121
+ lowercase \x044d 246
122
+ lowercase \x044e 1256
123
+ lowercase \x044f 1246
124
+ lowercase \x0451 16
125
+
126
+ # We're using "base uppercase" rather than "uppercase" because
127
+ # ru-litbrl.ctb is also included in ru-ru-g1.ctb which defines capital
128
+ # signs.
129
+ base uppercase \x0410 \x0430
130
+ base uppercase \x0411 \x0431
131
+ base uppercase \x0412 \x0432
132
+ base uppercase \x0413 \x0433
133
+ base uppercase \x0414 \x0434
134
+ base uppercase \x0415 \x0435
135
+ base uppercase \x0416 \x0436
136
+ base uppercase \x0417 \x0437
137
+ base uppercase \x0418 \x0438
138
+ base uppercase \x0419 \x0439
139
+ base uppercase \x041a \x043a
140
+ base uppercase \x041b \x043b
141
+ base uppercase \x041c \x043c
142
+ base uppercase \x041d \x043d
143
+ base uppercase \x041e \x043e
144
+ base uppercase \x041f \x043f
145
+ base uppercase \x0420 \x0440
146
+ base uppercase \x0421 \x0441
147
+ base uppercase \x0422 \x0442
148
+ base uppercase \x0423 \x0443
149
+ base uppercase \x0424 \x0444
150
+ base uppercase \x0425 \x0445
151
+ base uppercase \x0426 \x0446
152
+ base uppercase \x0427 \x0447
153
+ base uppercase \x0428 \x0448
154
+ base uppercase \x0429 \x0449
155
+ base uppercase \x042a \x044a
156
+ base uppercase \x042b \x044b
157
+ base uppercase \x042c \x044c
158
+ base uppercase \x042d \x044d
159
+ base uppercase \x042e \x044e
160
+ base uppercase \x042f \x044f
161
+ base uppercase \x0401 \x0451
162
+
163
+ # Add dot 9 to Cyrillic characters
164
+ noback always \x0430 19
165
+ noback always \x0431 129
166
+ noback always \x0432 24569
167
+ noback always \x0433 12459
168
+ noback always \x0434 1459
169
+ noback always \x0435 159
170
+ noback always \x0436 2459
171
+ noback always \x0437 13569
172
+ noback always \x0438 249
173
+ noback always \x0439 123469
174
+ noback always \x043a 139
175
+ noback always \x043b 1239
176
+ noback always \x043c 1349
177
+ noback always \x043d 13459
178
+ noback always \x043e 1359
179
+ noback always \x043f 12349
180
+ noback always \x0440 12359
181
+ noback always \x0441 2349
182
+ noback always \x0442 23459
183
+ noback always \x0443 1369
184
+ noback always \x0444 1249
185
+ noback always \x0445 1259
186
+ noback always \x0446 149
187
+ noback always \x0447 123459
188
+ noback always \x0448 1569
189
+ noback always \x0449 13469
190
+ noback always \x044a 123569
191
+ noback always \x044b 23469
192
+ noback always \x044c 234569
193
+ noback always \x044d 2469
194
+ noback always \x044e 12569
195
+ noback always \x044f 12469
196
+ noback always \x0451 169
197
+
198
+ noback always \x0410 19
199
+ noback always \x0411 129
200
+ noback always \x0412 24569
201
+ noback always \x0413 12459
202
+ noback always \x0414 1459
203
+ noback always \x0415 159
204
+ noback always \x0416 2459
205
+ noback always \x0417 13569
206
+ noback always \x0418 249
207
+ noback always \x0419 123469
208
+ noback always \x041a 139
209
+ noback always \x041b 1239
210
+ noback always \x041c 1349
211
+ noback always \x041d 13459
212
+ noback always \x041e 1359
213
+ noback always \x041f 12349
214
+ noback always \x0420 12359
215
+ noback always \x0421 2349
216
+ noback always \x0422 23459
217
+ noback always \x0423 1369
218
+ noback always \x0424 1249
219
+ noback always \x0425 1259
220
+ noback always \x0426 149
221
+ noback always \x0427 123459
222
+ noback always \x0428 1569
223
+ noback always \x0429 13469
224
+ noback always \x042a 123569
225
+ noback always \x042b 23469
226
+ noback always \x042c 234569
227
+ noback always \x042d 2469
228
+ noback always \x042e 12569
229
+ noback always \x042f 12469
230
+ noback always \x0401 169
231
+
232
+ # Fix the problem with double code points for 'Ё' and 'Й'
233
+ noback always \x0415\x0308 169
234
+ noback always \x0435\x0308 169
235
+ noback always \x0418\x0306 123469
236
+ noback always \x0438\x0306 123469
237
+
238
+ # Old Church Slavonic letters
239
+
240
+ # Definitions below are based on the system which was developed special for reading Old-Russian texts. See http://inclusive.mosolymp.ru/upload/files/Sbornik_russkiy_yazyik/SHkolnyiy_etap/O._Osadchaya._Braylevskie_oboznacheniya_dlya_drevneslavyanskih_tekstov.doc
241
+ # This system isn't official, but there're no any alternatives
242
+ noback lowercase \x0454 159-34-34
243
+ noback lowercase \x0455 13569-34
244
+ noback lowercase \x0456 249-34
245
+ noback lowercase \x0457 249-34-34
246
+ noback lowercase \x045b 12459-34
247
+ noback lowercase \x0461 1359-34
248
+ noback lowercase \x0463 159-34
249
+ noback lowercase \x0465 123469-159
250
+ noback lowercase \x0467 159-456
251
+ noback lowercase \x0469 123469-159-456
252
+ noback lowercase \x046b 1359-456
253
+ noback lowercase \x046d 123469-1359-456
254
+ noback lowercase \x046f 139-2349-34
255
+ noback lowercase \x0471 12349-2349-34
256
+ noback lowercase \x0473 1249-34
257
+ noback lowercase \x0475 1369-34
258
+ noback lowercase \x0477 1369-34
259
+ noback lowercase \x0479 1359-1369
260
+ noback lowercase \x047b 1359-34-34
261
+ noback lowercase \x047f 1359-23459-34
262
+ noback lowercase \x0481 123459-34
263
+ noback letter \x0482 3456-1-146
264
+ noback letter \x0483 146
265
+ noback lowercase \x04e1 13569
266
+ noback lowercase \xa641 13569
267
+ noback lowercase \xa643 13569-34
268
+ noback lowercase \xa649 12459-34
269
+ noback lowercase \xa651 23469
270
+ noback lowercase \xa653 123469-159-34
271
+ noback lowercase \xa657 123469-19
272
+ noback lowercase \xa64b 1359-1369-34
273
+ base uppercase \x0404 \x0454
274
+ base uppercase \x0405 \x0455
275
+ base uppercase \x0406 \x0456
276
+ base uppercase \x0407 \x0457
277
+ base uppercase \x040b \x045b
278
+ base uppercase \x0460 \x0461
279
+ base uppercase \x0462 \x0463
280
+ base uppercase \x0464 \x0465
281
+ base uppercase \x0466 \x0467
282
+ base uppercase \x0468 \x0469
283
+ base uppercase \x046a \x046b
284
+ base uppercase \x046c \x046d
285
+ base uppercase \x046e \x046f
286
+ base uppercase \x0470 \x0471
287
+ base uppercase \x0472 \x0473
288
+ base uppercase \x0474 \x0475
289
+ base uppercase \x0476 \x0477
290
+ base uppercase \x0478 \x0479
291
+ base uppercase \x047a \x047b
292
+ base uppercase \x047e \x047f
293
+ base uppercase \x0480 \x0481
294
+ base uppercase \x04e0 \x04e1
295
+ base uppercase \xa640 \xa641
296
+ base uppercase \xa642 \xa643
297
+ base uppercase \xa648 \xa649
298
+ base uppercase \xa64a \xa64b
299
+ base uppercase \xa650 \xa651
300
+ base uppercase \xa652 \xa653
301
+ base uppercase \xa656 \xa657
302
+
303
+ # Punctuation
304
+ noback punctuation [ 12356 # 91
305
+ nofor punctuation [ 6-12356 # 91
306
+ sign \\ 6-16 # 92
307
+ noback punctuation ] 23456 # 93
308
+ nofor punctuation ] 6-23456 # 93
309
+ sign ^ 56-26 # 94 circumflex accent
310
+ sign _ 456 # 95 underscore
311
+ sign ` 4 # 96 grave accent
312
+ noback punctuation { 246 # 123
313
+ nofor punctuation { 4-246 # 123
314
+ noback sign | 456 # 124
315
+ nofor sign | 6-456 # 124
316
+ noback punctuation } 135 # 125
317
+ nofor punctuation } 4-135 # 125
318
+ noback space \x00a0 0 # 160 no-break space
319
+ sign \x00a2 4-14 # 162 cents sign
320
+ sign \x00a3 4-123 # 163 pounds sign
321
+ sign \x00a5 4-13456 # 165 yen sign
322
+ sign \x00a7 346 # 167 section sign \x00a7
323
+ noback always \x00a7\s 346 # section sign absorbs following print space
324
+ sign \x00a9 126-46-14-345 # 169 © copyright sign
325
+ sign \x00ae 126-46-1235-345 # registered
326
+ noback math = 2356
327
+ nofor math = 56-2356
328
+ replace \x00ad - # 173 soft hyphen
329
+ noback sign \x00b4 4 # acute accent sign
330
+ noback sign \x00b5 56-134 # micro sign, (mu)
331
+ noback sign \x00b6 6-1234-345 # 182 ¶ pilcrow sign
332
+ noback math \x00b7 3 # multiplication dot
333
+ noback sign \x02c6 4 # modifier letter circumflex accent
334
+ noback sign \x02ca 4 # modifier letter acute accent
335
+ noback sign \x02dd 4-4 # double acute accent
336
+ noback sign \x0300 4 # combining grave accent sign
337
+ noback sign \x0301 4 # combining acute accent sign
338
+ noback sign \x0302 4 # combining circumflex accent sign
339
+ noback sign \x030b 4-4 # combining double acute accent
340
+ noback sign \x0317 4 # combining acute accent below
341
+ noback sign \x032d 4 # combining circumflex accent below
342
+ noback sign \x0341 4 # combining acute tone mark
343
+
344
+ noback punctuation \x2010 36 # 8208 hyphen
345
+ noback punctuation \x2011 36 # 8209 non-breaking hyphen
346
+ noback punctuation \x2012 36 # 8210 figure dash
347
+ noback punctuation \x2013 36 # 8211 en dash
348
+ noback punctuation \x2014 36 # em dash
349
+ noback punctuation \x2015 36 # horizontal bar
350
+ noback punctuation \x2043 36 # 8259 hyphen bullet
351
+ noback punctuation \x2018 236 # 8216 smart single left quotation mark
352
+ noback punctuation \x2019 356 # 8217 smart single right quotation mark
353
+ noback punctuation \x201c 236 # 8220 smart opening double quote
354
+ noback punctuation \x201d 356 # 8221 smart closing double quote
355
+ noback punctuation \x201e 236 # 8222 smart double low quotation mark
356
+ noback punctuation \x201f 356 # 8223 smart double high reverse quotation mark
357
+ noback punctuation \x2039 236 # 8249 single Left-Pointing Angle Quotation Mark
358
+ noback punctuation \x203a 356 # 8250 single Right-Pointing Angle Quotation Mark
359
+ noback punctuation \x203c 235-235 # 8252 double exclamation mark
360
+ sign \x2022 56-35 # 8226 bullet
361
+ noback punctuation \x2026 256-256-256 # 8230 smart ellipsis
362
+ noback sign \x20ac 4-15 # 8364 euro sign
363
+ noback sign \x20bd 4-1235 # ruble sign
364
+ noback sign \x25a0 2356 # 9632 black square
365
+ noback sign \x25e6 56-35 # 9702 white bullet
366
+ noback sign \xfffd 123456 # replacement Character
367
+
368
+ # the decimal digits
369
+ include litdigits6Dots.uti
370
+ include loweredDigits6Dots.uti
371
+
372
+ # Latin letters are defined in latinLetterDef6Dots:
373
+ include latinLetterDef6Dots.uti
374
+
375
+ # Russian mathematical Braille. Keep this include after digit and Latin-letter
376
+ # definitions because the subtable relies on those character definitions.
377
+ include ru-math.uti
378
+
379
+
380
+ # Some rules
381
+
382
+ noback endnum " 6-356
383
+ noback endnum \x00ab 6-236
384
+ noback endnum \x00bb 6-356
385
+ noback begnum # 1345 # print number sign before number
386
+ noback begnum #\s 1345 # print number sign before number
387
+ noback midnum , 2 # Don't use decpoint because of conflicts with capital letters
388
+ midendnumericmodechars , # For back translation of decimal fractions
389
+ noback endnum , 6-2
390
+ noback midnum . 256
391
+ noback endnum . 6-256
392
+ noback midnum ; 23
393
+ noback endnum ; 6-23
394
+ noback midnum : 25
395
+ noback endnum : 6-25
396
+ noback midnum ? 26
397
+ noback endnum ? 6-26
398
+ noback endnum ! 6-235
399
+ noback endnum \x2018 6-236
400
+ noback endnum \x201c 6-236
401
+ noback endnum \x201d 6-356
402
+ noback endnum \x201e 6-236
403
+ noback endnum \x201f 6-356
404
+ noback endnum \x203c 6-235-235
405
+ noback endnum \x2026 6-256-256-256
406
+
407
+ # accented letters
408
+
409
+ # Latin
410
+ noback lowercase \x00e0 12356 # a with grave
411
+ noback lowercase \x00e1 4-1 # a with acute
412
+ noback lowercase \x00e2 16 # a with circumflex
413
+ noback lowercase \x00e4 345 # a with dieresis
414
+ noback lowercase \x00e6 345 # ae
415
+ noback lowercase \x00e7 12346 # c with cedilla
416
+ noback lowercase \x00e8 2346 # e with grave
417
+ noback lowercase \x00e9 123456 # e with acute
418
+ noback lowercase \x00ea 126 # e with circumflex
419
+ noback lowercase \x00eb 1246 # e with diaeresis
420
+ noback lowercase \x00ed 4-24 # i with acute
421
+ noback lowercase \x00ee 146 # i with circumflex
422
+ noback lowercase \x00ef 12456 # i with diaeresis
423
+ noback lowercase \x00f3 4-135 # o with acute
424
+ noback lowercase \x00f4 1456 # o with circumflex
425
+ noback lowercase \x00f6 246 # o with dieresis
426
+ noback lowercase \x00f9 23456 # U with Grave
427
+ noback lowercase \x00fa 4-136 # u with acute
428
+ noback lowercase \x00fb 156 # u with circumflex above
429
+ noback lowercase \x00fc 1256 # u with dieeresis
430
+ noback lowercase \x00fd 4-13456 # y with acute
431
+ noback lowercase \x0107 4-14 # c with acute
432
+ noback lowercase \x013a 4-123 # l with acute
433
+ noback lowercase \x0144 4-1345 # n with acute
434
+ noback lowercase \x0153 246 # ligature oe
435
+ noback lowercase \x0155 4-1235 # r with acute
436
+ noback lowercase \x015b 4-234 # s with acute
437
+ noback lowercase \x017a 4-1356 # z with acute
438
+ noback lowercase \x01f5 4-1245 # g with acute
439
+ noback lowercase \x1e31 4-13 # k with acute
440
+ noback lowercase \x1e3f 4-134 # m with acute
441
+ noback lowercase \x1e55 4-1234 # p with acute
442
+ noback lowercase \x1e83 4-2456 # w with acute
443
+ noback lowercase \x00df 2346 sharp s
444
+ base uppercase \x00c0 \x00e0 # a with grave
445
+ base uppercase \x00c1 \x00e1 # a with acute
446
+ base uppercase \x00c2 \x00e2 # a with circumflex
447
+ base uppercase \x00c4 \x00e4 # a with dieresis
448
+ base uppercase \x00c6 \x00e6 # ae
449
+ base uppercase \x00c7 \x00e7 # c with cedilla
450
+ base uppercase \x00c8 \x00e8 # e with grave
451
+ base uppercase \x00c9 \x00e9 # e with acute
452
+ base uppercase \x00ca \x00ea # e with circumflex
453
+ base uppercase \x00cb \x00eb # e with diaeresis
454
+ base uppercase \x00cd \x00ed # i with acute
455
+ base uppercase \x00ce \x00ee # i with circumflex
456
+ base uppercase \x00cf \x00ef # i with diaeresis
457
+ base uppercase \x00d3 \x00f3 # o with acute
458
+ base uppercase \x00d4 \x00f4 # o with circumflex
459
+ base uppercase \x00d6 \x00f6 # o with dieresis
460
+ base uppercase \x00d9 \x00f9 # U with Grave
461
+ base uppercase \x00da \x00fa # u with acute
462
+ base uppercase \x00db \x00fb # u with circumflex above
463
+ base uppercase \x00dc \x00fc # u with dieeresis
464
+ base uppercase \x00dd \x00fd # y with acute
465
+ base uppercase \x0106 \x0107 # c with acute
466
+ base uppercase \x0139 \x013a # l with acute
467
+ base uppercase \x0143 \x0144 # n with acute
468
+ base uppercase \x0152 \x0153 # ligature oe
469
+ base uppercase \x0154 \x0155 # r with acute
470
+ base uppercase \x015a \x015b # s with acute
471
+ base uppercase \x0179 \x017a # z with acute
472
+ base uppercase \x01f4 \x01f5 # g with acute
473
+ base uppercase \x1e30 \x1e31 # k with acute
474
+ base uppercase \x1e3e \x1e3f # m with acute
475
+ base uppercase \x1e54 \x1e55 # p with acute
476
+ base uppercase \x1e82 \x1e83 # w with acute
477
+ base uppercase \x1e9e \x00df sharp s
478
+
479
+ # Cyrillic
480
+ noback lowercase \x0450 4-159 # Cyrillic e with grave
481
+ noback lowercase \x045d 4-249 # Cyrillic i with grave
482
+ base uppercase \x0400 \x0450 # Cyrillic e with grave
483
+ base uppercase \x040d \x045d # Cyrillic i with grave
484
+
485
+ # punctuation
486
+ noback prepunc " 236
487
+ noback postpunc " 356
488
+ noback hyphen - 36
489
+ noback midword \x2019 3 # stupid smart apostrophe
490
+ always \\\\ 6-16-16
491
+ always // 6-34-34
492
+
493
+ # Emoticons (currently commented out because this would make the table
494
+ # unusable with 16-bit Liblouis, and emoticons are not important
495
+ # enough)
496
+ sign \x2639 25-126
497
+ sign \x263a 25-345
498
+ # sign \y1f603 25-345
499
+ # sign \y1f604 25-345
500
+ # sign \y1f609 23-345
501
+ # sign \y1f60a 25-345
502
+ # sign \y1f610 25-36-456
503
+ # sign \y1f611 25-36-456
504
+ # sign \y1f612 25-126
505
+ # sign \y1f615 25-6-234
506
+ # sign \y1f617 25-35
507
+ # sign \y1f61b 25-46-1234
508
+ # sign \y1f620 25-146
509
+ # sign \y1f622 23-126
510
+ # sign \y1f62a 456-36-345
511
+ # sign \y1f62d 25-3-126
512
+ # sign \y1f642 25-345
513
+ # sign \y1f923 25-46-145
514
+ # sign \y1f975 126-25-456
515
+
516
+ # Symbol attributes for special rules below:
517
+ attribute upperlatin ABCDEFGHIJKLMNOPQRSTUVWXYZ\x00c0\x00c1\x00c2\x00c4\x00c6\x00c7\x00c8\x00c9\x00ca\x00cb\x00cd\x00ce\x00cf\x00d3\x00d4\x00d6\x00d9\x00da\x00db\x00dc\x00dd\x0106\x0139\x0143\x0152\x0154\x015a\x0179\x01f4\x1e30\x1e3e\x1e54\x1e82\x1e9e
518
+ attribute lowerlatin abcdefghijklmnopqrstuvwxyz\x00df\x00e0\x00e1\x00e2\x00e4\x00e6\x00e7\x00e8\x00e9\x00ea\x00eb\x00ed\x00ee\x00ef\x00f3\x00f4\x00f6\x00f9\x00fa\x00fb\x00fc\x00fd\x0107\x013a\x0144\x0153\x0155\x015b\x017a\x01f5\x1e31\x1e3f\x1e55\x1e83
519
+ attribute 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\x0400\x0404\x0405\x0406\x0407\x040b\x040d\x0460\x0462\x0464\x0466\x0468\x046a\x046c\x046e\x0470\x0472\x0474\x0476\x0478\x047a\x047e\x0480\x04e0\xa640\xa642\xa648\xa650\xa652\xa656\xa64a
520
+ attribute 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\x0450\x0454\x0455\x0456\x0457\x045b\x045d\x0461\x0463\x0465\x0467\x0469\x046b\x046d\x046f\x0471\x0473\x0475\x0477\x0479\x047b\x047f\x0481\x04e1\xa641\xa643\xa649\xa651\xa653\xa657\xa64b
521
+ attribute uppergreek \x0391\x0392\x0393\x0394\x0395\x0396\x0397\x0398\x0399\x039a\x039b\x039c\x039d\x039e\x039f\x03a0\x03a1\x03a3\x03a4\x03a5\x03a6\x03a7\x03a8\x03a9
522
+ attribute lowergreek \x03b1\x03b2\x03b3\x03b4\x03b5\x03b6\x03b7\x03b8\x03b9\x03ba\x03bb\x03bc\x03bd\x03be\x03bf\x03c0\x03c1\x03c3\x03c4\x03c5\x03c6\x03c7\x03c8\x03c9
523
+ attribute fractions \x00bd\x2155\x00bc\x00be\x2150\x2151\x2152\x2153\x2154\x2156\x2157\x2158\x2159\x215a\x215b\x215c\x215d\x215e\x2189
524
+ attribute dashes -\x2013\x2014\x2015
525
+ attribute dropspacebefore -%/\x00b0\x00d7\x2030\x2044\x2013\x2014\x2015\x2103\x2109\x2190\x2192\x2209\x2284
526
+ attribute dropspaceafter ,;+=~/\x00b1\x00d7\x00f7\x2030\x2044\x2190\x2192\x2209\x2284\x2212\x2213\x2215\x2229\x222a\x2216\x21d0\x21d2\x21d4\x2260\x2261\x2264\x2265\x2245\x2248\x2236\x2227\x2228\x00ac
527
+ attribute putspacebefore +=><~\x00b1\x00f7\x27f5\x27f6\x2208\x2282\x2212\x2213\x2215\x2227\x2228\x2229\x222a\x2216\x21d0\x21d2\x21d4\x2245\x2248\x2260\x2261\x2264\x2265
528
+ attribute putspaceafter ><\x27f5\x27f6\x2208\x2282
529
+ attribute leftbrackets ([{|
530
+ attribute rightbrackets )]}|
531
+
532
+ # Adjust spacing around symbols according to the Russian braille rules.
533
+ noback correct $D[","$s] "\x2820," # \x2820 is the braille dot 6
534
+ noback correct $D[";"$s] "\x2820;"
535
+ nofor partword ,\s 2
536
+ nofor endnum ,\s 6-2
537
+ nofor partword ;\s 23
538
+ nofor endnum ;\s 6-23
539
+ nofor correct ","$s[$s] ? # for cases where a space after a comma is intentionally inputed
540
+ nofor correct ";"$s[$s] ? # for cases where a space after a semicolon is intentionally inputed
541
+ noback correct ["*"$s"*"$s"*"] "***"
542
+ noback correct `$s.%dashes[$s] ? # for dialogs and direct speech
543
+ noback correct `%dashes[$s] ? # for dialogs and direct speech
544
+ noback correct [$s]%dropspacebefore ?
545
+ noback correct %dropspaceafter[$s] ?
546
+ noback correct $l[]%putspacebefore "\s"
547
+ noback correct $D[]%putspacebefore "\s"
548
+ noback correct %rightbrackets[]%putspacebefore "\s"
549
+ noback correct %putspaceafter[]$l "\s"
550
+ noback correct %putspaceafter[]$D "\s"
551
+ noback correct %putspaceafter[]%leftbrackets "\s"
552
+
553
+ # Punctuation after a positive integer introduced by the numero or section sign
554
+ # does not receive the usual dot-6 separator.
555
+ # F554 ends numeric context without emitting a cell, so punctuation keeps its
556
+ # ordinary cell while the number's endnum rule is not selected.
557
+ noback correct "\x2116"$D.["."] "\xf554."
558
+ noback correct "\x2116"$D.[","] "\xf554,"
559
+ noback correct "\x2116"$D.[";"] "\xf554;"
560
+ noback correct "\x2116"$D.[":"] "\xf554:"
561
+ noback correct "\x2116"$D.["?"] "\xf554?"
562
+ noback correct "\x2116"$D.["!"] "\xf554!"
563
+ noback correct "\x2116"$s$D.["."] "\xf554."
564
+ noback correct "\x2116"$s$D.[","] "\xf554,"
565
+ noback correct "\x2116"$s$D.[";"] "\xf554;"
566
+ noback correct "\x2116"$s$D.[":"] "\xf554:"
567
+ noback correct "\x2116"$s$D.["?"] "\xf554?"
568
+ noback correct "\x2116"$s$D.["!"] "\xf554!"
569
+ noback correct "\x00a7"$D.["."] "\xf554."
570
+ noback correct "\x00a7"$D.[","] "\xf554,"
571
+ noback correct "\x00a7"$D.[";"] "\xf554;"
572
+ noback correct "\x00a7"$D.[":"] "\xf554:"
573
+ noback correct "\x00a7"$D.["?"] "\xf554?"
574
+ noback correct "\x00a7"$D.["!"] "\xf554!"
575
+ noback correct "\x00a7"$s$D.["."] "\xf554."
576
+ noback correct "\x00a7"$s$D.[","] "\xf554,"
577
+ noback correct "\x00a7"$s$D.[";"] "\xf554;"
578
+ noback correct "\x00a7"$s$D.[":"] "\xf554:"
579
+ noback correct "\x00a7"$s$D.["?"] "\xf554?"
580
+ noback correct "\x00a7"$s$D.["!"] "\xf554!"
581
+
582
+ # Meaning of variables used in context rules below:
583
+ # #1: 0 = cyrillic mode (default) / 1 = latin mode (last letter was latin) / 2 = Greek mode (last letter was greek)
584
+ # #2: needed for correct operation of ru-litbrl-detailed.utb
585
+ # #3: needed for processing dialogs and direct speech
586
+ # #4: needed for back translation of Cyrillic uppercase letters
587
+ # #5: needed for back translation of Latin letters
588
+ # #6: needed for back translation of Greek lowercase letters
589
+ # #7: needed for correcting right single quotation mark when it's used as an apostrophe
590
+ # #8: inside the parenthesized period of a decimal fraction
591
+
592
+ # Rewrite only a numeric parenthesized period to internal characters. They emit
593
+ # upper-row digits without triggering another
594
+ # number sign. F55A also prevents the comma in 1,(523) from becoming endnum.
595
+ noback correct _$D["("]$D.")" "\xf55b"#8=1
596
+ noback correct _$D[",("]$D.")" "\xf55a\xf55b"#8=1
597
+ noback correct #8=1["0"] "\xf560"
598
+ noback correct #8=1["1"] "\xf561"
599
+ noback correct #8=1["2"] "\xf562"
600
+ noback correct #8=1["3"] "\xf563"
601
+ noback correct #8=1["4"] "\xf564"
602
+ noback correct #8=1["5"] "\xf565"
603
+ noback correct #8=1["6"] "\xf566"
604
+ noback correct #8=1["7"] "\xf567"
605
+ noback correct #8=1["8"] "\xf568"
606
+ noback correct #8=1["9"] "\xf569"
607
+ noback correct #8=1[")"] ")"#8=0
608
+
609
+ # Mark letters immediately following digits.
610
+ noback context _$d[]%uppercyrillic @45#1=0#2=1 # uppercase cyrillic letter following digit: 45
611
+ noback context _$d[]%lowercyrillic @5#1=0#2=0 # lowercase cyrillic letter following digit: 5
612
+ noback context _$d[]%upperlatin @46#1=1#2=1 # uppercase latin letter following digit: 46
613
+ noback context _$d[]%lowerlatin @6#1=1#2=0 # lowercase latin letter following digit: 6
614
+ noback context _$d[]%uppergreek @456#1=2#2=1 # lowercase greek letter following digit: 456
615
+ noback context _$d[]%lowergreek @56#1=2#2=0 # lowercase greek letter following digit: 56
616
+
617
+ # Mark letters immediately following dollar sign.
618
+ noback context _"$"[]%lowercyrillic @5#1=0#2=0 # lowercase cyrillic letter following dollar sign: 5
619
+ noback context _"$"[]%uppercyrillic @45#1=0#2=1 # uppercase cyrillic letter following dollar sign: 45
620
+ noback context _"$"[]%lowerlatin @6#1=1#2=0 # lowercase latin letter following dollar sign: 6
621
+ noback context _"$"[]%upperlatin @46#1=1#2=1 # lowercase latin letter following dollar sign: 46
622
+ noback context _"$"[]%lowergreek @56#1=2#2=0 # lowercase greek letter following dollar sign: 56
623
+ noback context _"$"[]%uppergreek @456#1=2#2=1 # uppercase greek letter following dollar sign: 456
624
+
625
+ # Mark latin letters where it is required.
626
+ noback context !#1=1[]%lowerlatin @6#1=1#2=0 # lowercase latin letter when not in latin mode: 6
627
+ noback context !#1=1[]%upperlatin @46#1=1#2=1 # uppercase latin letter when not in latin mode: 46
628
+
629
+ # Mark greek letters where it is required.
630
+ noback context !#1=2[]%lowergreek @56#1=2#2=0 # lowercase greek letter when not in Greek mode: 56
631
+ noback context !#1=2[]%uppergreek @456#1=2#2=1 # uppercase greek letter when not in Greek mode: 456
632
+
633
+ # Mark cyrillic letters immediately following latins and greeks.
634
+ noback context _%upperlatin[]%uppercyrillic @45#1=0#2=1 # uppercase cyrillic letter following latin letter: 45
635
+ noback context _%lowerlatin[]%uppercyrillic @45#1=0#2=1
636
+ noback context _%uppergreek[]%uppercyrillic @45#1=0#2=1 # uppercase cyrillic letter following greek letter: 45
637
+ noback context _%lowergreek[]%uppercyrillic @45#1=0#2=1
638
+ noback context _%upperlatin[]%lowercyrillic @5#1=0#2=0 # lowercase cyrillic letter following latin letter: 5
639
+ noback context _%lowerlatin[]%lowercyrillic @5#1=0#2=0
640
+ noback context _%uppergreek[]%lowercyrillic @5#1=0#2=0 # lowercase cyrillic letter following greek letter: 5
641
+ noback context _%lowergreek[]%lowercyrillic @5#1=0#2=0
642
+
643
+ # Enter cyrillic mode
644
+ noback context !#1=0[]%lowercyrillic #1=0#2=0
645
+ noback context !#1=0[]%uppercyrillic #1=0#2=1
646
+
647
+ # Move accent marks before accented letters according to the Russian braille standard
648
+ noback correct [$l]"\x00b4" "\x00b4"*
649
+ noback correct [$l]"\x02c6" "\x02c6"*
650
+ noback correct [$l]"\x02ca" "\x02ca"*
651
+ noback correct [$l]"\x02dd" "\x02dd"*
652
+ noback correct [$l]"\x0300" "\x0300"*
653
+ noback correct [$l]"\x0301" "\x0301"*
654
+ noback correct [$l]"\x0302" "\x0302"*
655
+ noback correct [$l]"\x030b" "\x030b"*
656
+ noback correct [$l]"\x0317" "\x0317"*
657
+ noback correct [$l]"\x032d" "\x032d"*
658
+ noback correct [$l]"\x0341" "\x0341"*
659
+
660
+ # Format dialogs and direct speech according to the Russian braille tradition.
661
+ noback pass2 `$s.@36 *#3=1 # direct speech is started with dash-symbol
662
+ noback pass2 `@36 *#3=1 # direct speech is started with dash-symbol
663
+ noback pass2 @236 *#3=1 # direct speech is started with quotation mark
664
+ noback pass2 @356 *#3=0 # direct speech ends with quotation mark
665
+ noback pass2 #3=1@2@36@0 *#3=2 # author's words in the middle of direct speech after comma
666
+ noback pass2 #3=1@26@36@0 *#3=2 # author's words in the middle of direct speech after question mark
667
+ noback pass2 #3=1@235@36@0 *#3=2 # author's words in the middle of direct speech after exclamation mark
668
+ noback pass2 #3=2@2[@36@0] @0-36#3=1 # direct speech continues after comma
669
+ noback pass2 #3=2@256[@36@0] @0-36#3=1 # direct speech continues after dot
670
+
671
+ # Mark punctuations after fractions
672
+ noback context %fractions[]$p @6
673
+
674
+ # Remove dot 6 before period after digits when numerating items of a numbered list
675
+ noback correct `$s.$D.["."] "\x2832"
676
+ noback correct `$D.["."] "\x2832"
677
+
678
+ # Correct right single quotation mark when it's used as an apostrophe
679
+ noback correct "\x2018" *#7=1
680
+ noback correct #7=0"\x2019" "'"
681
+
682
+ # Back translation of letters
683
+
684
+ # Cyrillic uppercase letters
685
+ nofor context [@45-45] #4=2 # Input several Cyrillic uppercase letters
686
+ nofor context [@45] #4=1 # Input a Cyrillic uppercase letter
687
+
688
+ nofor context #4=1@1 "А"#4=0
689
+ nofor context #4=1@12 "Б"#4=0
690
+ nofor context #4=1@2456 "В"#4=0
691
+ nofor context #4=1@1245 "Г"#4=0
692
+ nofor context #4=1@145 "Д"#4=0
693
+ nofor context #4=1@15 "Е"#4=0
694
+ nofor context #4=1@16 "Ё"#4=0
695
+ nofor context #4=1@245 "Ж"#4=0
696
+ nofor context #4=1@1356 "З"#4=0
697
+ nofor context #4=1@24 "И"#4=0
698
+ nofor context #4=1@12346 "Й"#4=0
699
+ nofor context #4=1@13 "К"#4=0
700
+ nofor context #4=1@123 "Л"#4=0
701
+ nofor context #4=1@134 "М"#4=0
702
+ nofor context #4=1@1345 "Н"#4=0
703
+ nofor context #4=1@135 "О"#4=0
704
+ nofor context #4=1@1234 "П"#4=0
705
+ nofor context #4=1@1235 "Р"#4=0
706
+ nofor context #4=1@234 "С"#4=0
707
+ nofor context #4=1@2345 "Т"#4=0
708
+ nofor context #4=1@136 "У"#4=0
709
+ nofor context #4=1@124 "Ф"#4=0
710
+ nofor context #4=1@125 "Х"#4=0
711
+ nofor context #4=1@14 "Ц"#4=0
712
+ nofor context #4=1@12345 "Ч"#4=0
713
+ nofor context #4=1@156 "Ш"#4=0
714
+ nofor context #4=1@1346 "Щ"#4=0
715
+ nofor context #4=1@12356 "Ъ"#4=0
716
+ nofor context #4=1@2346 "Ы"#4=0
717
+ nofor context #4=1@23456 "Ь"#4=0
718
+ nofor context #4=1@246 "Э"#4=0
719
+ nofor context #4=1@1256 "Ю"#4=0
720
+ nofor context #4=1@1246 "Я"#4=0
721
+
722
+ nofor context #4=2@1 "А"
723
+ nofor context #4=2@12 "Б"
724
+ nofor context #4=2@2456 "В"
725
+ nofor context #4=2@1245 "Г"
726
+ nofor context #4=2@145 "Д"
727
+ nofor context #4=2@15 "Е"
728
+ nofor context #4=2@16 "Ё"
729
+ nofor context #4=2@245 "Ж"
730
+ nofor context #4=2@1356 "З"
731
+ nofor context #4=2@24 "И"
732
+ nofor context #4=2@12346 "Й"
733
+ nofor context #4=2@13 "К"
734
+ nofor context #4=2@123 "Л"
735
+ nofor context #4=2@134 "М"
736
+ nofor context #4=2@1345 "Н"
737
+ nofor context #4=2@135 "О"
738
+ nofor context #4=2@1234 "П"
739
+ nofor context #4=2@1235 "Р"
740
+ nofor context #4=2@234 "С"
741
+ nofor context #4=2@2345 "Т"
742
+ nofor context #4=2@136 "У"
743
+ nofor context #4=2@124 "Ф"
744
+ nofor context #4=2@125 "Х"
745
+ nofor context #4=2@14 "Ц"
746
+ nofor context #4=2@12345 "Ч"
747
+ nofor context #4=2@156 "Ш"
748
+ nofor context #4=2@1346 "Щ"
749
+ nofor context #4=2@12356 "Ъ"
750
+ nofor context #4=2@2346 "Ы"
751
+ nofor context #4=2@23456 "Ь"
752
+ nofor context #4=2@246 "Э"
753
+ nofor context #4=2@1256 "Ю"
754
+ nofor context #4=2@1246 "Я"
755
+
756
+ nofor context !#4=0[!%uppercyrillic] *#4=0
757
+
758
+ # Latin letters
759
+ nofor context [@6] #5=1 # Input a Latin lowercase letter
760
+
761
+ nofor context #5=1@1 "a"
762
+ nofor context #5=1@12 "b"
763
+ nofor context #5=1@14 "c"
764
+ nofor context #5=1@145 "d"
765
+ nofor context #5=1@15 "e"
766
+ nofor context #5=1@124 "f"
767
+ nofor context #5=1@1245 "g"
768
+ nofor context #5=1@125 "h"
769
+ nofor context #5=1@24 "i"
770
+ nofor context #5=1@245 "j"
771
+ nofor context #5=1@13 "k"
772
+ nofor context #5=1@123 "l"
773
+ nofor context #5=1@134 "m"
774
+ nofor context #5=1@1345 "n"
775
+ nofor context #5=1@135 "o"
776
+ nofor context #5=1@1234 "p"
777
+ nofor context #5=1@12345 "q"
778
+ nofor context #5=1@1235 "r"
779
+ nofor context #5=1@234 "s"
780
+ nofor context #5=1@2345 "t"
781
+ nofor context #5=1@136 "u"
782
+ nofor context #5=1@1236 "v"
783
+ nofor context #5=1@2456 "w"
784
+ nofor context #5=1@1346 "x"
785
+ nofor context #5=1@13456 "y"
786
+ nofor context #5=1@1356 "z"
787
+ nofor context #5=1@345 "\x00e4"
788
+ nofor context #5=1@246 "\x00f6"
789
+ nofor context #5=1@1256 "\x00fc"
790
+
791
+ nofor context [@46] #5=2 # Input an uppercase Latin letter
792
+
793
+ nofor context #5=2@1 "A"#5=1
794
+ nofor context #5=2@12 "B"#5=1
795
+ nofor context #5=2@14 "C"#5=1
796
+ nofor context #5=2@145 "D"#5=1
797
+ nofor context #5=2@15 "E"#5=1
798
+ nofor context #5=2@124 "F"#5=1
799
+ nofor context #5=2@1245 "G"#5=1
800
+ nofor context #5=2@125 "H"#5=1
801
+ nofor context #5=2@24 "I"#5=1
802
+ nofor context #5=2@245 "J"#5=1
803
+ nofor context #5=2@13 "K"#5=1
804
+ nofor context #5=2@123 "L"#5=1
805
+ nofor context #5=2@134 "M"#5=1
806
+ nofor context #5=2@1345 "N"#5=1
807
+ nofor context #5=2@135 "O"#5=1
808
+ nofor context #5=2@1234 "P"#5=1
809
+ nofor context #5=2@12345 "Q"#5=1
810
+ nofor context #5=2@1235 "R"#5=1
811
+ nofor context #5=2@234 "S"#5=1
812
+ nofor context #5=2@2345 "T"#5=1
813
+ nofor context #5=2@136 "U"#5=1
814
+ nofor context #5=2@1236 "V"#5=1
815
+ nofor context #5=2@2456 "W"#5=1
816
+ nofor context #5=2@1346 "X"#5=1
817
+ nofor context #5=2@13456 "Y"#5=1
818
+ nofor context #5=2@1356 "Z"#5=1
819
+ nofor context #5=2@345 "\x00c4"#5=1
820
+ nofor context #5=2@246 "\x00d6"#5=1
821
+ nofor context #5=2@1256 "\x00dc"#5=1
822
+
823
+ attribute allowLatinMode ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\x00c4\x00d6\x00dc\x00e4\x00f6\x00fc'&`
824
+ nofor context !#5=0@0 "\s"#5=0
825
+ nofor context !#5=0[!%allowLatinMode] *#5=0
826
+
827
+ # Greek letters (lowercase only)
828
+ nofor context [@56] #6=1 # Input a lowercase Greek letter
829
+
830
+ nofor context #6=1@1 "\x03B1"
831
+ nofor context #6=1@12 "\x03B2"
832
+ nofor context #6=1@1245 "\x03B3"
833
+ nofor context #6=1@145 "\x03B4"
834
+ nofor context #6=1@15 "\x03B5"
835
+ nofor context #6=1@1356 "\x03B6"
836
+ nofor context #6=1@245 "\x03B7"
837
+ nofor context #6=1@125 "\x03B8"
838
+ nofor context #6=1@24 "\x03B9"
839
+ nofor context #6=1@13 "\x03BA"
840
+ nofor context #6=1@123 "\x03BB"
841
+ nofor context #6=1@134 "\x03BC"
842
+ nofor context #6=1@1345 "\x03BD"
843
+ nofor context #6=1@1346 "\x03BE"
844
+ nofor context #6=1@135 "\x03BF"
845
+ nofor context #6=1@1234 "\x03C0"
846
+ nofor context #6=1@1235 "\x03C1"
847
+ nofor context #6=1@234 "\x03C3"
848
+ nofor context #6=1@2345 "\x03C4"
849
+ nofor context #6=1@136 "\x03C5"
850
+ nofor context #6=1@124 "\x03C6"
851
+ nofor context #6=1@14 "\x03C7"
852
+ nofor context #6=1@13456 "\x03C8"
853
+ nofor context #6=1@2456 "\x03C9"
854
+ nofor context #6=1[!%lowergreek] *#6=0
855
+
856
+ include braille-patterns.cti
857
+ include IPA-unicode-range.uti