blob: 730d81da79cbbc42d29cc24c6d58daee8fabf24c [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_Kana.java
// Date: Wed Jul 5 16:11:19 2000
//--------------------------------------------------------------------
// Latin-Kana
lkana {
Rule {
// Japanese hiragana and katakana to and from latin
// (romaji). Lower case latin corresponds to hiragana;
// upper case latin to katakana. The handling of
// Hiragana and Katakana is largely the same. The bulk
// of the transliterator consists of two identical sets
// of rules, differing only in case.
// Because of minor differences between the two blocks
// (e.g., the existence of small katakana ka and ke, but
// no corresponding hiragana), some rules exist for only
// one script.
// Uses modified Hepburn. Small changes to make
// unambiguous.
//| Kunrei-shiki: Hepburn/MHepburn
//| ------------------------------
//| si: shi
//| si ~ya: sha
//| si ~yu: shu
//| si ~yo: sho
//| zi: ji
//| zi ~ya: ja
//| zi ~yu: ju
//| zi ~yo: jo
//| ti: chi
//| ti ~ya: cha
//| ti ~yu: chu
//| ti ~yu: cho
//| tu: tsu
//| di: ji/dji
//| du: zu/dzu
//| hu: fu
//| For foreign words:
//| -----------------
//| se ~i si
//| si ~e she
//|
//| ze ~i zi
//| zi ~e je
//|
//| te ~i ti
//| ti ~e che
//| te ~u tu
//|
//| de ~i di
//| de ~u du
//| de ~i di
//|
//| he ~u: hu
//| hu ~a fa
//| hu ~i fi
//| hu ~e he
//| hu ~o ho
// Most small forms are generated, but if necessary
// explicit small forms are given with ~a, ~ya, etc.
//------------------------------------------------------
// Variables
"$vowel=[aeiou];"
"$QUOTE='';"
// Hiragana block
"$a2=\u3041;"
"$a=\u3042;"
"$i2=\u3043;"
"$i=\u3044;"
"$u2=\u3045;"
"$u=\u3046;"
"$e2=\u3047;"
"$e=\u3048;"
"$o2=\u3049;"
"$o=\u304A;"
"$ka=\u304B;"
"$ga=\u304C;"
"$ki=\u304D;"
"$gi=\u304E;"
"$ku=\u304F;"
"$gu=\u3050;"
"$ke=\u3051;"
"$ge=\u3052;"
"$ko=\u3053;"
"$go=\u3054;"
"$sa=\u3055;"
"$za=\u3056;"
"$si=\u3057;"
"$zi=\u3058;"
"$su=\u3059;"
"$zu=\u305A;"
"$se=\u305B;"
"$ze=\u305C;"
"$so=\u305D;"
"$zo=\u305E;"
"$ta=\u305F;"
"$da=\u3060;"
"$ti=\u3061;"
"$di=\u3062;"
"$tu2=\u3063;"
"$tu=\u3064;"
"$du=\u3065;"
"$te=\u3066;"
"$de=\u3067;"
"$to=\u3068;"
"$do=\u3069;"
"$na=\u306A;"
"$ni=\u306B;"
"$nu=\u306C;"
"$ne=\u306D;"
"$no=\u306E;"
"$ha=\u306F;"
"$ba=\u3070;"
"$pa=\u3071;"
"$hi=\u3072;"
"$bi=\u3073;"
"$pi=\u3074;"
"$hu=\u3075;"
"$bu=\u3076;"
"$pu=\u3077;"
"$he=\u3078;"
"$be=\u3079;"
"$pe=\u307A;"
"$ho=\u307B;"
"$bo=\u307C;"
"$po=\u307D;"
"$ma=\u307E;"
"$mi=\u307F;"
"$mu=\u3080;"
"$me=\u3081;"
"$mo=\u3082;"
"$ya2=\u3083;"
"$ya=\u3084;"
"$yu2=\u3085;"
"$yu=\u3086;"
"$yo2=\u3087;"
"$yo=\u3088;"
"$ra=\u3089;"
"$ri=\u308A;"
"$ru=\u308B;"
"$re=\u308C;"
"$ro=\u308D;"
"$wa2=\u308E;"
"$wa=\u308F;"
"$wi=\u3090;"
"$we=\u3091;"
"$wo=\u3092;"
"$n=\u3093;"
"$vu=\u3094;"
// Alternates, just to make the rules easier
"$yi2=\u3043;"
"$yi=\u3044;"
"$ye2=\u3047;"
"$ye=\u3048;"
"$wu=$u;"
// End alternates
// Katakana block
"$A2=\u30A1;"
"$A=\u30A2;"
"$I2=\u30A3;"
"$I=\u30A4;"
"$U2=\u30A5;"
"$U=\u30A6;"
"$E2=\u30A7;"
"$E=\u30A8;"
"$O2=\u30A9;"
"$O=\u30AA;"
"$KA=\u30AB;"
"$GA=\u30AC;"
"$KI=\u30AD;"
"$GI=\u30AE;"
"$KU=\u30AF;"
"$GU=\u30B0;"
"$KE=\u30B1;"
"$GE=\u30B2;"
"$KO=\u30B3;"
"$GO=\u30B4;"
"$KA2=\u30F5;" // Small Katakana KA; no Hiragana equiv.
"$KE2=\u30F6;" // Small Katakana KE; no Hiragana equiv.
"$SA=\u30B5;"
"$ZA=\u30B6;"
"$SI=\u30B7;"
"$ZI=\u30B8;"
"$SU=\u30B9;"
"$ZU=\u30BA;"
"$SE=\u30BB;"
"$ZE=\u30BC;"
"$SO=\u30BD;"
"$ZO=\u30BE;"
"$TA=\u30BF;"
"$DA=\u30C0;"
"$TI=\u30C1;"
"$DI=\u30C2;"
"$TU2=\u30C3;"
"$TU=\u30C4;"
"$DU=\u30C5;"
"$TE=\u30C6;"
"$DE=\u30C7;"
"$TO=\u30C8;"
"$DO=\u30C9;"
"$NA=\u30CA;"
"$NI=\u30CB;"
"$NU=\u30CC;"
"$NE=\u30CD;"
"$NO=\u30CE;"
"$HA=\u30CF;"
"$BA=\u30D0;"
"$PA=\u30D1;"
"$HI=\u30D2;"
"$BI=\u30D3;"
"$PI=\u30D4;"
"$HU=\u30D5;"
"$BU=\u30D6;"
"$PU=\u30D7;"
"$HE=\u30D8;"
"$BE=\u30D9;"
"$PE=\u30DA;"
"$HO=\u30DB;"
"$BO=\u30DC;"
"$PO=\u30DD;"
"$MA=\u30DE;"
"$MI=\u30DF;"
"$MU=\u30E0;"
"$ME=\u30E1;"
"$MO=\u30E2;"
"$YA2=\u30E3;"
"$YA=\u30E4;"
"$YU2=\u30E5;"
"$YU=\u30E6;"
"$YO2=\u30E7;"
"$YO=\u30E8;"
"$WA2=\u30EE;"
// Alternates, just to make the rules easier
"$YI2=\u30A3;"
"$YI=\u30A4;"
"$YE2=\u30A7;"
"$YE=\u30A8;"
"$WU=$U;"
// End alternates
"$RA=\u30E9;"
"$RI=\u30EA;"
"$RU=\u30EB;"
"$RE=\u30EC;"
"$RO=\u30ED;"
"$VA=\u30F7;"
"$VI=\u30F8;"
"$VU=\u30F4;"
"$VE=\u30F9;"
"$VO=\u30FA;"
"$WA=\u30EF;"
"$WI=\u30F0;"
"$WE=\u30F1;"
"$WO=\u30F2;"
"$N=\u30F3;"
"$LONG=\u30FC;"
// Variables used for doubled-consonants with tsu
"$K_START=[$KA$KI$KU$KE$KO$ka$ki$ku$ke$ko];"
"$G_START=[$GA$GI$GU$GE$GO$ga$gi$gu$ge$go];"
"$S_START=[$SA$SI$SU$SE$SO$sa$si$su$se$so];"
"$Z_START=[$ZA$ZU$ZE$ZO$za$zu$ze$zo];"
"$J_START=[$ZI$zi];"
"$T_START=[$TA$TI$TU$TE$TO$ta$ti$tu$te$to];"
"$D_START=[$DA$DI$DU$DE$DO$da$di$du$de$do];"
"$N_START=[$NA$NI$NU$NE$NO$na$ni$nu$ne$no];"
"$H_START=[$HA$HI$HE$HO$ha$hi$he$ho];"
"$F_START=[$HU$hu];"
"$B_START=[$BA$BI$BU$BE$BO$ba$bi$bu$be$bo];"
"$P_START=[$PA$PI$PU$PE$PO$pa$pi$pu$pe$po];"
"$M_START=[$MA$MI$MU$ME$MO$ma$mi$mu$me$mo];"
"$Y_START=[$YA$YU$YO$ya$yu$yo];"
"$R_START=[$RA$RI$RU$RE$RO$ra$ri$ru$re$ro];"
"$W_START=[$WA$WI$WE$WO$wa$wi$we$wo];"
"$V_START=[$VA$VI$VU$VE$VO$vu];"
// If $N is followed by $N_QUOTER, then it needs an
// apostrophe after its romaji form to disambiguate it.
// E.g., $N $A != $NA, so represent as "n'a", not "na".
"$N_QUOTER = [$A $I $U $E $O $NA $NI $NU $NE $NO"
" $YA $YU $YO $N];"
"$n_quoter = [$a $i $u $e $o $na $ni $nu $ne $no"
" $ya $yu $yo $n];"
// Lowercase copies for convenience in making hiragana
// rule set copy
"$long = $LONG;"
"$quote = $QUOTE;"
"$k_start=$K_START;"
"$g_start=$G_START;"
"$s_start=$S_START;"
"$z_start=$Z_START;"
"$j_start=$J_START;"
"$t_start=$T_START;"
"$d_start=$D_START;"
"$n_start=$N_START;"
"$h_start=$H_START;"
"$f_start=$F_START;"
"$b_start=$B_START;"
"$p_start=$P_START;"
"$m_start=$M_START;"
"$y_start=$Y_START;"
"$r_start=$R_START;"
"$w_start=$W_START;"
"$v_start=$V_START;"
//------------------------------------------------------
// Katakana rules
// The rules immediately following are not shared. That
// is, they exist only for katakana, not for hiragana.
"VA<>$VA;"
"VI<>$VI;"
"VE<>$VE;"
"VO<>$VO;"
"'~KA'<>$KA2;"
"'~KE'<>$KE2;"
// ~~~ BEGIN shared rules ~~~
// The shared rules are copied from katakana to hiragana
// and then mechanically lowercased.
"A<>$A;"
"BA<>$BA;"
"BYA<$BI$YA2;"
"BYI<$BI$I2;"
"BYU<$BI$YU2;"
"BYE<$BI$E2;"
"BYO<$BI$YO2;"
"BI<>$BI;"
"BU<>$BU;"
"BE<>$BE;"
"BO<>$BO;"
"BY>$BI|'~Y';"
"CHA<$TI$YA2;"
"CHI'~I'<$TI$I2;" // Liu
"CHU<$TI$YU2;"
"CHE<$TI$E2;"
"CHO<$TI$YO2;"
"CHI<>$TI;"
"CH>$TI|'~Y';"
"C}I>|S;"
"C}E>|S;"
"DA<>$DA;"
"DI<>$DE$I2;"
"DU<>$DE$U2;"
"DE<>$DE;"
"DO<>$DO;"
"DZU<>$DU;"
"DJA<$DI$YA2;"
"DJI'~I'<$DI$I2;" // Liu
"DJU<$DI$YU2;"
"DJE<$DI$E2;"
"DJO<$DI$YO2;"
"DJI<>$DI;"
"DJ>$DI|'~Y';"
"E<>$E;"
"FA<$HU$A2;"
"FI<$HU$I2;"
"FE<$HU$E2;"
"FO<$HU$O2;"
"FU<>$HU;"
"GA<>$GA;"
"GYA<$GI$YA2;"
"GYI<$GI$I2;"
"GYU<$GI$YU2;"
"GYE<$GI$E2;"
"GYO<$GI$YO2;"
"GI<>$GI;"
"GU<>$GU;"
"GE<>$GE;"
"GO<>$GO;"
"GY>$GI|'~Y';"
"HA<>$HA;"
"HI<>$HI;"
"HU<>$HE$U2;"
"HE<>$HE;"
"HO<>$HO;"
"I<>$I;"
"JA<$ZI$YA2;"
"JI'~I'<$ZI$I2;" // Liu
"JU<$ZI$YU2;"
"JE<$ZI$E2;"
"JO<$ZI$YO2;"
"JI<>$ZI;"
"KA<>$KA;"
"KYA<$KI$YA2;"
"KYI<$KI$I2;"
"KYU<$KI$YU2;"
"KYE<$KI$E2;"
"KYO<$KI$YO2;"
"KI<>$KI;"
"KU<>$KU;"
"KE<>$KE;"
"KO<>$KO;"
"KY>$KI|'~Y';"
"MA<>$MA;"
"MYA<$MI$YA2;"
"MYI<$MI$I2;"
"MYU<$MI$YU2;"
"MYE<$MI$E2;"
"MYO<$MI$YO2;"
"MI<>$MI;"
"MU<>$MU;"
"ME<>$ME;"
"MO<>$MO;"
"MY>$MI|'~Y';"
"M}P>$N;"
"M}B>$N;"
"M}F>$N;"
"M}V>$N;"
"NA<>$NA;"
"NYA<$NI$YA2;"
"NYI<$NI$I2;"
"NYU<$NI$YU2;"
"NYE<$NI$E2;"
"NYO<$NI$YO2;"
"NI<>$NI;"
"NU<>$NU;"
"NE<>$NE;"
"NO<>$NO;"
"NY>$NI|'~Y';"
"O<>$O;"
"PA<>$PA;"
"PYA<$PI$YA2;"
"PYI<$PI$I2;"
"PYU<$PI$YU2;"
"PYE<$PI$E2;"
"PYO<$PI$YO2;"
"PI<>$PI;"
"PU<>$PU;"
"PE<>$PE;"
"PO<>$PO;"
"PY>$PI|'~Y';"
"RA<>$RA;"
"RYA<$RI$YA2;"
"RYI<$RI$I2;"
"RYU<$RI$YU2;"
"RYE<$RI$E2;"
"RYO<$RI$YO2;"
"RI<>$RI;"
"RU<>$RU;"
"RE<>$RE;"
"RO<>$RO;"
"RY>$RI|'~Y';"
"SA<>$SA;"
"SI<>$SE$I2;"
"SU<>$SU;"
"SE<>$SE;"
"SO<>$SO;"
"SHA<$SI$YA2;"
"SHI'~I'<$SI$I2;" // Liu
"SHU<$SI$YU2;"
"SHE<$SI$E2;"
"SHO<$SI$YO2;"
"SHI<>$SI;"
"SH>$SI|'~Y';"
"TA<>$TA;"
"TI<>$TE$I2;"
"TU<>$TE$U2;"
"TE<>$TE;"
"TO<>$TO;"
// Double consonants
"B}B<>$TU2}$B_START;"
"C}K>$TU2;"
"C}C>$TU2;"
"C}Q>$TU2;"
"D}D<>$TU2}$D_START;"
"F}F<>$TU2}$F_START;"
"G}G<>$TU2}$G_START;"
"H}H<>$TU2}$H_START;"
"J}J<>$TU2}$J_START;"
"K}K<>$TU2}$K_START;"
"L}L>$TU2;"
"M}M<>$TU2}$M_START;"
"N}N<>$TU2}$N_START;"
"P}P<>$TU2}$P_START;"
"Q}Q>$TU2;"
"R}R<>$TU2}$R_START;"
"S}SH>$TU2;"
"S}S<>$TU2}$S_START;"
"T}CH>$TU2;"
"T}T<>$TU2}$T_START;"
"V}V<>$TU2}$V_START;"
"W}W<>$TU2}$W_START;"
"X}X>$TU2;"
"Y}Y<>$TU2}$Y_START;"
"Z}Z<>$TU2}$Z_START;"
"TSU<>$TU;"
"U<>$U;"
"'V~A'<$VU$A2;" // Liu
"'V~I'<$VU$I2;" // Liu
"'V~E'<$VU$E2;" // Liu
"'V~O'<$VU$O2;" // Liu
"VU<>$VU;"
"WA<>$WA;"
"WI<>$WI;"
"WU>$WU;"
"WE<>$WE;"
"WO<>$WO;"
"YA<>$YA;"
"YI>$YI;"
"YU<>$YU;"
"YE>$YE;"
"YO<>$YO;"
"ZA<>$ZA;"
"ZI<>$ZE$I2;"
"ZU<>$ZU;"
"ZE<>$ZE;"
"ZO<>$ZO;"
// Prolonged vowel mark. This indicates a doubling of
// the preceding vowel sound in both katakana and
// hiragana.
"A<A{$LONG;" // Liu
"E<E{$LONG;" // Liu
"I<I{$LONG;" // Liu
"O<O{$LONG;" // Liu
"U<U{$LONG;" // Liu
// Small forms
"'~A'<>$A2;"
"'~I'<>$I2;"
"'~U'<>$U2;"
"'~E'<>$E2;"
"'~O'<>$O2;"
"'~TSU'<>$TU2;"
"'~WA'<>$WA2;"
"'~YA'<>$YA2;"
"'~YI'>$YI2;"
"'~YU'<>$YU2;"
"'~YE'>$YE2;"
"'~YO'<>$YO2;"
// One-way latin->kana rules. These do not occur in
// well-formed romaji representing actual Japanese text.
// Their purpose is to make all romaji map to kana of
// some sort.
// The following are not really necessary, but produce
// slightly more natural results.
"CY>$SE$I2;"
"DY>$DE$I2;"
"HY>$HI;"
"SY>$SE$I2;"
"TY>$TE$I2;"
"ZY>$ZE$I2;"
// Simple substitutions using backup
"C>|K;"
"F>$HU|'~';"
"J>$ZI|'~Y';"
"L>|R;"
"Q>|K;"
"V>$VU|'~';"
"W>$U|'~';"
"X>|KS;"
// Isolated consonants listed here so as not to mask
// longer rules above.
"B>$BU;"
"D>$DE;"
"G>$GU;"
"H>$HE;"
"K>$KU;"
"M>$N;"
"N''<$N}$N_QUOTER;"
"N<>$N;"
"P>$PU;"
"R>$RU;"
"S>$SU;"
"T>$TE;"
"Y>$I;"
"Z>$ZU;"
// ~~~ END shared rules ~~~
//------------------------------------------------------
// Hiragana rules
// Currently, there are no hiragana rules other than the
// shared rules.
// ~~~ BEGIN shared rules ~~~
// The shared rules are copied from katakana to hiragana
// and then mechanically lowercased.
"a<>$a;"
"ba<>$ba;"
"bya<$bi$ya2;"
"byi<$bi$i2;"
"byu<$bi$yu2;"
"bye<$bi$e2;"
"byo<$bi$yo2;"
"bi<>$bi;"
"bu<>$bu;"
"be<>$be;"
"bo<>$bo;"
"by>$bi|'~y';"
"cha<$ti$ya2;"
"chi'~i'<$ti$i2;" // liu
"chu<$ti$yu2;"
"che<$ti$e2;"
"cho<$ti$yo2;"
"chi<>$ti;"
"ch>$ti|'~y';"
"c}i>|s;"
"c}e>|s;"
"da<>$da;"
"di<>$de$i2;"
"du<>$de$u2;"
"de<>$de;"
"do<>$do;"
"dzu<>$du;"
"dja<$di$ya2;"
"dji'~i'<$di$i2;" // liu
"dju<$di$yu2;"
"dje<$di$e2;"
"djo<$di$yo2;"
"dji<>$di;"
"dj>$di|'~y';"
"e<>$e;"
"fa<$hu$a2;"
"fi<$hu$i2;"
"fe<$hu$e2;"
"fo<$hu$o2;"
"fu<>$hu;"
"ga<>$ga;"
"gya<$gi$ya2;"
"gyi<$gi$i2;"
"gyu<$gi$yu2;"
"gye<$gi$e2;"
"gyo<$gi$yo2;"
"gi<>$gi;"
"gu<>$gu;"
"ge<>$ge;"
"go<>$go;"
"gy>$gi|'~y';"
"ha<>$ha;"
"hi<>$hi;"
"hu<>$he$u2;"
"he<>$he;"
"ho<>$ho;"
"i<>$i;"
"ja<$zi$ya2;"
"ji'~i'<$zi$i2;" // liu
"ju<$zi$yu2;"
"je<$zi$e2;"
"jo<$zi$yo2;"
"ji<>$zi;"
"ka<>$ka;"
"kya<$ki$ya2;"
"kyi<$ki$i2;"
"kyu<$ki$yu2;"
"kye<$ki$e2;"
"kyo<$ki$yo2;"
"ki<>$ki;"
"ku<>$ku;"
"ke<>$ke;"
"ko<>$ko;"
"ky>$ki|'~y';"
"ma<>$ma;"
"mya<$mi$ya2;"
"myi<$mi$i2;"
"myu<$mi$yu2;"
"mye<$mi$e2;"
"myo<$mi$yo2;"
"mi<>$mi;"
"mu<>$mu;"
"me<>$me;"
"mo<>$mo;"
"my>$mi|'~y';"
"m}p>$n;"
"m}b>$n;"
"m}f>$n;"
"m}v>$n;"
"na<>$na;"
"nya<$ni$ya2;"
"nyi<$ni$i2;"
"nyu<$ni$yu2;"
"nye<$ni$e2;"
"nyo<$ni$yo2;"
"ni<>$ni;"
"nu<>$nu;"
"ne<>$ne;"
"no<>$no;"
"ny>$ni|'~y';"
"o<>$o;"
"pa<>$pa;"
"pya<$pi$ya2;"
"pyi<$pi$i2;"
"pyu<$pi$yu2;"
"pye<$pi$e2;"
"pyo<$pi$yo2;"
"pi<>$pi;"
"pu<>$pu;"
"pe<>$pe;"
"po<>$po;"
"py>$pi|'~y';"
"ra<>$ra;"
"rya<$ri$ya2;"
"ryi<$ri$i2;"
"ryu<$ri$yu2;"
"rye<$ri$e2;"
"ryo<$ri$yo2;"
"ri<>$ri;"
"ru<>$ru;"
"re<>$re;"
"ro<>$ro;"
"ry>$ri|'~y';"
"sa<>$sa;"
"si<>$se$i2;"
"su<>$su;"
"se<>$se;"
"so<>$so;"
"sha<$si$ya2;"
"shi'~i'<$si$i2;" // liu
"shu<$si$yu2;"
"she<$si$e2;"
"sho<$si$yo2;"
"shi<>$si;"
"sh>$si|'~y';"
"ta<>$ta;"
"ti<>$te$i2;"
"tu<>$te$u2;"
"te<>$te;"
"to<>$to;"
// double consonants
"b}b<>$tu2}$b_start;"
"c}k>$tu2;"
"c}c>$tu2;"
"c}q>$tu2;"
"d}d<>$tu2}$d_start;"
"f}f<>$tu2}$f_start;"
"g}g<>$tu2}$g_start;"
"h}h<>$tu2}$h_start;"
"j}j<>$tu2}$j_start;"
"k}k<>$tu2}$k_start;"
"l}l>$tu2;"
"m}m<>$tu2}$m_start;"
"n}n<>$tu2}$n_start;"
"p}p<>$tu2}$p_start;"
"q}q>$tu2;"
"r}r<>$tu2}$r_start;"
"s}sh>$tu2;"
"s}s<>$tu2}$s_start;"
"t}ch>$tu2;"
"t}t<>$tu2}$t_start;"
"v}v<>$tu2}$v_start;"
"w}w<>$tu2}$w_start;"
"x}x>$tu2;"
"y}y<>$tu2}$y_start;"
"z}z<>$tu2}$z_start;"
"tsu<>$tu;"
"u<>$u;"
"'v~a'<$vu$a2;" // liu
"'v~i'<$vu$i2;" // liu
"'v~e'<$vu$e2;" // liu
"'v~o'<$vu$o2;" // liu
"vu<>$vu;"
"wa<>$wa;"
"wi<>$wi;"
"wu>$wu;"
"we<>$we;"
"wo<>$wo;"
"ya<>$ya;"
"yi>$yi;"
"yu<>$yu;"
"ye>$ye;"
"yo<>$yo;"
"za<>$za;"
"zi<>$ze$i2;"
"zu<>$zu;"
"ze<>$ze;"
"zo<>$zo;"
// prolonged vowel mark. this indicates a doubling of
// the preceding vowel sound in both katakana and
// hiragana.
"a<a{$long;" // liu
"e<e{$long;" // liu
"i<i{$long;" // liu
"o<o{$long;" // liu
"u<u{$long;" // liu
// small forms
"'~a'<>$a2;"
"'~i'<>$i2;"
"'~u'<>$u2;"
"'~e'<>$e2;"
"'~o'<>$o2;"
"'~tsu'<>$tu2;"
"'~wa'<>$wa2;"
"'~ya'<>$ya2;"
"'~yi'>$yi2;"
"'~yu'<>$yu2;"
"'~ye'>$ye2;"
"'~yo'<>$yo2;"
// one-way latin->kana rules. these do not occur in
// well-formed romaji representing actual japanese text.
// their purpose is to make all romaji map to kana of
// some sort.
// the following are not really necessary, but produce
// slightly more natural results.
"cy>$se$i2;"
"dy>$de$i2;"
"hy>$hi;"
"sy>$se$i2;"
"ty>$te$i2;"
"zy>$ze$i2;"
// simple substitutions using backup
"c>|k;"
"f>$hu|'~';"
"j>$zi|'~y';"
"l>|r;"
"q>|k;"
"v>$vu|'~';"
"w>$u|'~';"
"x>|ks;"
// isolated consonants listed here so as not to mask
// longer rules above.
"b>$bu;"
"d>$de;"
"g>$gu;"
"h>$he;"
"k>$ku;"
"m>$n;"
"n''<$n}$n_quoter;"
"n<>$n;"
"p>$pu;"
"r>$ru;"
"s>$su;"
"t>$te;"
"y>$i;"
"z>$zu;"
// ~~~ END shared rules ~~~
//------------------------------------------------------
// Final cleanup
"'~'>;" // delete stray tildes
"$quote>;" // delete stray quotes
"'-'>$long;"
}
}