02f77c60bc
X-SVN-Rev: 1742
975 lines
18 KiB
Plaintext
975 lines
18 KiB
Plaintext
//--------------------------------------------------------------------
|
|
// 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;"
|
|
}
|
|
}
|