123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461 |
- // Japanese
- //
- // Copyright (C) 2017 Reece H. Dunn
- //
- // This program is free software; you can redistribute it and/or modify
- // it under the terms of the GNU General Public License as published by
- // the Free Software Foundation; either version 3 of the License, or
- // (at your option) any later version.
- //
- // This program is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- // GNU General Public License for more details.
- //
- // You should have received a copy of the GNU General Public License
- // along with this program; if not, see: <http://www.gnu.org/licenses/>.
-
- // Replacements:
- // 1. Map Katakana to Hiragana.
- // 2. Map voiced characters to their base form and voicing combined character.
-
- .replace
- // U+3040 - U+309F Hiragana ----------------------------
- が が // ga: U+304C => U+304B U+3099
- ぎ ぎ // gi: U+304E => U+304D U+3099
- ぐ ぐ // gu: U+3050 => U+304F U+3099
- げ げ // ge: U+3052 => U+3051 U+3099
- ご ご // go: U+3054 => U+3053 U+3099
- ざ ざ // za: U+3056 => U+3055 U+3099
- じ じ // ji: U+3058 => U+3057 U+3099
- ず ず // zu: U+305A => U+3059 U+3099
- ぜ ぜ // ze: U+305C => U+305B U+3099
- ぞ ぞ // zo: U+305E => U+305D U+3099
- だ だ // da: U+3060 => U+305F U+3099
- ぢ ぢ // ji: U+3062 => U+3061 U+3099 (obsolete)
- づ づ // zu: U+3065 => U+3064 U+3099
- で で // de: U+3067 => U+3066 U+3099
- ど ど // do: U+3069 => U+3068 U+3099
- ば ば // ba: U+3070 => U+306F U+3099
- ぱ ぱ // pa: U+3071 => U+306F U+309A
- び び // bi: U+3073 => U+3072 U+3099
- ぴ ぴ // pi: U+3074 => U+3072 U+309A
- ぶ ぶ // bu: U+3076 => U+3075 U+3099
- ぷ ぷ // pu: U+3077 => U+3075 U+309A
- べ べ // be: U+3079 => U+3078 U+3099
- ぺ ぺ // pe: U+307A => U+3078 U+309A
- ぼ ぼ // bo: U+307C => U+307B U+3099
- ぽ ぽ // po: U+307D => U+307B U+309A
- ゔ ゔ // vu: U+3094 => U+3046 U+3099 (obsolete)
- ゛ ゙ // U+309B => U+3099
- ゜ ゚ // U+309C => U+309A
- ゟ より // U+309F => U+3088 U+308A (yori digraph)
- // U+30A0 - U+30FF Katakana ----------------------------
- ァ ぁ // a: U+30A1 => U+3041 (small)
- ア あ // a: U+30A2 => U+3042
- ィ ぃ // i: U+30A3 => U+3043 (small)
- イ い // i: U+30A4 => U+3044
- ゥ ぅ // u: U+30A5 => U+3045 (small)
- ウ う // u: U+30A6 => U+3046
- ェ ぇ // e: U+30A7 => U+3047 (small)
- エ え // e: U+30A8 => U+3048
- ォ ぉ // o: U+30A9 => U+3049 (small)
- オ お // o: U+30AA => U+304A
- カ か // ka: U+30AB => U+304B
- ガ が // ga: U+30AC => U+304B U+3099
- キ き // ki: U+30AD => U+304D
- ギ ぎ // gi: U+30AE => U+304D U+3099
- ク く // ku: U+30AF => U+304F
- グ ぐ // gu: U+30B0 => U+304F U+3099
- ケ け // ke: U+30B1 => U+3051
- ゲ げ // ge: U+30B2 => U+3051 U+3099
- コ こ // ko: U+30B3 => U+3053
- ゴ ご // go: U+30B4 => U+3053 U+3099
- サ さ // sa: U+30B5 => U+3055
- ザ ざ // za: U+30B6 => U+3055 U+3099
- シ し // shi: U+30B7 => U+3057
- ジ じ // ji: U+30B8 => U+3057 U+3099
- ス す // su: U+30B9 => U+3059
- ズ ず // zu: U+30BA => U+3059 U+3099
- セ せ // se: U+30BB => U+305B
- ゼ ぜ // ze: U+30BC => U+305B U+3099
- ソ そ // so: U+30BD => U+305D
- ゾ ぞ // zo: U+30BE => U+305D U+3099
- タ た // ta: U+30BF => U+305F
- ダ だ // da: U+30C0 => U+305F U+3099
- チ ち // chi: U+30C1 => U+3061
- ヂ ぢ // ji: U+30C2 => U+3061 U+3099 (obsolete)
- ッ っ // tsu: U+30C3 => U+3063 (small)
- ツ つ // tsu: U+30C4 => U+3064
- ヅ づ // zu: U+30C5 => U+3064 U+3099
- テ て // te: U+30C6 => U+3066
- デ で // de: U+30C7 => U+3066 U+3099
- ト と // to: U+30C8 => U+3068
- ド ど // do: U+30C9 => U+3068 U+3099
- ナ な // na: U+30CA => U+306A
- ニ に // ni: U+30CB => U+306B
- ヌ ぬ // nu: U+30CC => U+306C
- ネ ね // ne: U+30CD => U+306D
- ノ の // no: U+30CE => U+306E
- ハ は // ha: U+30CF => U+306F
- バ ば // ba: U+30D0 => U+306F U+3099
- パ ぱ // pa: U+30D1 => U+306F U+309A
- ヒ ひ // hi: U+30D2 => U+3072
- ビ び // bi: U+30D3 => U+3072 U+3099
- ピ ぴ // pi: U+30D4 => U+3072 U+309A
- フ ふ // fu: U+30D5 => U+3075
- ブ ぶ // bu: U+30D6 => U+3075 U+3099
- プ ぷ // pu: U+30D7 => U+3075 U+309A
- ヘ へ // he: U+30D8 => U+3078
- ベ べ // be: U+30D9 => U+3078 U+3099
- ペ ぺ // pe: U+30DA => U+3078 U+309A
- ホ ほ // ho: U+30DB => U+307B
- ボ ぼ // bo: U+30DC => U+307B U+3099
- ポ ぽ // po: U+30DD => U+307B U+309A
- マ ま // ma: U+30DE => U+307E
- ミ み // mi: U+30DF => U+307F
- ム む // mu: U+30E0 => U+3080
- メ め // me: U+30E1 => U+3081
- モ も // mo: U+30E2 => U+3082
- ャ ゃ // ya: U+30E3 => U+3083 (small)
- ヤ や // ya: U+30E4 => U+3084
- ュ ゅ // yu: U+30E5 => U+3085 (small)
- ユ ゆ // yu: U+30E6 => U+3086
- ョ ょ // yo: U+30E7 => U+3087 (small)
- ヨ よ // yo: U+30E8 => U+3088
- ラ ら // ra: U+30E9 => U+3089
- リ り // ri: U+30EA => U+308A
- ル る // ru: U+30EB => U+308B
- レ れ // re: U+30EC => U+308C
- ロ ろ // ro: U+30ED => U+308D
- ヮ ゎ // wa: U+30EE => U+308E (small)
- ワ わ // wa: U+30EF => U+308F
- ヰ ゐ // wi: U+30F0 => U+3090
- ヱ ゑ // we: U+30F1 => U+3091
- ヲ を // wo: U+30F2 => U+3092
- ン ん // n: U+30F3 => U+3093
- ヴ ゔ // vu: U+30F4 => U+3046 U+3099 (obsolete)
- ヵ ゕ // ka: U+30F5 => U+3095 (small)
- ヶ ゖ // ke: U+30F6 => U+3096 (small)
- ヷ あ゙ // va: U+30F7 => U+3042 U+3099
- ヸ い゙ // vi: U+30F8 => U+3044 U+3099
- ヹ え゙ // ve: U+30F9 => U+3048 U+3099
- ヺ お゙ // vo: U+30FA => U+304A U+3099
- ヽ ゝ // U+30FD => U+309D (iteration mark)
- ヾ ゞ // U+30FE => U+309E (voiced iteration mark)
- ヿ こと // U+30FF => U+3053 U+3068 (koto digraph)
- // U+FF65 - U+FF9F Halfwidth Katakana
- ヲ を // wo: U+FF66 => U+3092
- ァ ぁ // a: U+FF67 => U+3041 (small)
- ィ ぃ // i: U+FF68 => U+3043 (small)
- ゥ ぅ // u: U+FF69 => U+3045 (small)
- ェ ぇ // e: U+FF6A => U+3047 (small)
- ォ ぉ // o: U+FF6B => U+3049 (small)
- ャ ゃ // ya: U+FF6C => U+3083 (small)
- ュ ゅ // yu: U+FF6D => U+3085 (small)
- ョ ょ // yo: U+FF6E => U+3087 (small)
- ッ っ // tsu: U+FF6F => U+3063 (small)
- ー ー // U+FF70 => U+30FC
- ア あ // a: U+FF71 => U+3042
- イ い // i: U+FF72 => U+3044
- ウ う // u: U+FF73 => U+3046
- エ え // e: U+FF74 => U+3048
- オ お // o: U+FF75 => U+304A
- カ か // ka: U+FF76 => U+304B
- キ き // ki: U+FF77 => U+304D
- ク く // ku: U+FF78 => U+304F
- ケ け // ke: U+FF79 => U+3051
- コ こ // ko: U+FF7A => U+3053
- サ さ // sa: U+FF7B => U+3055
- シ し // shi: U+FF7C => U+3057
- ス す // su: U+FF7D => U+3059
- セ せ // se: U+FF7E => U+305B
- ソ そ // so: U+FF7F => U+305D
- タ た // ta: U+FF80 => U+305F
- チ ち // chi: U+FF81 => U+3061
- ツ つ // tsu: U+FF82 => U+3064
- テ て // te: U+FF83 => U+3066
- ト と // to: U+FF84 => U+3068
- ナ な // na: U+FF85 => U+306A
- ニ に // ni: U+FF86 => U+306B
- ヌ ぬ // nu: U+FF87 => U+306C
- ネ ね // ne: U+FF88 => U+306D
- ノ の // no: U+FF89 => U+306E
- ハ は // ha: U+FF8A => U+306F
- ヒ ひ // hi: U+FF8B => U+3072
- フ ふ // fu: U+FF8C => U+3075
- ヘ へ // he: U+FF8D => U+3078
- ホ ほ // ho: U+FF8E => U+307B
- マ ま // ma: U+FF8F => U+307E
- ミ み // mi: U+FF90 => U+307F
- ム む // mu: U+FF91 => U+3080
- メ め // me: U+FF92 => U+3081
- モ も // mo: U+FF93 => U+3082
- ヤ や // ya: U+FF94 => U+3084
- ユ ゆ // yu: U+FF95 => U+3086
- ヨ よ // yo: U+FF96 => U+3088
- ラ ら // ra: U+FF97 => U+3089
- リ り // ri: U+FF98 => U+308A
- ル る // ru: U+FF99 => U+308B
- レ れ // re: U+FF9A => U+308C
- ロ ろ // ro: U+FF9B => U+308D
- ワ わ // wa: U+FF9C => U+308F
- ン ん // n: U+FF9D => U+3093
- ゙ ゙ // U+FF9E => U+3099
- ゚ ゚ // U+FF9F => U+309A
- // U+1B000 - U+1B001 Kana Supplement ---------------------
- 𛀀 え // e: U+1B000 => U+3048 (archaic)
-
- // Hiragana Groups -- By Starting Consonant
-
- // a i u e o *
- .L01 か き く け こ // k
- .L02 が ぎ ぐ げ ご // g
- .L03 さ す せ そ // s
- .L04 し // sh
- .L05 ざ ず ぜ ぞ づ // z
- .L06 じ ぢ // j
- .L07 た て と // t
- .L08 ち // ch
- .L09 つ // ts
- .L10 だ で ど // d
- .L11 な に ぬ ね の // n
- .L12 は ひ へ ほ // h
- .L13 ふ // f
- .L14 ば び ぶ べ ぼ // b
- .L15 ぱ ぴ ぷ ぺ ぽ // p
- .L16 ま み む め も // m
- .L17 や ゆ よ // y
- .L18 ら り る れ ろ // r
- .L19 わ ゐ ゑ を // w
- .L20 あ い う え お // none (vowels)
- .L21 ゃ ゅ ょ // y (small)
-
- // Hiragana Combining Characters
-
- .group ゃ
- ゃ a_" // ya
-
- .group ゅ
- ゅ M_Bo // yu
-
- .group ょ
- ょ o_o // yo
-
- // Hiragana
-
- .group あ
- あ a_" // a
- あ゙ va_" // va (Katakana)
-
- .group い
- い i // i
- い゙ vi // vi (Katakana)
-
- .group う
- う M_Bo // u
- ゔ vM_Bo // vu
-
- .group え
- え e_o // e
- え゙ ve_o // ve (Katakana)
-
- .group お
- お o_o // o
- お゙ vo_o // vo (Katakana)
-
- .group か
- か ka_" // ka
- が ga_" // ga
-
- .group き
- き ki // ki
- き (L21 k_j // ky([auo]
- ぎ gi // gi
- ぎ (L21 g_j // gy([auo]
-
- .group く
- く kM_Bo // ku
- ぐ gM_Bo // gu
-
- .group け
- け ke_o // ke
- げ ge_o // ge
-
- .group こ
- こ ko_o // ko
- ご go_o // go
-
- .group さ
- さ sa_" // sa
- ざ za_" // za
-
- .group し
- し s\\i // shi
- し (L21 s\\ // sh([auo]
- じ d_z\\i // ji
- じ (L21 d_z\\ // j([auo]
-
- .group す
- す sM_Bo // su
- ず zM_Bo // zu
-
- .group せ
- せ se_o // se
- ぜ ze_o // ze
-
- .group そ
- そ so_o // so
- ぞ zo_o // zo
-
- .group た
- た ta_" // ta
- だ da_" // da
-
- .group ち
- ち t_s\\i // chi
- ち (L21 t_s\\ // ch([auo]
- ぢ d_z\\i // ji (obsolete)
- ぢ (L21 d_z\\ // j([auo] (obsolete)
-
- .group つ
- つ t_sM_Bo // tsu
- づ zM_Bo // zu
-
- .group て
- て te_o // te
- で de_o // de
-
- .group と
- と to_o // to
- ど do_o // do
-
- .group な
- な na_" // na
-
- .group に
- に ni // ni
- に (L21 n_j // ny([auo]
-
- .group ぬ
- ぬ nM_Bo // nu
-
- .group ね
- ね ne_o // ne
-
- .group の
- の no_o // no
-
- .group は
- は ha_" // ha
- ば ba_" // ba
- ぱ pa_" // pa
-
- .group ひ
- ひ Ci // hi
- ひ (L21 C // hy([auo]
- び bi // bi
- び (L21 b_j // by([auo]
- ぴ pi // pi
- ぴ (L21 p_j // py([auo]
-
- .group ふ
- ふ p\\M_Bo // fu
- ぶ bM_Bo // bu
- ぷ pM_Bo // pu
-
- .group へ
- へ he_o // he
- べ be_o // be
- ぺ pe_o // pe
-
- .group ほ
- ほ ho_o // ho
- ぼ bo_o // bo
- ぽ po_o // po
-
- .group ま
- ま ma_" // ma
-
- .group み
- み mi // mi
- み (L21 m_j // my([auo]
-
- .group む
- む mM_Bo // mu
-
- .group め
- め me_o // me
-
- .group も
- も mo_o // mo
-
- .group や
- や ja_" // ya
-
- .group ゆ
- ゆ jM_Bo // yu
-
- .group 𛀁
- 𛀁 je_o // ye (archaic)
-
- .group よ
- よ jo_o // yo
-
- .group ら
- ら r`a_" // ra
-
- .group り
- り r`i // ri
- り (L21 r`_ja_" // ry([auo]
-
- .group る
- る rM_Bo // ru
-
- .group れ
- れ re_o // re
-
- .group ろ
- ろ ro_o // ro
-
- .group わ
- わ wa_" // wa
-
- .group ゐ
- ゐ i // wi (obsolete)
-
- .group ゑ
- ゑ we_o // we (obsolete)
-
- .group を
- を o_o // wo
-
- .group ん
- ん N\\ // n
- ん (L01 N // n (k
- ん (L02 N // n (g
- ん (L03 u~ // n (s
- い) ん (L03 i~ // i) n (s
- ん (L04 u~ // n (sh
- い) ん (L04 i~ // i) n (sh
- ん (L05 n // n (z
- ん (L06 n // n (j
- ん (L07 n // n (t
- ん (L08 n // n (ch
- ん (L09 n // n (ts
- ん (L10 n // n (d
- ん (L11 n // n (n
- ん (L12 u~ // n (h
- い) ん (L12 i~ // i) n (h
- ん (L13 u~ // n (f
- い) ん (L13 i~ // i) n (f
- ん (L14 m // n (b
- ん (L15 m // n (p
- ん (L16 m // n (m
- ん (L17 u~ // n (y
- い) ん (L17 i~ // i) n (y
- ん (L18 n // n (r
- ん (L19 u~ // n (w
- い) ん (L19 i~ // i) n (w
- ん (L20 u~ // n ([vowel]
- い) ん (L20 i~ // i) n ([vowel]
|