blob: 423e1e1d2801790dd6649deebf835a4fed2f3e71 [file] [log] [blame]
//--------------------------------------------------------------------
// Copyright (c) 1999-2000, International Business Machines
// Corporation and others. All Rights Reserved.
//--------------------------------------------------------------------
// THIS IS A MACHINE-GENERATED FILE
// Tool: src\com\ibm\tools\translit\dumpICUrules.bat
// Source: src\com\ibm\text\resources/TransliterationRule_Latin_Devanagari.java
// Date: Fri May 19 15:50:22 2000
//--------------------------------------------------------------------
// Latin-Devanagari
ldevan {
Rule {
//#####################################################################
// 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=\u0901;"
"$bindu=\u0902;"
"$visarga=\u0903;"
// w<vowel> represents the stand-alone form
"$wa=\u0905;"
"$waa=\u0906;"
"$wi=\u0907;"
"$wii=\u0908;"
"$wu=\u0909;"
"$wuu=\u090A;"
"$wr=\u090B;"
"$wl=\u090C;"
"$we=\u090F;"
"$wai=\u0910;"
"$wo=\u0913;"
"$wau=\u0914;"
"$ka=\u0915;"
"$kha=\u0916;"
"$ga=\u0917;"
"$gha=\u0918;"
"$nga=\u0919;"
"$ca=\u091A;"
"$cha=\u091B;"
"$ja=\u091C;"
"$jha=\u091D;"
"$nya=\u091E;"
"$tta=\u091F;"
"$ttha=\u0920;"
"$dda=\u0921;"
"$ddha=\u0922;"
"$nna=\u0923;"
"$ta=\u0924;"
"$tha=\u0925;"
"$da=\u0926;"
"$dha=\u0927;"
"$na=\u0928;"
"$pa=\u092A;"
"$pha=\u092B;"
"$ba=\u092C;"
"$bha=\u092D;"
"$ma=\u092E;"
"$ya=\u092F;"
"$ra=\u0930;"
"$rra=\u0931;"
"$la=\u0933;"
"$va=\u0935;"
"$sha=\u0936;"
"$ssa=\u0937;"
"$sa=\u0938;"
"$ha=\u0939;"
// <vowel> represents the dependent form
"$aa=\u093E;"
"$i=\u093F;"
"$ii=\u0940;"
"$u=\u0941;"
"$uu=\u0942;"
"$rh=\u0943;"
"$lh=\u0944;"
"$e=\u0947;"
"$ai=\u0948;"
"$o=\u094B;"
"$au=\u094C;"
"$virama=\u094D;"
"$wrr=\u0960;"
"$rrh=\u0962;"
"$danda=\u0964;"
"$doubleDanda=\u0965;"
"$depVowelAbove=[\u093E-\u0940\u0945-\u094C];"
"$depVowelBelow=[\u0941-\u0944];"
"$endThing=[$danda$doubleDanda \\u0000-\u08FF\u0980-\uFFFF];"
// $x was originally called '&'; $z was '%'
"$x=[$virama$aa$ai$au$ii$i$uu$u$rrh$rh$lh$e$o];"
"$z=[bcdfghjklmnpqrstvwxyz];"
//#####################################################################
// convert from Latin letters to Native letters
//#####################################################################
//Hindi>\u092d\u093e\u0930\u0924--\u0020\u0926\u0947\u0936\u0020\u092c\u0928\u094d\u0927\u0941\u002e
// special forms with no good conversion
"mm>$bindu;"
"x>$visarga;"
// 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>$waa;"
"ai>$wai;"
"au>$wau;"
"ii>$wii;"
"i>$wi;"
"uu>$wuu;"
"u>$wu;"
"rrh>$wrr;"
"rh>$wr;"
"lh>$wl;"
"e>$we;"
"o>$wo;"
"a>$wa;"
// normal consonants
"kh>$kha|$virama;"
"k>$ka|$virama;"
"q>$ka|$virama;"
"gh>$gha|$virama;"
"g>$ga|$virama;"
"ng>$nga|$virama;"
"ch>$cha|$virama;"
"c>$ca|$virama;"
"jh>$jha|$virama;"
"j>$ja|$virama;"
"ny>$nya|$virama;"
"tth>$ttha|$virama;"
"tt>$tta|$virama;"
"ddh>$ddha|$virama;"
"dd>$dda|$virama;"
"nn>$nna|$virama;"
"th>$tha|$virama;"
"t>$ta|$virama;"
"dh>$dha|$virama;"
"d>$da|$virama;"
"n>$na|$virama;"
"ph>$pha|$virama;"
"p>$pa|$virama;"
"bh>$bha|$virama;"
"b>$ba|$virama;"
"m>$ma|$virama;"
"y>$ya|$virama;"
"r>$ra|$virama;"
"l>$la|$virama;"
"v>$va|$virama;"
"f>$va|$virama;"
"w>$va|$virama;"
"sh>$sha|$virama;"
"ss>$ssa|$virama;"
"s>$sa|$virama;"
"z>$sa|$virama;"
"h>$ha|$virama;"
"'.'>$danda;"
"$danda'.'>$doubleDanda;"
"$depVowelAbove{'~'>$bindu;"
"$depVowelBelow{'~'>$candrabindu;"
// convert to dependent forms after consonant with no vowel:
// e.g. kai -> {ka}{virama}ai -> {ka}{ai}
"$virama aa>$aa;"
"$virama ai>$ai;"
"$virama au>$au;"
"$virama ii>$ii;"
"$virama i>$i;"
"$virama uu>$uu;"
"$virama u>$u;"
"$virama rrh>$rrh;"
"$virama rh>$rh;"
"$virama lh>$lh;"
"$virama e>$e;"
"$virama o>$o;"
"$virama a>;"
// otherwise convert independent forms when separated by ': k'ai -> {ka}{virama}{wai}
"$virama''aa>$waa;"
"$virama''ai>$wai;"
"$virama''au>$wau;"
"$virama''ii>$wii;"
"$virama''i>$wi;"
"$virama''uu>$wuu;"
"$virama''u>$wu;"
"$virama''rrh>$wrr;"
"$virama''rh>$wr;"
"$virama''lh>$wl;"
"$virama''e>$we;"
"$virama''o>$wo;"
"$virama''a>$wa;"
"$virama}$endThing>;"
// convert any left-over apostrophes used for separation
"''>;"
//#####################################################################
// convert from Native letters to Latin letters
//#####################################################################
// special forms with no good conversion
"mm<$bindu;"
"x<$visarga;"
// normal consonants
"kh<$kha}$x;"
"kha<$kha;"
"k''<$ka$virama}$ha;"
"k<$ka}$x;"
"ka<$ka;"
"gh<$gha}$x;"
"gha<$gha;"
"g''<$ga$virama}$ha;"
"g<$ga}$x;"
"ga<$ga;"
"ng<$nga}$x;"
"nga<$nga;"
"ch<$cha}$x;"
"cha<$cha;"
"c''<$ca$virama}$ha;"
"c<$ca}$x;"
"ca<$ca;"
"jh<$jha}$x;"
"jha<$jha;"
"j''<$ja$virama}$ha;"
"j<$ja}$x;"
"ja<$ja;"
"ny<$nya}$x;"
"nya<$nya;"
"tth<$ttha}$x;"
"ttha<$ttha;"
"tt''<$tta$virama}$ha;"
"tt<$tta}$x;"
"tta<$tta;"
"ddh<$ddha}$x;"
"ddha<$ddha;"
"dd''<$dda}$x$ha;"
"dd<$dda}$x;"
"dda<$dda;"
"dh<$dha}$x;"
"dha<$dha;"
"d''<$da$virama}$ha;"
"d''<$da$virama}$ddha;"
"d''<$da$virama}$dda;"
"d''<$da$virama}$dha;"
"d''<$da$virama}$da;"
"d<$da}$x;"
"da<$da;"
"th<$tha}$x;"
"tha<$tha;"
"t''<$ta$virama}$ha;"
"t''<$ta$virama}$ttha;"
"t''<$ta$virama}$tta;"
"t''<$ta$virama}$tha;"
"t''<$ta$virama}$ta;"
"t<$ta}$x;"
"ta<$ta;"
"n''<$na$virama}$ga;"
"n''<$na$virama}$ya;"
"n<$na}$x;"
"na<$na;"
"ph<$pha}$x;"
"pha<$pha;"
"p''<$pa$virama}$ha;"
"p<$pa}$x;"
"pa<$pa;"
"bh<$bha}$x;"
"bha<$bha;"
"b''<$ba$virama}$ha;"
"b<$ba}$x;"
"ba<$ba;"
"m''<$ma$virama}$ma;"
"m''<$ma$virama}$bindu;"
"m<$ma}$x;"
"ma<$ma;"
"y<$ya}$x;"
"ya<$ya;"
"r''<$ra$virama}$ha;"
"r<$ra}$x;"
"ra<$ra;"
"l''<$la$virama}$ha;"
"l<$la}$x;"
"la<$la;"
"v<$va}$x;"
"va<$va;"
"sh<$sha}$x;"
"sha<$sha;"
"ss<$ssa}$x;"
"ssa<$ssa;"
"s''<$sa$virama}$ha;"
"s''<$sa$virama}$sha;"
"s''<$sa$virama}$ssa;"
"s''<$sa$virama}$sa;"
"s<$sa}$x;"
"sa<$sa;"
"h<$ha}$x;"
"ha<$ha;"
// dependent vowels (should never occur except following consonants)
"aa<$aa;"
"ai<$ai;"
"au<$au;"
"ii<$ii;"
"i<$i;"
"uu<$uu;"
"u<$u;"
"rrh<$rrh;"
"rh<$rh;"
"lh<$lh;"
"e<$e;"
"o<$o;"
// independent vowels (when following consonants)
"''aa<a{$waa;"
"''aa<$z{$waa;"
"''ai<a{$wai;"
"''ai<$z{$wai;"
"''au<a{$wau;"
"''au<$z{$wau;"
"''ii<a{$wii;"
"''ii<$z{$wii;"
"''i<a{$wi;"
"''i<$z{$wi;"
"''uu<a{$wuu;"
"''uu<$z{$wuu;"
"''u<a{$wu;"
"''u<$z{$wu;"
"''rrh<$z{$wrr;"
"''rh<$z{$wr;"
"''lh<$z{$wl;"
"''e<$z{$we;"
"''o<$z{$wo;"
"''a<a{$wa;"
"''a<$z{$wa;"
// independent vowels (otherwise)
"aa<$waa;"
"ai<$wai;"
"au<$wau;"
"ii<$wii;"
"i<$wi;"
"uu<$wuu;"
"u<$wu;"
"rrh<$wrr;"
"rh<$wr;"
"lh<$wl;"
"e<$we;"
"o<$wo;"
"a<$wa;"
// blow away any remaining viramas
"<$virama;"
}
}