#--------------------------------------------------------------------
# Copyright (c) 1999-2001, International Business Machines
# Corporation and others.  All Rights Reserved.
#--------------------------------------------------------------------
# Date: Tue Jan 23 12:42:06 2001
#--------------------------------------------------------------------

# Latin-Devanagari

######################################################################
#	Keyboard Transliteration Table
######################################################################
# Conversions should be:
# 1. complete
#  * convert every sequence of Latin letters (a to z plus apostrophe)
#    to a sequence of Native letters
#  * convert every sequence of Native letters to Latin letters
# 2. reversable
#  * any string of Native converted to Latin and back should be the same
#  * this is not true for English converted to Native & back, e.g.:
#		k -> {kaf} -> k
#		c -> {kaf} -> k
######################################################################
# Sequences of Latin letters may convert to a single Native letter.
# When this is the case, an apostrophe can be used to indicate separate
# letters.$
# E.g.	sh -> {shin}
#		s'h -> {sin}{heh}
# 		ss -> {sad}
# 		s's -> {sin}{shadda}
######################################################################
# To Do:
#	finish adding shadda, add sokoon, fix uppercase
#	make two transliteration tables: one with vowels, one without
######################################################################
# Modifications
#	Devanagari Transliterator:  broken up with consonsants/vowels
######################################################################
# Unicode character name definitions
######################################################################

#consonants
### $candrabindu=ँ;
### $bindu=ं;
### $visarga=ः;

# w<vowel> represents the stand-alone form
### $wa=अ;
### $waa=आ;
### $wi=इ;
### $wii=ई;
### $wu=उ;
### $wuu=ऊ;
### $wr=ऋ;
### $wl=ऌ;
### $we=ए;
### $wai=ऐ;
### $wo=ओ;
### $wau=औ;

### $ka=क;
### $kha=ख;
### $ga=ग;
### $gha=घ;
### $nga=ङ;

### $ca=च;
### $cha=छ;
### $ja=ज;
### $jha=झ;
### $nya=ञ;

### $tta=ट;
### $ttha=ठ;
### $dda=ड;
### $ddha=ढ;
### $nna=ण;

### $ta=त;
### $tha=थ;
### $da=द;
### $dha=ध;
### $na=न;

### $pa=प;
### $pha=फ;
### $ba=ब;
### $bha=भ;
### $ma=म;

### $ya=य;
### $ra=र;
### $rra=ऱ;
### $la=ळ;
### $va=व;

### $sha=श;
### $ssa=ष;
### $sa=स;
### $ha=ह;

# <vowel> represents the dependent form
### $aa=ा;
### $i=ि;
### $ii=ी;
### $u=ु;
### $uu=ू;
### $rh=ृ;
### $lh=ॄ;
### $e=े;
### $ai=ै;
### $o=ो;
### $au=ौ;

### $virama=्;

### $wrr=ॠ;
### $rrh=ॢ;

### $danda=।;
### $doubleDanda=॥;
$depVowelAbove=[ा-ीॅ-ौ];
$depVowelBelow=[ु-ॄ];
$endThing=[।॥ \ -ࣿঀ-￿];

# $x was originally called '&'; $z was '%'
$x=[्ाैौीिूुॢृॄेो];
$z=[bcdfghjklmnpqrstvwxyz];

######################################################################
# convert from Latin letters to Native letters
######################################################################
#Hindi>भारत-- देश बन्धु.

# special forms with no good conversion

mm>ं;
x>ः;

# convert to independent forms at start of word or syllable:
# e.g. keai -> {ka}{e}{wai}; k'ai -> {ka}{wai}; (ai) -> ({wai})
# Moved up [LIU]

aa>आ;
ai>ऐ;
au>औ;
ii>ई;
i>इ;
uu>ऊ;
u>उ;
rrh>ॠ;
rh>ऋ;
lh>ऌ;
e>ए;
o>ओ;
a>अ;

# normal consonants

kh>ख|्;
k>क|्;
q>क|्;
gh>घ|्;
g>ग|्;
ng>ङ|्;
ch>छ|्;
c>च|्;
jh>झ|्;
j>ज|्;
ny>ञ|्;
tth>ठ|्;
tt>ट|्;
ddh>ढ|्;
dd>ड|्;
nn>ण|्;
th>थ|्;
t>त|्;
dh>ध|्;
d>द|्;
n>न|्;
ph>फ|्;
p>प|्;
bh>भ|्;
b>ब|्;
m>म|्;
y>य|्;
r>र|्;
l>ळ|्;
v>व|्;
f>व|्;
w>व|्;
sh>श|्;
ss>ष|्;
s>स|्;
z>स|्;
h>ह|्;

'.'>।;
।'.'>॥;
$depVowelAbove{'~'>ं;
$depVowelBelow{'~'>ँ;

# convert to dependent forms after consonant with no vowel:
# e.g. kai -> {ka}{virama}ai -> {ka}{ai}

् aa>ा;
् ai>ै;
् au>ौ;
् ii>ी;
् i>ि;
् uu>ू;
् u>ु;
् rrh>ॢ;
् rh>ृ;
् lh>ॄ;
् e>े;
् o>ो;
् a>;

# otherwise convert independent forms when separated by ': k'ai -> {ka}{virama}{wai}

्''aa>आ;
्''ai>ऐ;
्''au>औ;
्''ii>ई;
्''i>इ;
्''uu>ऊ;
्''u>उ;
्''rrh>ॠ;
्''rh>ऋ;
्''lh>ऌ;
्''e>ए;
्''o>ओ;
्''a>अ;

्}$endThing>;

# convert any left-over apostrophes used for separation

''>;

######################################################################
# convert from Native letters to Latin letters
######################################################################

# special forms with no good conversion

mm<ं;
x<ः;

# normal consonants

kh<ख}$x;
kha<ख;
k''<क्}ह;
k<क}$x;
ka<क;
gh<घ}$x;
gha<घ;
g''<ग्}ह;
g<ग}$x;
ga<ग;
ng<ङ}$x;
nga<ङ;
ch<छ}$x;
cha<छ;
c''<च्}ह;
c<च}$x;
ca<च;
jh<झ}$x;
jha<झ;
j''<ज्}ह;
j<ज}$x;
ja<ज;
ny<ञ}$x;
nya<ञ;
tth<ठ}$x;
ttha<ठ;
tt''<ट्}ह;
tt<ट}$x;
tta<ट;
ddh<ढ}$x;
ddha<ढ;
dd''<ड}$x ह;
dd<ड}$x;
dda<ड;
dh<ध}$x;
dha<ध;
d''<द्}ह;
d''<द्}ढ;
d''<द्}ड;
d''<द्}ध;
d''<द्}द;
d<द}$x;
da<द;
th<थ}$x;
tha<थ;
t''<त्}ह;
t''<त्}ठ;
t''<त्}ट;
t''<त्}थ;
t''<त्}त;
t<त}$x;
ta<त;
n''<न्}ग;
n''<न्}य;
n<न}$x;
na<न;
ph<फ}$x;
pha<फ;
p''<प्}ह;
p<प}$x;
pa<प;
bh<भ}$x;
bha<भ;
b''<ब्}ह;
b<ब}$x;
ba<ब;
m''<म्}म;
m''<म्}ं;
m<म}$x;
ma<म;
y<य}$x;
ya<य;
r''<र्}ह;
r<र}$x;
ra<र;
l''<ळ्}ह;
l<ळ}$x;
la<ळ;
v<व}$x;
va<व;
sh<श}$x;
sha<श;
ss<ष}$x;
ssa<ष;
s''<स्}ह;
s''<स्}श;
s''<स्}ष;
s''<स्}स;
s<स}$x;
sa<स;
h<ह}$x;
ha<ह;

# dependent vowels (should never occur except following consonants)

aa<ा;
ai<ै;
au<ौ;
ii<ी;
i<ि;
uu<ू;
u<ु;
rrh<ॢ;
rh<ृ;
lh<ॄ;
e<े;
o<ो;

# independent vowels (when following consonants)

''aa<a{आ;
''aa<$z{आ;
''ai<a{ऐ;
''ai<$z{ऐ;
''au<a{औ;
''au<$z{औ;
''ii<a{ई;
''ii<$z{ई;
''i<a{इ;
''i<$z{इ;
''uu<a{ऊ;
''uu<$z{ऊ;
''u<a{उ;
''u<$z{उ;
''rrh<$z{ॠ;
''rh<$z{ऋ;
''lh<$z{ऌ;
''e<$z{ए;
''o<$z{ओ;
''a<a{अ;
''a<$z{अ;


# independent vowels (otherwise)

aa<आ;
ai<ऐ;
au<औ;
ii<ई;
i<इ;
uu<ऊ;
u<उ;
rrh<ॠ;
rh<ऋ;
lh<ऌ;
e<ए;
o<ओ;
a<अ;

# blow away any remaining viramas

<्;

# eof
