/usr/share/liblouis/tables/da-dk-g16.ctb is in liblouis-data 3.5.0-1ubuntu0.3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 | # Liblouis: Danish table for 6 dots grade 1 forward and backward translation
#
# Copyright (C) 2014-2017, Bue Vester-Andersen <bue@vester-andersen.dk>
#
# 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/>.
#
# Version: Bue Vester-Andersen, 170604
### Table Metadata
#-name: Dansk fuldskrift 6-punkt
#-display-name: Danish 6-dot uncontracted braille
#+locale: da
#+type: literary
#+contraction: no
#+grade: 1
#+dots: 6
#+direction: both
### Character definitions
# Display opcodes
include da-dk-octobraille.dis
# These ctrl-chars have to have a representation, so that they can be properly converted back and forth.
space \t 2478 CHARACTER TABULATION
space \n 678 LINE FEED (LF)
space \v 1368 LINE TABULATION
space \f 12378 FORM FEED (FF)
space \r 257 CARRIAGE RETURN (CR)
# Definition of dot cells
space \s 0
punctuation ! 235 EXCLAMATION MARK
punctuation " 2356 QUOTATION MARK
sign & 12346 AMPERSAND
punctuation ' 4 APOSTROPHE
punctuation ( 236 LEFT PARENTHESIS
punctuation ) 356 RIGHT PARENTHESIS
punctuation * 35 ASTERISK
punctuation , 2 COMMA
punctuation - 36 HYPHEN-MINUS
punctuation . 3 FULL STOP
punctuation / 34 SLASH
punctuation : 25 COLON
punctuation ; 23 SEMICOLON
punctuation ? 26 QUESTION MARK
include latinLetterDef6Dots.uti
include digits6Dots.uti
punctuation \x00a7 346 SECTION SIGN (0xa7)
uplow \x00c5\x00e5 16 LATIN LETTER A WITH RING ABOVE
uplow \x00c6\x00e6 345 LATIN LETTER AE
uplow \x00d8\x00f8 246 LATIN LETTER O WITH STROKE
uplow \x00dc\x00fc 1256 LATIN CAPITAL LETTER U WITH DIAERESIS
math \x00f7 256 DIVISION SIGN
# cover all other Braille patterns
include braille-patterns.cti
# Characters with two or more cells
punctuation # 45-3456 NUMBER SIGN
sign $ 45-256 DOLLAR SIGN
math % 245-356 PERCENT SIGN
#sign & 6-12346 AMPERSAND
#punctuation * 6-35 ASTERISK
math + 45-235 PLUS SIGN
math < 45-134 LESS-THAN SIGN
math = 45-2356 EQUALS SIGN
math > 45-234 GREATER-THAN SIGN
sign @ 45-1 COMMERCIAL AT
punctuation [ 5-236 LEFT SQUARE BRACKET
punctuation \\ 45-16 REVERSE SLASH
punctuation ] 5-356 RIGHT SQUARE BRACKET
punctuation ^ 45-346 CIRCUMFLEX ACCENT
punctuation _ 45-36 LOW LINE
punctuation ` 4 GRAVE ACCENT
punctuation { 45-246 LEFT CURLY BRACKET
punctuation | 4568 VERTICAL LINE
punctuation } 45-135 RIGHT CURLY BRACKET
punctuation ~ 467 TILDE (changed by pass 2 to not conflict with indicators
# Misc unicode characters
include da-dk-6miscChars.cti
# Litdigits
include litdigits6Dots.uti
undefined 26
### Braille indicators and special characters
#hyphen - 36
letsign 6
# No letsign before capital letters or letters with accents
noletsign ABCDEFGHIJKLMNOPQRSTUVWXYZ\x0160\x0152\x017d\x0178\x00c0\x00c1\x00c2\x00c3\x00c4\x00c5\x00c6\x00c7\x00c8\x00c9\x00ca\x00cb\x00cc\x00cd\x00ce\x00cf\x00d0\x00d1\x00d2\x00d3\x00d4\x00d5\x00d6\x00d8\x00d9\x00da\x00db\x00dc\x00dd\x00de\x008a\x008c\x008e
noletsign i\x0161\x0153\x017e\x00ff\x00df\x00e0\x00e1\x00e2\x00e3\x00e7\x00e8\x00e9\x00ea\x00eb\x00ec\x00ed\x00ee\x00ef\x00f0\x00f1\x00f2\x00f3\x00f4\x00f5\x00f9\x00fa\x00fb\x00fd\x00fe\x009a\x009c
noletsign abcdefghjklmnopqrstuvwxyz\x00e4\x00e5\x00e6\x00f6\x00f8\x00fc
# Emphasis opcodes
emphclass italic
emphclass underline
emphclass bold
begemphphrase italic 56
endemphphrase italic after 56
begemphword italic 56
endemphword italic 56
begemphphrase bold 56
endemphphrase bold after 56
begemphword bold 56
endemphword bold 56
begemphphrase underline 56
endemphphrase underline after 56
begemphword underline 56
endemphword underline 56
capsletter 46
begcapsword 456
endcapsword 68 # Used during back-translation to stop overflow of capsword
multind 6-46 letsign capsletter
multind 46-6 capsletter letsign
multind 6-456 letsign begcapsword
multind 68-6-46 endcapsword letsign capsletter
multind 68-6-456 endcapsword letsign begcapsword
multind 68-6 endcapsword letsign
numsign 3456
multind 6-3456 letsign numsign
#class of none-space characters that demand double dashes
# Used in context lines later.
#must be the first class defined.
class charsWDoubleDash .,?!/:"'() # class w
### Correct - forward translation
# Chars that don't require a space before percent and permille:
class charsBeforePercent "(\x201e\x0084\x201c\x0093\x201d\x0094\x00ab\x00bb #class x
noback correct `["%"] *
noback correct !$sx["%"] " %"
noback correct `["\x2030"] *
noback correct !$sx["\x2030"] " \x2030"
noback correct `["\x0089"] *
noback correct !$sx["\x0089"] " \x2030"
# Chars to be treated like digits when switching back to letter mode
class extraDigits \x00bc\x00bd\x00be
#Use the "correct" opcode to convert chars that can't be back-translated
# and make the table more simple.
# Dashes
class dashes \x2013\x2014\x0096\x0097\x00ad
noback correct %dashes "-"
class quotes \x201e\x0084\x201c\x0093\x201d\x0094\x00ab\x00bb
noback correct %quotes "\""
class apostrophes `\x201a\x0082\x2039\x008b\x2018\x0091\x2019\x0092\x203a\x009b\x00b4
noback correct %apostrophes "'"
### Correct - backward translation
# characters that may get mangled by the insertion of extra letsigns
nofor correct "\x2818" "~"
#nofor correct "\x282f" "&"
#nofor correct "\x2814" "*"
# Try to distinguish between times (\x00d7) and bullit (\x2022),
# which share the same Braille representation.
nofor correct `["\x00d7"] "\x2022"
# nofor correct $d["\s\x00d7\s"]$d * #apparently doesn't work now
nofor correct ["\x00d7"]!$d "\x2022"
nofor correct !$d["\x00d7"] "\x2022"
nofor correct "\x28a0" ? # Extraneous endcaps signs
#nofor correct "\x2820" ?
nofor correct "~\\456/" "|"
### Pass 1 - Forward and backward
# Punctuations, math and numbers
midnum , 2
midnum . 3
#midnum - 36
endnum - 36
midnum / 34
midnum : 25
midnum ^ 45-346
midnum \x00d7 45-3-3456
# Punctuation
prepunc " 2356
postpunc " 2356
prepunc - 36
postpunc - 36
nofor always \s-\s 0-36-36-0
always :- 25-36
always ;- 23-36
always --- 36-36-36
always ---- 36-36-36-36
always ----- 36-36-36-36-36
# these characters must be separated from ")" by a letsign.
class SepToRightpar Jj%'\x2030\x0089\x201a\x0082\x2039\x009b\x2018\x0091\x2019\x0092\x203a\x009b
after SepToRightpar always ) 6-356
prepunc ( 236
postpunc ) 356
always .) 3-356
always ... 3-3-3
always !! 235-235
always !!! 235-235-235
always !!!! 235-235-235-235
always !!!!! 235-235-235-235-235
### Context rules - forward translation
# Ensure two dashes where appropriate.
noback context $w["-"]$w @36
noback context $sw["-"]$sw @36-36
noback context `["-"]$sw @36-36
noback context $sw["-"]~ @36-36
noback context !$sw["-"]~ @36
noback context `["-"]~ @36-36
#ensure dot 6 between a digit and a letter
noback context $dy[]$u @6
noback context $dy$Spm.[]$u @6
### context - backward translation
# Ensure the correct number of dashes
nofor context @36[@36-36] "--"
nofor context [@36-36]@36 "--"
nofor context $w[@36-36]$w "--"
nofor context $sw[@36-36]$sw "-"
nofor context `[@36-36]$sw "-"
nofor context $sw[@36-36]~ "-"
nofor context `@36-36~ "-"
### Pass 2 - forward translation
# Correct tilde and vertical line
noback pass2 @467 @45-6
noback pass2 @4568 @45-456
# Show endcapsword as dot 6 (letsign)
noback pass2 @68 @6
noback pass2 @6-46-5 @46-5 # no letsign before cap letters with accent
noback pass2 @6-46 @46-6 # Ensure correct order
### Pass 2 - backward
# Insert letsign between number (with extra punctuation) and capsletter sign
nofor pass2 @3456$l.$Spm$l.@3$l.@3[]@46 @68-6
nofor pass2 @3456$l.$Spm$l.@3[]@46 @68-6
nofor pass2 @3456$l.$Spm$Spm[]@46 @68-6
nofor pass2 @3456$l.$Spm[]@46 @68-6
# Insert letsign between number (with extra punctuation) and capsword sign
nofor pass2 @3456$l.$Spm$l.@3$l.@3[]@456 @6
nofor pass2 @3456$l.$Spm$l.@34$l.@34[]@456 @6
nofor pass2 @3456$l.$Spm$l.@36$l.@36[]@456 @6
nofor pass2 @3456$l.$Spm$l.@3[]@456 @6
nofor pass2 @3456$l.$Spm$l.@34[]@456 @6
nofor pass2 @3456$l.$Spm$l.@36[]@456 @6
nofor pass2 @3456$l.$Spm$Spm[]@456 @6
nofor pass2 @3456$l.$Spm[]@456 @6
nofor pass2 @3456$l.[]@456 @6
# Place endcaps in connection to all the following Braille patterns:
nofor pass2 $l[@45-3] @45-3-68
nofor pass2 $l[@468] @468-68
nofor pass2 $l[@6] @68-6 # Must come before letsign
nofor pass2 $l[@36] @36-68
nofor pass2 $l[@34] @34-68
nofor pass2 $l[@2356] @2356-68
nofor pass2 $l[@45-36] @45-36-68
nofor pass2 $l[@4-356] @4-356-68
nofor pass2 $l[@245-356] @245-356-68
nofor pass2 $l[@4] @4-68
nofor pass2 $l[@235] @235-68
nofor pass2 $l[@45-1] @45-1-68
nofor pass2 $l[@236] @236-68
nofor pass2 $l[@356-356] @356-356-68
nofor pass2 $l[@356] @356-68
nofor pass2 $l[@3] @3-68
nofor pass2 $l[@2] @2-68
nofor pass2 $l[@26] @26-68
nofor pass2 $l[@25] @25-68
nofor pass2 $l[@12346] @12346-68
nofor pass2 $l[]@46 @68-6
#nofor pass2 $a[]@456 @6
### Pass 3 - forward translation
# Ensure there is only one letsign
noback pass3 @6-6 @6
### Pass 3 - backward translation
# save ~ and | before inserting extra letsigns and endcapsword in pass 2.
nofor pass3 @45-6 @468 # Create alternative representation of "~"
nofor pass3 @45-456 @4568
|