blob: 835c1a42c7a64741e3274d852280f24cc4e2c9ef [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_Hiragana_Katakana.java
// Date: Thu Jun 29 17:03:15 2000
//--------------------------------------------------------------------
// Hiragana-Katakana
kana {
Rule {
// Hiragana-Katana
// This is largely a one-to-one mapping, but it has a
// few kinks:
// 1. The Katakana va/vi/ve/vo (30F7-30FA) have no
// Hiragana equivalents. We use Hiragana wa/wi/we/wo
// (308F-3092) with a voicing mark (3099), which is
// semantically equivalent. However, this is a non-
// roundtripping transformation.
// 2. The Katakana small ka/ke (30F5,30F6) have no
// Hiragana equiavlents. We convert them to normal
// Hiragana ka/ke (304B,3051). This is a one-way
// information-losing transformation and precludes
// round-tripping of 30F5 and 30F6.
// 3. The combining marks 3099-309C are in the Hiragana
// block, but they apply to Katakana as well, so we
// leave the untouched.
// 4. The Katakana prolonged sound mark 30FC doubles the
// preceding vowel. This is a one-way information-
// losing transformation from Katakana to Hiragana.
// 5. The Katakana middle dot separates words in foreign
// expressions; we leave this unmodified.
// The above points preclude successful round-trip
// transformations of arbitrary input text. However,
// they provide naturalistic results that should conform
// to natural language expectations.
// Combining equivalents
"\u308F\u3099 <> \u30F7;"
"\u3090\u3099 <> \u30F8;"
"\u3091\u3099 <> \u30F9;"
"\u3092\u3099 <> \u30FA;"
// One-to-one mappings, main block
// 3041:3094 <> 30A1:30F4
// 309D,E <> 30FD,E
"\u3041 <> \u30A1;"
"\u3042 <> \u30A2;"
"\u3043 <> \u30A3;"
"\u3044 <> \u30A4;"
"\u3045 <> \u30A5;"
"\u3046 <> \u30A6;"
"\u3047 <> \u30A7;"
"\u3048 <> \u30A8;"
"\u3049 <> \u30A9;"
"\u304A <> \u30AA;"
"\u304B <> \u30AB;"
"\u304C <> \u30AC;"
"\u304D <> \u30AD;"
"\u304E <> \u30AE;"
"\u304F <> \u30AF;"
"\u3050 <> \u30B0;"
"\u3051 <> \u30B1;"
"\u3052 <> \u30B2;"
"\u3053 <> \u30B3;"
"\u3054 <> \u30B4;"
"\u3055 <> \u30B5;"
"\u3056 <> \u30B6;"
"\u3057 <> \u30B7;"
"\u3058 <> \u30B8;"
"\u3059 <> \u30B9;"
"\u305A <> \u30BA;"
"\u305B <> \u30BB;"
"\u305C <> \u30BC;"
"\u305D <> \u30BD;"
"\u305E <> \u30BE;"
"\u305F <> \u30BF;"
"\u3060 <> \u30C0;"
"\u3061 <> \u30C1;"
"\u3062 <> \u30C2;"
"\u3063 <> \u30C3;"
"\u3064 <> \u30C4;"
"\u3065 <> \u30C5;"
"\u3066 <> \u30C6;"
"\u3067 <> \u30C7;"
"\u3068 <> \u30C8;"
"\u3069 <> \u30C9;"
"\u306A <> \u30CA;"
"\u306B <> \u30CB;"
"\u306C <> \u30CC;"
"\u306D <> \u30CD;"
"\u306E <> \u30CE;"
"\u306F <> \u30CF;"
"\u3070 <> \u30D0;"
"\u3071 <> \u30D1;"
"\u3072 <> \u30D2;"
"\u3073 <> \u30D3;"
"\u3074 <> \u30D4;"
"\u3075 <> \u30D5;"
"\u3076 <> \u30D6;"
"\u3077 <> \u30D7;"
"\u3078 <> \u30D8;"
"\u3079 <> \u30D9;"
"\u307A <> \u30DA;"
"\u307B <> \u30DB;"
"\u307C <> \u30DC;"
"\u307D <> \u30DD;"
"\u307E <> \u30DE;"
"\u307F <> \u30DF;"
"\u3080 <> \u30E0;"
"\u3081 <> \u30E1;"
"\u3082 <> \u30E2;"
"\u3083 <> \u30E3;"
"\u3084 <> \u30E4;"
"\u3085 <> \u30E5;"
"\u3086 <> \u30E6;"
"\u3087 <> \u30E7;"
"\u3088 <> \u30E8;"
"\u3089 <> \u30E9;"
"\u308A <> \u30EA;"
"\u308B <> \u30EB;"
"\u308C <> \u30EC;"
"\u308D <> \u30ED;"
"\u308E <> \u30EE;"
"\u308F <> \u30EF;"
"\u3090 <> \u30F0;"
"\u3091 <> \u30F1;"
"\u3092 <> \u30F2;"
"\u3093 <> \u30F3;"
"\u3094 <> \u30F4;"
"\u309D <> \u30FD;"
"\u309E <> \u30FE;"
// Fallback; this is a one-way Katakana-Hiragana xform.
"\u304B < \u30F5;"
"\u3051 < \u30F6;"
// Anything followed by a prolonged sound mark 30FC has
// its final vowel doubled. This is a Katakana-Hiragana
// one-way information-losing transformation. We
// include the small Katakana (e.g., small A 3041) and
// do not distinguish them from their large
// counterparts. It doesn't make sense to double a
// small counterpart vowel as a small Hiragana vowel, so
// we don't do so. In natural text this should never
// occur anyway. If a 30FC is seen without a preceding
// vowel sound (e.g., after n 30F3) we do not change it.
"$long = \u30FC;"
// The following categories are Hiragana, not Katakana
// as might be expected, since by the time we get to the
// 30FC, the preceding character will have already been
// transformed to Hiragana.
// {The following mechanically generated from the
// Unicode 3.0 data:}
"$xa = ["
"\u3041 \u3042 \u304B \u304C \u3055 \u3056"
"\u305F \u3060 \u306A \u306F \u3070 \u3071"
"\u307E \u3083 \u3084 \u3089 \u308E \u308F"
"];"
"$xi = ["
"\u3043 \u3044 \u304D \u304E \u3057 \u3058"
"\u3061 \u3062 \u306B \u3072 \u3073 \u3074"
"\u307F \u308A \u3090"
"];"
"$xu = ["
"\u3045 \u3046 \u304F \u3050 \u3059 \u305A"
"\u3063 \u3064 \u3065 \u306C \u3075 \u3076"
"\u3077 \u3080 \u3085 \u3086 \u308B \u3094"
"];"
"$xe = ["
"\u3047 \u3048 \u3051 \u3052 \u305B \u305C"
"\u3066 \u3067 \u306D \u3078 \u3079 \u307A"
"\u3081 \u308C \u3091"
"];"
"$xo = ["
"\u3049 \u304A \u3053 \u3054 \u305D \u305E"
"\u3068 \u3069 \u306E \u307B \u307C \u307D"
"\u3082 \u3087 \u3088 \u308D \u3092"
"];"
"\u3042 < $xa {$long};"
"\u3044 < $xi {$long};"
"\u3046 < $xu {$long};"
"\u3048 < $xe {$long};"
"\u304A < $xo {$long};"
""
}
}