#
#  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/>
#
# ----------------------------------------------------------------------------------------------

# ==============================================================================================
# 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

space       \x0009        9                                       <control> HORIZONTAL TABULATION
space       \x000A        0                                       <control> LINE FEED
space       \x000C        0                                       <control> FORM FEED
space       \x000D        0                                       <control> CARRIAGE RETURN
space       \x001B        1b                                      <control> ESCAPE
space       \x0020        0                                       SPACE
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
space       \x00A0        a                                       NO-BREAK SPACE
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


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