#
#  Copyright (C) 2010, 2011 by DocArch <http://www.docarch.be>
#
#  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/>.
#
# ----------------------------------------------------------------------------------------------
#  odt2braille - Braille authoring in OpenOffice.org.
# ----------------------------------------------------------------------------------------------
#
#  Spanish Braille
#     Created and maintained by Bert Frees <bertfrees@gmail.com>
#	  with the assistance of Carles Sadurní Anguita <http://www.transcriptor.net/>
#
# ----------------------------------------------------------------------------------------------

space       \x0009        9                                       <control> HORIZONTAL TABULATION
space       \x001B        1b                                      <control> ESCAPE
space       \x00A0        a                                       NO-BREAK SPACE
include spaces.uti

# ==============================================================================================
# SINGLE-CELL
# ==============================================================================================

# ----------------------------------------------------------------------------------------------
# Unicode 0000..007F  C0 Controls and Basic Latin
# ----------------------------------------------------------------------------------------------

include latinLetterDef6Dots.uti

uplow       \x00C1\x00E1  12356,12356         Áá                  LATIN CAPITAL LETTER A WITH ACUTE - LATIN SMALL LETTER A WITH ACUTE
uplow       \x00C9\x00E9  2346,2346           Éé                  LATIN CAPITAL LETTER E WITH ACUTE - LATIN SMALL LETTER E WITH ACUTE
uplow       \x00CD\x00ED  34,34               Íí                  LATIN CAPITAL LETTER I WITH ACUTE - LATIN SMALL LETTER I WITH ACUTE
uplow       \x00D1\x00F1  12456,12456         Ññ                  LATIN CAPITAL LETTER N WITH TILDE - LATIN SMALL LETTER N WITH TILDE
uplow       \x00D3\x00F3  346,346             Óó                  LATIN CAPITAL LETTER O WITH ACUTE - LATIN SMALL LETTER O WITH ACUTE
uplow       \x00DA\x00FA  23456,23456         Úú                  LATIN CAPITAL LETTER U WITH ACUTE - LATIN SMALL LETTER U WITH ACUTE
uplow       \x00DC\x00FC  1256,1256           Üü                  LATIN CAPITAL LETTER U WITH DIAERESIS - LATIN SMALL LETTER U WITH DIAERESIS

punctuation \x0021        235                 !                   EXCLAMATION MARK
punctuation \x0022        236                 "                   QUOTATION MARK
punctuation \x0027        3                   '                   APOSTROPHE
punctuation \x0028        126                 (                   LEFT PARENTHESIS
punctuation \x0029        345                 )                   RIGHT PARENTHESIS
sign        \x002A        35                  *                   ASTERISK
math        \x002B        235                 +                   PLUS SIGN
punctuation \x002C        2                   ,                   COMMA
punctuation \x002D        36                  -                   HYPHEN-MINUS
punctuation \x002E        3                   .                   FULL STOP
include loweredDigits6Dots.uti
punctuation \x003A        25                  :                   COLON
punctuation \x003B        23                  ;                   SEMICOLON
math        \x003C        246                 <                   LESS-THAN SIGN
math        \x003D        2356                =                   EQUALS SIGN
math        \x003E        135                 >                   GREATER-THAN SIGN
punctuation \x003F        26                  ?                   QUESTION MARK
punctuation \x005B        12356               [                   LEFT SQUARE BRACKET
punctuation \x005D        23456               ]                   RIGHT SQUARE BRACKET
sign        \x007C        456                 |                   VERTICAL LINE


# ----------------------------------------------------------------------------------------------
# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
# ----------------------------------------------------------------------------------------------

punctuation \x0082        2                   ‚                   <control> BREAK PERMITTED HERE - ANSI: SINGLE LOW-9 QUOTATION MARK - MACROMAN: C CEDILLA
punctuation \x0084        236                 „                   <control> - ANSI: DOUBLE LOW-9 QUOTATION MARK - MACROMAN: N TILDE
punctuation \x0093        236                 “                   <control> SET TRANSMIT STATE - ANSI: LEFT DOUBLE QUOTATION MARK - MACROMAN: I GRAVE
punctuation \x0094        236                 ”                   <control> CANCEL CHARACTER - ANSI: RIGHT DOUBLE QUOTATION MARK - MACROMAN: I CIRCUMFLEX
punctuation \x0096        36                  –                   <control> START OF GUARDED AREA - ANSI: EN DASH - MACROMAN: N TILDE
punctuation \x00A1        235                 ¡                   INVERTED EXCLAMATION MARK
punctuation \x00AB        236                 «                   LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
punctuation \x00AD        36                  ­                    SOFT HYPHEN
punctuation \x00BB        236                 »                   RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
punctuation \x00BF        26                  ¿                   INVERTED QUESTION MARK
math        \x00D7        236                 ×                   MULTIPLICATION SIGN
math        \x00F7        256                 ÷                   DIVISION SIGN


# ----------------------------------------------------------------------------------------------
# Unicode 2000..206F  General Punctuation
# ----------------------------------------------------------------------------------------------

punctuation \x2010        36                  ‐                   HYPHEN
punctuation \x2011        36                  ‑                   NON-BREAKING HYPHEN
punctuation \x2012        36                  ‒                   FIGURE DASH
punctuation \x2013        36                  –                   EN DASH
punctuation \x2018        236                 ‘                   LEFT SINGLE QUOTATION MARK
punctuation \x2019        236                 ’                   RIGHT SINGLE QUOTATION MARK
punctuation \x201A        236                 ‚                   SINGLE LOW-9 QUOTATION MARK
punctuation \x201B        236                 ‛                   SINGLE HIGH-REVERSED-9 QUOTATION MARK
punctuation \x201C        236                 “                   LEFT DOUBLE QUOTATION MARK
punctuation \x201D        236                 ”                   RIGHT DOUBLE QUOTATION MARK
punctuation \x201E        236                 „                   DOUBLE LOW-9 QUOTATION MARK
punctuation \x201F        236                 ‟                   DOUBLE HIGH-REVERSED-9 QUOTATION MARK
punctuation \x2043        36                  ⁃                   HYPHEN BULLET


# ==============================================================================================
# MULTI-CELL
# ==============================================================================================

# ----------------------------------------------------------------------------------------------
# Unicode 0000..007F  C0 Controls and Basic Latin
# ----------------------------------------------------------------------------------------------

sign        \x0024        456-234             $                   DOLLAR SIGN
math        \x0025        456-356             %                   PERCENT SIGN
sign        \x0026        6-12346             &                   AMPERSAND
math        \x002F        6-2                 /                   SOLIDUS
sign        \x0040        5                   @                   COMMERCIAL AT
sign        \x005C        5-3                 \                   REVERSE SOLIDUS
math        \x007B        5-123               {                   LEFT CURLY BRACKET
math        \x007D        456-2               }                   RIGHT CURLY BRACKET


# ----------------------------------------------------------------------------------------------
# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
# ----------------------------------------------------------------------------------------------

sign        \x0080        456-15              €                   <control> - ANSI: EURO-CURRENCY SIGN - MACROMAN: A DIAERESIS
punctuation \x0085        3-3-3               …                   <control> NEXT LINE (NEL) - ANSI: HORIZONTAL ELLIPSIS - MACROMAN: O DIAERESIS
sign        \x0089        456-356-356         ‰                   <control> CHARACTER TABULATION WITH JUSTIFICATION - ANSI: PER MILLE SIGN - MACROMAN: A CIRCUMFLEX
punctuation \x0097        36-36               —                   <control> END OF GUARDED AREA - ANSI: EM DASH - MACROMAN: O ACUTE
sign        \x00A2        45-14               ¢                   CENT SIGN
sign        \x00A3        5-2346              £                   POUND SIGN
sign        \x00A5        456-13456           ¥                   YEN SIGN
sign        \x00A9        126-46-14-345       ©                   COPYRIGHT SIGN
sign        \x00AE        126-46-1235-345     ®                   REGISTERED SIGN
math        \x00B1        235-25-36           ±                   PLUS-MINUS SIGN
sign        \x00B2        16-3456-12          ²                   SUPERSCRIPT TWO
sign        \x00B3        16-3456-14          ³                   SUPERSCRIPT THREE
sign        \x00B5        4-134               µ                   MICRO SIGN
math        \x00BC        3456-2-145          ¼                   VULGAR FRACTION ONE QUARTER
math        \x00BD        3456-2-12           ½                   VULGAR FRACTION ONE HALF
math        \x00BE        3456-25-145         ¾                   VULGAR FRACTION THREE QUARTERS


# ----------------------------------------------------------------------------------------------
# Unicode 0370..03FF  Greek and Coptic
# ----------------------------------------------------------------------------------------------

lowercase   \x03B1        4-1                 α                   GREEK SMALL LETTER ALPHA
lowercase   \x03B2        4-12                β                   GREEK SMALL LETTER BETA
lowercase   \x03B3        4-1245              γ                   GREEK SMALL LETTER GAMMA
lowercase   \x03B4        4-145               δ                   GREEK SMALL LETTER DELTA
lowercase   \x03B5        4-15                ε                   GREEK SMALL LETTER EPSILON
lowercase   \x03B6        4-1356              ζ                   GREEK SMALL LETTER ZETA
lowercase   \x03B7        4-156               η                   GREEK SMALL LETTER ETA
lowercase   \x03B8        4-1456              θ                   GREEK SMALL LETTER THETA
lowercase   \x03B9        4-24                ι                   GREEK SMALL LETTER IOTA
lowercase   \x03BA        4-13                κ                   GREEK SMALL LETTER KAPPA
lowercase   \x03BB        4-123               λ                   GREEK SMALL LETTER LAMDA
lowercase   \x03BC        4-134               μ                   GREEK SMALL LETTER MU
lowercase   \x03BD        4-1345              ν                   GREEK SMALL LETTER NU
lowercase   \x03BE        4-1346              ξ                   GREEK SMALL LETTER XI
lowercase   \x03BF        4-135               ο                   GREEK SMALL LETTER OMICRON
lowercase   \x03C0        4-1234              π                   GREEK SMALL LETTER PI
lowercase   \x03C1        4-1235              ρ                   GREEK SMALL LETTER RHO
lowercase   \x03C2        4-234               ς                   GREEK SMALL LETTER FINAL SIGMA
lowercase   \x03C3        4-234               σ                   GREEK SMALL LETTER SIGMA
lowercase   \x03C4        4-2345              τ                   GREEK SMALL LETTER TAU
lowercase   \x03C5        4-136               υ                   GREEK SMALL LETTER UPSILON
lowercase   \x03C6        4-124               φ                   GREEK SMALL LETTER PHI
lowercase   \x03C7        4-12346             χ                   GREEK SMALL LETTER CHI
lowercase   \x03C8        4-13456             ψ                   GREEK SMALL LETTER PSI
lowercase   \x03C9        4-2456              ω                   GREEK SMALL LETTER OMEGA


# ----------------------------------------------------------------------------------------------
# Unicode 2000..206F  General Punctuation
# ----------------------------------------------------------------------------------------------

punctuation \x2014        36-36               —                   EM DASH
punctuation \x2015        36-36               ―                   HORIZONTAL BAR
punctuation \x2026        3-3-3               …                   HORIZONTAL ELLIPSIS


# ----------------------------------------------------------------------------------------------
# Unicode 20A0..20CF  Currency Symbols
# ----------------------------------------------------------------------------------------------

sign        \x20AC        456-15              €                   EURO SIGN


# ----------------------------------------------------------------------------------------------
