#+locale:fr
#+type:literary
#+contraction:no
#+dots:6
#+system:bfu

#-index-name: French, uncontracted
#-display-name: French uncontracted braille
#-author: Michel Such <michel.such@free.fr>
#-author: André-Abush CLAUSE <dev@andreabc.net>
#-author: Ludovic Oger <oger.ludovic@gmail.com>
#-author: Nicolas Pitre <nico@cam.org>
#-author: The BRLTTY Team <http://brltty.com/>
#-license: LGPLv2.1
#-updated: 2019-03-21

# liblouis: French 6 dots Braille table

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

#	Référence :
#		Code braille français uniformisé | association Valentin Haüy - Révision 2008
#		http://www.avh.asso.fr/fr/tout-savoir-sur-le-braille/lecriture-braille/code-braille-francais-uniformise
#	Association Valentin Haüy
#		5, rue Duroc 75343 Paris Cedex 07

# Uncontracted French Table
# ---------------------------------

space \t 9 tab    # 9
space \x001B 1b   # escape
space \x00A0 a    # no-break space
include spaces.uti
space \x007f 0

undefined 0

display ¨ 46
display : 25
display " 2356
display ! 235
display - 36
display . 256
display / 34
display * 35
display | 456
display ¸ 456
display ¤ 45
display „ 56
display ^ 4
display \s 0
display @ 345
display ó 346

include latinLetterDef6Dots.uti

punctuation , 2    # virgule
punctuation ; 23   # point-virgule
punctuation : 25   # deux-points
punctuation . 256  # point
punctuation ? 26   # point d'interrogation
punctuation ! 235  # point d'exclamation
punctuation " 2356 # guillemet
punctuation ( 236  # parenthèse ouvrante
punctuation ) 356  # parenthèse fermante
punctuation ' 3    #  apostrophe
punctuation « 2356 # guillemet français ouvrant
punctuation » 2356 # guillemet français fermant
punctuation [ 45-236  # crochet droit ouvrant
comp6 [ 45-236
punctuation ] 356-12	#	crochet droit fermant
comp6 ] 356-12
punctuation { 6-6-236	#	accolade de gauche
punctuation } 356-3-3	#	accolade de droite

uplow \x00c7\x00e7  12346 # c cédille (Çç)
uplow \x00c6\x00E6 345     #*ae
uplow \x0152\x0153    246 # oe liés (Œœ)
uplow \x00C3\x00E3 5-26-1		a tilde
noback uplow \x00d1\x00f1 12456 # n tilde (Ññ)

uplow \x00c0\x00e0  12356 # a accent grave (Àà)
uplow \x00c8\x00e8   2346 # e accent grave (Èè)
uplow \x00d9\x00f9  23456 # u accent grave (Ùù)
noback uplow \x00cc\x00ec  34 # i accent grave (Ìì)
noback uplow \x00d2\x00f2 346 # o accent grave (Òò)

uplow \x00c2\x00e2     16 # a accent circonflexe (Ââ)
uplow \x00ca\x00ea    126 # e accent circonflexe (Êê)
uplow \x00ce\x00ee    146 # i accent circonflexe (Îî)
uplow \x00d4\x00f4   1456 # o accent circonflexe (Ôô)
uplow \x00db\x00fb    156 # u accent circonflexe (Ûû)

uplow \x00c1\x00e1  12356 # a accent aigu (Áá)
uplow \x00c9\x00e9 123456 # e accent aigu (Éé)
uplow \x00d3\x00f3    346 # o accent aigu (Óó)
uplow \x00da\x00fa  23456 # u accent aigu (Úú)
noback uplow \x00cd\x00ed 34 # i accent aigu (Íí)

uplow \x00c4\x00e4    345 # a tréma (Ää)
uplow \x00cb\x00eb   1246 # e tréma (Ëë)
uplow \x00cf\x00ef  12456 # i tréma (Ïï)
uplow \x00d6\x00f6    246 # o tréma (Öö)
uplow \x00dc\x00fc   1256 # u tréma (Üü)
uplow \x00C5\x00e5 5-1       #*latin capital letter a with ring above (unofficial)
uplow \x00d8\x00f8 56-246 # o barré (non officiel)

digit 0 3456
litdigit        0      3456
comp6 0 3456

include digits6DotsPlusDot6.uti
include litdigits6DotsPlusDot6.uti

math + 235  # plus
math - 36
math * 35   # astérisque
math / 34   # barre oblique
math = 2356 # égal
math ( 236
math ) 356

math \x00F7 25     # divisé par
math \x003c 5-126  # inférieur à
math \x003e 5-345  # supérieur à

# guillemets
punctuation \x00AB 2356     # right-pointing double angle quotation mark
punctuation \x00BB 2356     # left-pointing double angle quotation mark
punctuation \x2018 2356     # left single quotation mark
punctuation \x2019 2356     # right single quotation mark
punctuation \x201C 2356     # left double quotation mark
punctuation \x201D 2356     # right double quotation mark
sign \x201E 56     # double low-9 quotation mark
punctuation \x201F 2356     # double high-reversed-9 quotation mark
punctuation \x275B 2356     # heavy single turned comma quotation mark ornament
punctuation \x275C 2356     # heavy single comma quotation mark ornament
punctuation \x275D 2356     # heavy double turned comma quotation mark ornament
punctuation \x275E 2356     # heavy double comma quotation mark ornament
punctuation \x275F 2356     # heavy low single comma quotation mark ornament
punctuation \x2760 2356     # heavy low double comma quotation mark ornament

noback sign \x200e 0        # (left to right mark)
noback sign \x200f 0        # (right to left mark)
sign ¸ 456           # cédille

# tirets et traits d'union
punctuation - 36         # hyphen-minus
sign \x2010 36           # hyphen
sign \x2011 36           # non-breaking hyphen
sign \x2012 36           # figure dash
sign \x2013 36           # (en dash)
sign \x2014 36           # (em dash)
noback sign \x2015 36-36 # horizontal bar (quotation dash long dash introducing quoted text)
sign \xFE58 36           # small em dash
sign \xFE63 36           # small hyphen-minus
sign \xFF0D 36           # fullwidth hyphen-minus

word — 456-36
word – 36-36

sign \x2022 246-135      # (bullet)
sign \x2026 256-256-256  # 8230	MS Word smart ellipsis
sign \x25cf 35           # black circle
sign \xf0b7 1245         # (bullet MS symbol font?)

sign \\ 5-34         # barre oblique inversée
sign @ 345           # arobase
sign \x0023 5-3456   # croisillon
comp6 \x0023 5-3456  # # croisillon
sign \xFE5F 5-3456   # croisillon minuscule
sign \xFF03 5-3456   # croisillon pleine chasse
sign % 5-346         # pourcent
sign ‰ 5-346-346     # pour mille
sign * 5-35          # astérisque
sign _ 5-36          # souligné
noback sign ´ 5
sign \x0060 6   # accent aigu (`)
sign \x007C 456 # barre verticale
sign \x0083 124      # [latin small letter f with hook (no break here)
sign \x0084 56       # [double low-9 quotation mark (<control>)
sign \x0085 36       # [horizontal ellipsis (next line)
sign \x0086 356      # [dagger (start of selected area)
sign \x0087 3567     # [double dagger (end of selected area)
noback sign \x0088 4 # [modifier letter circumflex accent (character tabulation set)
sign \x0089 346      # [per mille sign (character tabulation with justification)
noback sign \x008B 5 # [single left-pointing angle quotation mark] (partial line down)
sign \x0095 1245     # [bullet] (message waiting)
noback sign \x0096 36-36      # [en dash] (start of guarded area)
noback sign \x0097 36-36      # [em dash] (end of guarded area)
sign \x0098 46     # [small tilde] (start of string)
sign \x0099 2345   # [trade mark sign] (<control>)
sign \x2122 5-2345 # TRADE MARK SIGN
noback sign \x009B 5 # [single right-pointing angle quotation mark] (control sequence introducer)
sign \x00A1 235      # inverted exclamation mark
noback sign \x00A6 45      # broken bar
sign \x00A8 46      # diaeresis
noback sign \x00AA 16      # feminine ordinal indicator
sign \x00AC 256       # not sign
noback sign \x00AD 0  # soft hyphen
sign \x00AE 5-1235  # registered sign
sign \x00B1 235-36  # plus-minus sign
sign \x00B5 45-134  # micro sign
sign \x00B6 456     # pilcrow sign
noback sign \x00B7 0       # middle dot
sign \x00BA 26      # masculine ordinal indicator

sign \x00BF 26      #*inverted question mark
sign \x00D0 12      # latin capital letter eth
sign \x00D7 5-35    # multiplication sign
sign \x00D8 3456    # latin capital letter o with stroke
sign \x00DE 245     # latin capital letter thorn
sign \x00DF 234     # latin small letter sharp s
uplow \x00c6\x00E6 345     #*ae
sign \x00F0 12      # latin small letter eth
sign \x00FE 245     # latin small letter thorn
sign © 5-14				  # copyright
sign ° 5-135			  # degré
sign & 5-123456		  # perluète (et commercial)
sign ¢ 45-14  		  # cent
sign € 45-15			  # euro
sign £ 45-123			  # livre
sign $ 45-234			  # dollar
comp6 $ 45-234
sign ¥ 45-13456		  # yen
sign ¤ 6-45					  # symbole monétaire
sign § 5-1234			  # paragraphe

sign ^ 4 # accent circonflexe
noback sign ¹ 4-16  # exposant 1
noback sign ² 4-126 # exposant 2
noback sign ³ 4-146 # exposant 3
sign ¼ 16-34-1456   # un quart
sign ½ 16-34-126    # un demi
sign ¾ 146-34-1456  # trois quarts
sign \x007E 5-26  # 126 ~    tilde

# unicode braille
include braille-patterns.cti

# other signs: 8 and 6 dots
include fr-bfu-comp68.cti
# with a few exceptions...
noback math \x00B1 235-36 ± plus ou moins
noback math \x00D7 35 × multiplié par
noback math \x2715 35 ✕ multiplié par
noback math \x00B7 35-35 · point multiplicatif ; produit scalaire
noback math \x00F7 25 ÷ divisé par

# Braille indicators
numsign 6             # number sign, just a dots operand
numericmodechars ^,:.+-*/()=[]
numericnocontchars 0123456789

# Capitalization
capsletter 46
begcaps 46
begcapsword 46-46
endcapsword 6-3 # The first method is not compatible with liblouis, so use of the alternative method (official but less common)
capsmodechars -'./

# Capital 'phrase' possible but lot of issues with single letters: https://github.com/liblouis/liblouis/issues/706
# begcapsphrase 25-46
# endcapsphrase before 46
# lencapsphrase 4

# Emphasis
emphclass italic
emphclass underline
emphclass bold
emphletter italic 456
emphletter underline 456
emphletter bold 456
begemphword italic 456
begemphword underline 456
begemphword bold 456
endemphword italic 6-3
endemphword underline 6-3
endemphword bold 6-3
begemphphrase italic 25-456
endemphphrase italic before 456
lenemphphrase italic 4
begemphphrase underline 25-456
endemphphrase underline before 456
lenemphphrase underline 4
begemphphrase bold 25-456
endemphphrase bold before 456
lenemphphrase bold 4

# WIP
# Remove space from punctuation
# noback correct "\x00A0»" "»"
# noback correct "«\x00A0" "«"
# noback correct "\s;" ";"
# noback correct "\s:" ":"
# noback correct "\s?" "?"
# noback correct "\s!" "!"

noback midword \x2019 3     # right single quotation mark
midnum \s 0						# espace entre les chiffres
midnum - 36
midnum + 235
endnum + 235
midnum = 2356
endnum = 2356
midnum / 34
endnum / 34
decpoint , 2

math [ 12356
math ] 23456
midnum [ 12356
endnum [ 12356
midnum ] 23456
endnum ] 23456
midnum ( 236
endnum ( 236
midnum ) 356
endnum ) 356

postpunc , 2
postpunc ; 23
postpunc : 25
postpunc . 256
postpunc ? 26
postpunc ! 235
prepunc « 2356	    # guillemet français ouvrant
postpunc » 2356	   # guillemet français fermant
prepunc ( 236      # parenthèse ouvrante
postpunc ) 356     # parenthèse fermante
prepunc [ 45-236  # crochet droit ouvrant
postpunc ] 356-12	#	crochet droit fermant
prepunc { 6-6-236	#	accolade de gauche
postpunc } 356-3-3	#	accolade de droite


repeated ... 256-256-256		#	points de suspension
repeated --- 36-36-36
repeated ___ 456-456-456

word = 6-2356
word + 6-235
begword + 6-235
begword = 6-2356
midword + 6-235
midword = 6-2356
endword + 6-235
endword = 6-2356

nofor pass2 [@6-235]$d @6-235-6
nofor pass2 [@6-2356]$d @6-2356-6
