﻿#--------------------------------------------------------------------
# Copyright (c) 1999-2001, International Business Machines
# Corporation and others. All Rights Reserved.
#--------------------------------------------------------------------
# $Source: /xsrl/Nsvn/icu/icu4j/src/com/ibm/text/resources/Attic/Transliterator_Latin_Katakana.txt,v $
# $Date: 2001/12/03 02:10:26 $
# $Revision: 1.19 $
#--------------------------------------------------------------------

# note: a global filter is more efficient, but MUST include all source chars
#:: [\u0000-\u007E \u3001\u3002 \u3099-\u309C \u30A1-\u30FC \uFF61-\uFF9F [:Latin:][:Katakana:] [:nonspacing mark:]] ;
# MINIMAL FILTER GENERATED FOR: Latin-Katakana
### WARNING -- must add width filter, both here and below!!! ###
:: [[\u1100-\u1112\u111A\u1121\u1160-\u1175\u11AA\u11AC-\u11AD\u11B0-\u11B5\u2190-\u2193\u2502\u25A0\u25CB\u3000-\u3002\u300C-\u300D\u3099-\u309A\u30A1-\u30ED\u30EF\u30F2-\u30F4\u30F7\u30FA-\u30FC\uFF01-\uFF5E\uFFE0-\uFFE6][',.A-Za-z~\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u010F\u0112-\u0125\u0128-\u0130\u0134-\u0137\u0139-\u013E\u0143-\u0148\u014C-\u0151\u0154-\u0165\u0168-\u017E\u01A0-\u01A1\u01AF-\u01B0\u01CD-\u01DC\u01DE-\u01E3\u01E6-\u01ED\u01F0\u01F4-\u01F5\u01F8-\u021B\u021E-\u021F\u0226-\u0233\u0304\u04E2-\u04E3\u04EE-\u04EF\u1E00-\u1E99\u1EA0-\u1EF9\u1FB1\u1FB9\u1FD1\u1FD9\u1FE1\u1FE9\u212A-\u212B]] ;

:: [:Latin:] fullwidth-halfwidth ();
:: NFD (NFC);
:: Lower ();    # whenever transliterating from cased to uncased script, include this
# :: NFD () ;   # this would catch the odd cases where a lowercase is not in NFD, but none are important for Japanese

# 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] ;
$consonant = [bcdfghjklmnpqrstvwxyz] ;
$macron = \u0304 ;

# Variables used for doubled-consonants with tsu

$kana = [\u3041-\u3094] ;

$voice = [\u3099\u309B];
$semivoice = [\u309A\u309C];

$k_start = [カキクケコかきくけこ] ;

$s_start = [サシスセソさしすせそ] ;

$j_start = [シし] $voice ;

$t_start = [タチツテトたちつてと] ;

$n_start = [ナニヌネノンなにぬねの] ;

$h_start = [ハヒヘホはひへほ] ;
$f_start = [フふ] ;

$m_start = [マミムメモまみむめも] ;

$y_start = [ヤユヨやゆよ] ;

$r_start = [ラリルレロらりるれろ] ;

$w_start = [ワヰヱヲわゐゑを] ;

$v_start = [ワヰヱヲ]゙ ;

# if ン is followed by $n_quoter, then it needs an
# apostrophe after its romaji form to disambiguate it.
# e.g., ン ア ! =  ナ, so represent as "n'a", not "na".

$n_quoter  =  [ア イ ウ エ オ ナ ニ ヌ ネ ノ ヤ ユ ヨ ン] ;

$small_y = [ャィュェョ] ;

$iteration = \u309D ;

#------------------------------------------------------
# katakana rules

# Punctuation

'.' <> 。;
',' <> 、;
# ' ' } [a-z] > ; # delete spaces before latin
# ' ' < [^' '\u30A0-\u30ff] {} ['\u30A0-\u30ff] ; #insert spaces before hiragana

# Iteration Mark
# Copy previous letter & marks

# TODO
# | $1 $1 < ($kana [[:M:]$voice$semivoice]?) $iteration

# Specials for katakana -- not shared with hiragana

va <> ヷ ;
vi <> ヸ ;
ve <> ヹ ;
vo <> ヺ ;
'~ka' <> ヵ ;
'~ke' <> ヶ ;

# ~~~ begin shared rules ~~~

#special

ya < '~'ャ;
yi < '~'ィ ;
yu < '~'ュ;
ye < '~'ェ;
yo < '~'ョ;

#normal

a <> ア ;

b | '~' < ヒ ゙} $small_y ;
by } $vowel > ビ | '~y' ;

ba <> バ ;
bi <> ビ ;
bu <> ブ ;
be <> ベ ;
bo <> ボ ;

c } i > | s ;
c } e > | s ;

da <> ダ ;
di <> ディ ;
du <> デゥ ;
de <> デ ;
do <> ド ;
dzu <> ヅ ;
dja < ヂャ ;
dji'~i' < ヂィ ; # liu
dju < ヂュ ;
dje < ヂェ ;
djo < ヂョ ;
dji <> ヂ ;
dj  } $vowel > ヂ | '~y' ;

# TODO: QUESTION: use ĵĴżŻ instead of dj, dz

cha < チャ ;
chi'~i' < チィ ; # liu
chu < チュ ;
che < チェ ;
cho < チョ ;
chi <> チ ;
ch } $vowel > チ | '~y' ;

e <> エ ;

g | '~' < ギ} $small_y ;
gy  } $vowel > ギ | '~y' ;

ga <> ガ ;
gi <> ギ ;
gu <> グ ;
ge <> ゲ ;
go <> ゴ ;

i <> イ ;

# j  } $vowel > ジ | '~y' ;

ja <> ジャ ;
ji'~i' < ジィ ; # liu
ju <> ジュ ;
je <> ジェ ;
jo <> ジョ ;
ji <> ジ ;

k | '~' < キ} $small_y ;
ky  } $vowel > キ | '~y' ;

ka <> カ ;
ki <> キ ;
ku <> ク ;
ke <> ケ ;
ko <> コ ;

m | '~' < ミ} $small_y ;
my  } $vowel > ミ | '~y' ;

ma <> マ ;
mi <> ミ ;
mu <> ム ;
me <> メ ;
mo <> モ ;

m } [pbfv] > ン ;

n | '~' < ニ } $small_y ;
ny  } $vowel > ニ | '~y' ;

na <> ナ ;
ni <> ニ ;
nu <> ヌ ;
ne <> ネ ;
no <> ノ ;

o <> オ ;

p | '~' < ピ } $small_y ;
py  } $vowel > ピ | '~y' ;

pa <> パ ;
pi <> ピ ;
pu <> プ ;
pe <> ペ ;
po <> ポ ;

h | '~' < ヒ } $small_y ;
hy  } $vowel > ヒ | '~y' ;

ha <> ハ ;
hi <> ヒ ;
hu <> ヘゥ ;
he <> ヘ ;
ho <> ホ ;

# f | '~' < フ } $small_y ;
# f } $vowel > フ | '~' ;

fa <> ファ ;
fi <> フィ ;
fe <> フェ ;
fo <> フォ ;
fu <> フ ;

r | '~' < リ } $small_y ;
ry  } $vowel > リ | '~y' ;

ra <> ラ ;
ri <> リ ;
ru <> ル ;
re <> レ ;
ro <> ロ ;

za <> ザ ;
zi <> ゼィ ;
zu <> ズ ;
ze <> ゼ ;
zo <> ゾ ;

sa <> サ ;
si <> セィ ;
su <> ス ;
se <> セ ;
so <> ソ ;

sha < シャ ;
shi'~i' < シィ ; # liu
shu < シュ ;
she < シェ ;
sho < ショ ;
shi <> シ ;
sh } $vowel > シ | '~y' ;

ta <> タ ;
ti <> ティ ;
tu <> テゥ ;
te <> テ ;
to <> ト ;

tsu <> ツ ;

# v  } $vowel > ヴ | '~' ;

#'v~a' < ヴァ ; # liu
#'v~i' < ヴィ ; # liu
#'v~e' < ヴェ ; # liu
#'v~o' < ヴォ ; # liu
vu <> ヴ ;

u <> ウ ;

# w  } $vowel > ウ | '~' ;

wa <> ワ ;
wi <> ヰ ;
wu > ウ ;
we <> ヱ ;
wo <> ヲ ;

ya <> ヤ ;
yi > イ ;
yu <> ユ ;
ye > エ ;
yo <> ヨ ;

# double consonants

#specials
s } sh > ッ ;
t } ch > ッ ;

#voiced

j } j <> ッ } $j_start ;
b } b <> ッ } [$h_start$f_start] $voice;
d } d <> ッ } $t_start $voice;
g } g <> ッ } $k_start $voice;
p } p <> ッ } [$h_start$f_start] $semivoice;
# v } v <> ッ } [ワヰウヱヲう]  $voice ;
z } z <> ッ } $s_start $voice;
v } v <> ッ } $v_start;

# normal

k } k <> ッ } $k_start ;
m } m <> ッ } $m_start ;
n } n <> ッ } $n_start ;
h } h <> ッ } $h_start ;
f } f <> ッ } $f_start ;
r } r <> ッ } $r_start ;
t } t <> ッ } $t_start ;
s } s <> ッ } $s_start ;

w } w  <> ッ } $w_start;
y } y <> ッ } $y_start;

# completeness 
x } x > ッ ;
c } k > ッ ;
c } c > ッ ;
c } q > ッ ;
l } l > ッ ;
q } q > ッ ;
# y } y > ッ ;
# w } w > ッ ;

# prolonged vowel mark. this indicates a doubling of
# the preceding vowel sound

#a < a { ー ; # liu
#e < e { ー ; # liu
#i < i { ー ; # liu
#o < o { ー ; # liu
#u < u { ー ; # liu

$macron <> ー ;

# small forms

'~a' <> ァ ;
'~i' <> ィ ;
'~u' <> ゥ ;
'~e' <> ェ ;
'~o' <> ォ ;
'~tsu' <> ッ ;
'~wa' <> ヮ ;
'~ya' <> ャ ;
'~yi' > ィ ;
'~yu' <> ュ ;
'~ye' > ェ ;
'~yo' <> ョ ;

# iteration marks
# TODO: make more accurate

j $1 < sh (y* $vowel) {ヽ$voice ;
dj $1 < ch (y* $vowel) {ヽ$voice ;
dz $1 < ts (y* $vowel) {ヽ$voice ;

g $1 < k (y* $vowel) {ヽ$voice ;
z $1 < s (y* $vowel) {ヽ$voice ;
d $1 < t (y* $vowel) {ヽ$voice ;
h $1 < b (y* $vowel) {ヽ$voice ;
v $1 < w (y* $vowel) {ヽ$voice ;

sh $1 < sh (y* $vowel) {ヽ$voice ;
j $1 < j (y* $vowel) {ヽ$voice ;
ch $1 < ch (y* $vowel) {ヽ$voice ;
dj $1 < dj(y* $vowel) {ヽ$voice ;
ts $1 < ts (y* $vowel) {ヽ$voice ;
dz $1 < dz (y* $vowel) {ヽ$voice ;

$1 < ($consonant y* $vowel) {ヽ$voice? ;
$1 < (.) {ヽ $voice? ; # otherwise repeat last character
 < ヽ $voice? ; # delete if no characters found

# h- rule: lengthens vowel if not followed by a vowel

[aeiou] } h > ー ;

# 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 > セィ ;
dy > ディ ;
hy > ヒ ;
sy > セィ ;
ty > ティ ;
zy > ゼィ ;

h > ヘ ;

# isolated consonants listed here so as not to mask
# longer rules above.

ch > チ;
sh > シ ;
dz > ヅ ;
dj > ヂ;

b > ブ ;
d > デ ;
g > グ ;
k > ク ;
m > ム ;
n'' < ン } $n_quoter ;
n <> ン ;
p > プ ;
r > ル ;
s > ス ;
t > テ ;
y > イ ;
z > ズ ;
v > ヴ ;

f > フ;
j  > ジ;
w > ウ;

ß > | ss ;
æ > | e ;
ð > | d ;
ø > | u ;
þ > | th ;

# simple substitutions using backup

c > | k ;
l > | r ;
q > | k ;
x > | ks ;

# ~~~ END shared rules ~~~

#------------------------------------------------------
# Final cleanup

'~' > ; # delete stray tildes between letters
[:Katakana:] { '' } [:Latin:] > ; # delete stray quotes between letters
# [\u02BE[:Nonspacing Mark:]-[\u3099-\u309C]] > ; # delete any non-spacing marks that we didn't use

:: NFC (NFD) ; 
:: ([:Katakana:] halfwidth-fullwidth);

# note: a global filter is more efficient, but MUST include all source chars!!
#:: ([\u0000-\u007E \u3001\u3002 \u3099-\u309C \u30A1-\u30FC \uFF61-\uFF9F [:Latin:][:Katakana:] [:nonspacing mark:]]);
# MINIMAL FILTER GENERATED FOR: Latin-Katakana BACKWARD
:: ( [[\ -~\u00A2-\u00A3\u00A5-\u00A6\u00AC\u0304\u20A9\uFF61-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\uFFE8-\uFFEE][~\u3001-\u3002\u304C\u304E\u3050\u3052\u3054\u3056\u3058\u305A\u305C\u305E\u3060\u3062\u3065\u3067\u3069\u3070-\u3071\u3073-\u3074\u3076-\u3077\u3079-\u307A\u307C-\u307D\u3094\u3099-\u309B\u309E\u30A1-\u30FA\u30FC-\u30FE]] ) ;

# eof
