| # Liblouis: Danish table for 6 dots grade 1 forward translation (literary) |
| # |
| # 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/>. |
| # |
| #------------ |
| # |
| # This is the Danish 6 dots grade 1 table for forward translation (literary / not back-translateable). |
| # |
| # The output from this table is mainly ment for embossing and not suited for back-translation. |
| # |
| # Version: Bue Vester-Andersen, 170604 |
| |
| ### Table Metadata |
| |
| #-name: Dansk fuldskrift 6-punkt |
| #-index-name: Danish, uncontracted, 6-dot |
| #-display-name: Danish 6-dot uncontracted braille |
| |
| #+locale: da |
| #+type: literary |
| #+contraction: no |
| #+grade: 1 |
| #+dots: 6 |
| #+direction: forward |
| |
| # Display opcodes |
| include da-dk-octobraille.dis |
| |
| ### Spaces |
| |
| # 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) |
| space \x00a0 a |
| |
| include spaces.uti |
| |
| ### Character definitions |
| |
| # Definition of dot cells |
| 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 | 45-456 VERTICAL LINE |
| punctuation } 45-135 RIGHT CURLY BRACKET |
| punctuation ~ 45-6 TILDE |
| |
| # 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 6 |
| |
| numsign 3456 |
| |
| #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 |
| |
| # 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 `["\x2030"] * |
| noback correct !$sx["%"] " %" |
| 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 "'" |
| |
| # Convert most single caps to lowercase |
| |
| #Special abbreviations with imbedded small letters. |
| # Must be handled by case in this version of liblouis |
| noback correct "KAbB" "KABB" |
| noback correct "CUDiM" "CUDIM" |
| |
| swapcc UpperLower 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 abcdefghijklmnopqrstuvwxyz\x0161\x0153\x017e\x00ff\x00e0\x00e1\x00e2\x00e3\x00e4\x00e5\x00e6\x00e7\x00e8\x00e9\x00ea\x00eb\x00ec\x00ed\x00ee\x00ef\x00f0\x00f1\x00f2\x00f3\x00f4\x00f5\x00f6\x00f8\x00f9\x00fa\x00fb\x00fc\x00fd\x00fe\x009a\x009c |
| |
| # I is a special case |
| noback correct _$sp["I"]$sp "i" |
| noback correct `["I"]$sp "i" |
| noback correct _$sp["I"]~ "i" |
| |
| noback correct $sSpu[%UpperLower]$u %UpperLower |
| noback correct `[%UpperLower]$u %UpperLower |
| |
| # 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 |
| 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 |
| |
| # Substitutions for joinnum rules with common math signs |
| noback context $dy$s["-"$s]$dy @36 |
| noback context $dy$s["+"$s]$dy @235 |
| noback context $dy$s["\x00d7"$s]$dy @3 |
| noback context $dy$s["\x00f7"$s]$dy @256 |
| noback context $dy$s["="$s]$dy @2356 |
| |
| # Space on each side of = when between letters or punctuation. |
| noback context $lp["="]$lp @0-2356-0 |
| |
| # 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 |
| |
| # Ensure dot 6 as nocaps |
| #noback context $U2-50[]$u @6 |
| |
| ### Pass 2 |
| |
| noback pass2 @6-46-5 @46-5 # no letsign before cap letters with accent |
| noback pass2 @45-6-46 * # don't touch tilde before capnoback pass2 @6-46 @46-6 # Ensure correct order |
| |
| # Ensure there is only one letsign |
| noback pass2 @6-6 @6 |