# -----------
#-index-name: Tamil
#-display-name: Tamil braille
#
#+locale:ta
#+type:literary
#+contraction:no
#+grade:1
#
# TODO: Please correct the metadata above. It is not meant to be
# accurate nor complete. It hasn't been verified by the table
# author yet. It is merely an attempt by the liblouis maintainers
# to get some sensible initial values in place.
#
# TODO: Please add a reference to official documentation about
# the implemented braille code. Preferably submit the documents
# to https://github.com/liblouis/braille-specs.
# -----------
#
#  Copyright (C) 2012 Braille Section Team, Anna Centenary Library, Chennai <brailleacl@gmail.com>
#  Copyright (C) 2014 National Institute for Visually Handicapped, 116, Rajpur Road, Dehradun, Uttrakhand, India
# 
#  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/>.

# The Liblouis table for Tamil was developed by
#
#   Shankar Subbiah S <shankar@agateinfotek.in>
#   K. Navarasan
#   T. D. Dinakar <td.dinkar@gmail.com> and
#   Mesar Hameed <mesar.hameed@gmail.com>
#
# Together they go under the name of Braille Section Team, Anna
# Centenary Library as the table was tested on the Braille display
# that was available in the Anna Centinary Library, Chennai.

include text_nabcc.dis
include braille-patterns.cti # unicode braille.

punctuation	\x2018 236 #left single quote
punctuation	\x2019 356 #right single quote
punctuation	\x201c 6-236 #left quote
punctuation	\x201d 356-3 #right quote

include en-us-g1.ctb

sign	\x0b82	56	# TAMIL SIGN ANUSVARA
sign	\x0b83	6	# TAMIL SIGN VISARGA
sign	\x0b85	1	# TAMIL sign A
sign	\x0b86	345	# TAMIL sign AA
sign	\x0b87	24	# TAMIL sign I
sign	\x0b88	35	# TAMIL sign II
sign	\x0b89	136	# TAMIL sign U
sign	\x0b8a	1256	# TAMIL sign UU

sign	\x0b8e	26	# TAMIL sign E

sign	\x0b8f	15	# TAMIL sign EE
sign	\x0b90	34	# TAMIL sign AI

sign	\x0b92	1346	# TAMIL sign O

letter	\x0b93	135	# TAMIL sign OO
letter	\x0b94	246	# TAMIL sign AU
letter	\x0b95	13	# TAMIL sign KA
letter	\x0b99	346	# TAMIL sign NGA
letter	\x0b9a	14	# TAMIL sign CA
letter	\x0b9c	245	# TAMIL sign JA
letter	\x0b9e	25	# TAMIL sign NYA
letter	\x0b9f	23456	# TAMIL sign TTA
letter	\x0ba3	3456	# TAMIL sign NNA
letter	\x0ba4	2345	# TAMIL sign TA
letter	\x0ba8	1345	# TAMIL sign NA
letter	\x0ba9	56	# TAMIL sign NNNA
letter	\x0baa	1234	# TAMIL sign PA
letter	\x0bae	134	# TAMIL sign MA
letter	\x0baf	13456	# TAMIL sign YA
letter	\x0bb0	1235	# TAMIL sign RA

sign	\x0bb1	12456	# TAMIL sign RRA

sign	\x0bb2	123	# TAMIL sign LA

sign	\x0bb3	456	# TAMIL sign LLA

sign	\x0bb4	12356	# TAMIL sign LLLA

sign	\x0bb5	1236	# TAMIL sign VA
sign	\x0bb6	146	# TAMIL sign SHA
sign	\x0bb7	12346	# TAMIL sign SSA
sign	\x0bb8	234	# TAMIL sign SA
sign	\x0bb9	125	# TAMIL sign HA
sign	\x0bbe	345	# TAMIL VOWEL SIGN AA
sign	\x0bbf	24	# TAMIL VOWEL SIGN I
sign	\x0bc0	35	# TAMIL VOWEL SIGN II
sign	\x0bc1	136	# TAMIL VOWEL SIGN U
sign	\x0bc2	1256	# TAMIL VOWEL SIGN UU

sign	\x0bc6	26	# TAMIL VOWEL SIGN E

sign	\x0bc7	15	# TAMIL VOWEL SIGN EE
sign	\x0bc8	34	# TAMIL VOWEL SIGN AI

sign	\x0bca	1346	# TAMIL VOWEL SIGN O

sign	\x0bcb	135	# TAMIL VOWEL SIGN OO
sign	\x0bcc	246	# TAMIL VOWEL SIGN AU
sign	\x0bcd	4	# TAMIL SIGN VIRAMA
sign	\x0be6	245	# TAMIL DIGIT ZERO
sign	\x0be7	1	# TAMIL DIGIT ONE
sign	\x0be8	12	# TAMIL DIGIT TWO
sign	\x0be9	14	# TAMIL DIGIT THREE
sign	\x0bea	145	# TAMIL DIGIT FOUR
sign	\x0beb	15	# TAMIL DIGIT FIVE
sign	\x0bec	124	# TAMIL DIGIT SIX
sign	\x0bed	1245	# TAMIL DIGIT SEVEN
sign	\x0bee	125	# TAMIL DIGIT EIGHT
sign	\x0bef	24	# TAMIL DIGIT NINE

#--------
# half characters

always \x0b95\x0bcd 4-13
always \x0b99\x0bcd 4-346
always \x0b9a\x0bcd 4-14
always \x0b9e\x0bcd 4-25
always \x0b9f\x0bcd 4-23456
always \x0ba3\x0bcd 4-3456
always \x0ba4\x0bcd 4-2345
always \x0ba8\x0bcd 4-1345
always \x0baa\x0bcd 4-1234
always \x0bae\x0bcd 4-134
always \x0baf\x0bcd 4-13456
always \x0bb0\x0bcd 4-1235
always \x0bb2\x0bcd 4-123
always \x0bb5\x0bcd 4-1236
always \x0bb4\x0bcd 4-12356
always \x0bb3\x0bcd 4-456
always \x0bb1\x0bcd 4-12456
always \x0ba9\x0bcd 4-56
always \x0b9c\x0bcd 4-245
always \x0bb7\x0bcd 4-12346
always \x0bb8\x0bcd 4-234
always \x0bb9\x0bcd 4-125

# words and partwords
# sri
word \x0bb8\x0bcd\x0bb0\x0bc0 234

always \x0b95\x0bcd\x0bb7 12345   #ksh
always \x0b95\x0bcd\x0bb7\x0bcd 4-12345   #ksh with varama
