summaryrefslogtreecommitdiff
path: root/engine/python3/tables.py
diff options
context:
space:
mode:
Diffstat (limited to 'engine/python3/tables.py')
-rw-r--r--engine/python3/tables.py731
1 files changed, 731 insertions, 0 deletions
diff --git a/engine/python3/tables.py b/engine/python3/tables.py
new file mode 100644
index 0000000..b2c4cac
--- /dev/null
+++ b/engine/python3/tables.py
@@ -0,0 +1,731 @@
+# vim:set et sts=4 sw=4:
+# -*- coding: utf-8 -*-
+#
+# ibus-anthy - The Anthy engine for IBus
+#
+# Copyright (c) 2007-2008 Peng Huang <shawn.p.huang@gmail.com>
+# Copyright (c) 2010-2014 Takao Fujiwara <takao.fujiwara1@gmail.com>
+# Copyright (c) 2007-2014 Red Hat, Inc.
+#
+# 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 2 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, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# string, result, cont
+romaji_typing_rule_static = {
+ '-' : 'ー',
+ 'a' : 'あ',
+ 'i' : 'い',
+ 'u' : 'う',
+ 'e' : 'え',
+ 'o' : 'お',
+ 'xa' : 'ぁ',
+ 'xi' : 'ぃ',
+ 'xu' : 'ぅ',
+ 'xe' : 'ぇ',
+ 'xo' : 'ぉ',
+ 'la' : 'ぁ',
+ 'li' : 'ぃ',
+ 'lu' : 'ぅ',
+ 'le' : 'ぇ',
+ 'lo' : 'ぉ',
+ 'wha' : 'うぁ',
+ 'whi' : 'うぃ',
+ 'whe' : 'うぇ',
+ 'who' : 'うぉ',
+ 'va' : 'ヴぁ',
+ 'vi' : 'ヴぃ',
+ 'vu' : 'ヴ',
+ 've' : 'ヴぇ',
+ 'vo' : 'ヴぉ',
+ 'ka' : 'か',
+ 'ki' : 'き',
+ 'ku' : 'く',
+ 'ke' : 'け',
+ 'ko' : 'こ',
+ 'lka' : 'ヵ',
+ 'lke' : 'ヶ',
+# u'xka' : u'ゕ',
+ 'xka' : 'ヵ',
+# u'xke' : u'ゖ',
+ 'xke' : 'ヶ',
+ 'ga' : 'が',
+ 'gi' : 'ぎ',
+ 'gu' : 'ぐ',
+ 'ge' : 'げ',
+ 'go' : 'ご',
+ 'kya' : 'きゃ',
+ 'kyi' : 'きぃ',
+ 'kyu' : 'きゅ',
+ 'kye' : 'きぇ',
+ 'kyo' : 'きょ',
+ 'kwa' : 'くぁ',
+ 'gya' : 'ぎゃ',
+ 'gyi' : 'ぎぃ',
+ 'gyu' : 'ぎゅ',
+ 'gye' : 'ぎぇ',
+ 'gyo' : 'ぎょ',
+ 'gwa' : 'ぐぁ',
+ 'sa' : 'さ',
+ 'si' : 'し',
+ 'su' : 'す',
+ 'se' : 'せ',
+ 'so' : 'そ',
+ 'za' : 'ざ',
+ 'zi' : 'じ',
+ 'zu' : 'ず',
+ 'ze' : 'ぜ',
+ 'zo' : 'ぞ',
+ 'sya' : 'しゃ',
+ 'syi' : 'しぃ',
+ 'syu' : 'しゅ',
+ 'sye' : 'しぇ',
+ 'syo' : 'しょ',
+ 'sha' : 'しゃ',
+ 'shi' : 'し',
+ 'shu' : 'しゅ',
+ 'she' : 'しぇ',
+ 'sho' : 'しょ',
+ 'zya' : 'じゃ',
+ 'zyi' : 'じぃ',
+ 'zyu' : 'じゅ',
+ 'zye' : 'じぇ',
+ 'zyo' : 'じょ',
+ 'ja' : 'じゃ',
+ 'jya' : 'じゃ',
+ 'ji' : 'じ',
+ 'jyi' : 'じぃ',
+ 'ju' : 'じゅ',
+ 'jyu' : 'じゅ',
+ 'je' : 'じぇ',
+ 'jye' : 'じぇ',
+ 'jo' : 'じょ',
+ 'jyo' : 'じょ',
+ 'ta' : 'た',
+ 'ti' : 'ち',
+ 'tu' : 'つ',
+ 'tsu' : 'つ',
+ 'te' : 'て',
+ 'to' : 'と',
+ 'da' : 'だ',
+ 'di' : 'ぢ',
+ 'du' : 'づ',
+ 'de' : 'で',
+ 'do' : 'ど',
+ 'xtu' : 'っ',
+ 'xtsu' : 'っ',
+ 'ltu' : 'っ',
+ 'ltsu' : 'っ',
+ 'tya' : 'ちゃ',
+ 'tyi' : 'ちぃ',
+ 'tyu' : 'ちゅ',
+ 'tye' : 'ちぇ',
+ 'tyo' : 'ちょ',
+ 'cya' : 'ちゃ',
+ 'cyi' : 'ちぃ',
+ 'cyu' : 'ちゅ',
+ 'cye' : 'ちぇ',
+ 'cyo' : 'ちょ',
+ 'cha' : 'ちゃ',
+ 'chi' : 'ち',
+ 'chu' : 'ちゅ',
+ 'che' : 'ちぇ',
+ 'cho' : 'ちょ',
+ 'dya' : 'ぢゃ',
+ 'dyi' : 'ぢぃ',
+ 'dyu' : 'ぢゅ',
+ 'dye' : 'ぢぇ',
+ 'dyo' : 'ぢょ',
+ 'tsa' : 'つぁ',
+ 'tsi' : 'つぃ',
+ 'tse' : 'つぇ',
+ 'tso' : 'つぉ',
+ 'tha' : 'てゃ',
+ 'thi' : 'てぃ',
+ 'thu' : 'てゅ',
+ 'the' : 'てぇ',
+ 'tho' : 'てょ',
+ 'twu' : 'とぅ',
+ 'dha' : 'でゃ',
+ 'dhi' : 'でぃ',
+ 'dhu' : 'でゅ',
+ 'dhe' : 'でぇ',
+ 'dho' : 'でょ',
+ 'dwu' : 'どぅ',
+ 'na' : 'な',
+ 'ni' : 'に',
+ 'nu' : 'ぬ',
+ 'ne' : 'ね',
+ 'no' : 'の',
+ 'nya' : 'にゃ',
+ 'nyi' : 'にぃ',
+ 'nyu' : 'にゅ',
+ 'nye' : 'にぇ',
+ 'nyo' : 'にょ',
+ 'ha' : 'は',
+ 'hi' : 'ひ',
+ 'hu' : 'ふ',
+ 'he' : 'へ',
+ 'ho' : 'ほ',
+ 'ba' : 'ば',
+ 'bi' : 'び',
+ 'bu' : 'ぶ',
+ 'be' : 'べ',
+ 'bo' : 'ぼ',
+ 'pa' : 'ぱ',
+ 'pi' : 'ぴ',
+ 'pu' : 'ぷ',
+ 'pe' : 'ぺ',
+ 'po' : 'ぽ',
+ 'hya' : 'ひゃ',
+ 'hyi' : 'ひぃ',
+ 'hyu' : 'ひゅ',
+ 'hye' : 'ひぇ',
+ 'hyo' : 'ひょ',
+ 'bya' : 'びゃ',
+ 'byi' : 'びぃ',
+ 'byu' : 'びゅ',
+ 'bye' : 'びぇ',
+ 'byo' : 'びょ',
+ 'pya' : 'ぴゃ',
+ 'pyi' : 'ぴぃ',
+ 'pyu' : 'ぴゅ',
+ 'pye' : 'ぴぇ',
+ 'pyo' : 'ぴょ',
+ 'fa' : 'ふぁ',
+ 'fi' : 'ふぃ',
+ 'fu' : 'ふ',
+ 'fe' : 'ふぇ',
+ 'fo' : 'ふぉ',
+ 'fya' : 'ふゃ',
+ 'fyi' : 'ふぃ',
+ 'fyu' : 'ふゅ',
+ 'fye' : 'ふぇ',
+ 'fyo' : 'ふょ',
+ 'ma' : 'ま',
+ 'mi' : 'み',
+ 'mu' : 'む',
+ 'me' : 'め',
+ 'mo' : 'も',
+ 'mya' : 'みゃ',
+ 'myi' : 'みぃ',
+ 'myu' : 'みゅ',
+ 'mye' : 'みぇ',
+ 'myo' : 'みょ',
+ 'ya' : 'や',
+ 'yi' : 'い',
+ 'yu' : 'ゆ',
+ 'ye' : 'いぇ',
+ 'yo' : 'よ',
+ 'lya' : 'ゃ',
+ 'lyi' : 'ぃ',
+ 'lyu' : 'ゅ',
+ 'lye' : 'ぇ',
+ 'lyo' : 'ょ',
+ 'xya' : 'ゃ',
+ 'xyi' : 'ぃ',
+ 'xyu' : 'ゅ',
+ 'xye' : 'ぇ',
+ 'xyo' : 'ょ',
+ 'ra' : 'ら',
+ 'ri' : 'り',
+ 'ru' : 'る',
+ 're' : 'れ',
+ 'ro' : 'ろ',
+ 'rya' : 'りゃ',
+ 'ryi' : 'りぃ',
+ 'ryu' : 'りゅ',
+ 'rye' : 'りぇ',
+ 'ryo' : 'りょ',
+ 'wa' : 'わ',
+ 'wi' : 'うぃ',
+ 'wu' : 'う',
+ 'we' : 'うぇ',
+ 'wo' : 'を',
+ 'lwa' : 'ゎ',
+ 'xwa' : 'ゎ',
+ 'n\'' : 'ん',
+ 'nn' : 'ん',
+ 'wyi' : 'ゐ',
+ 'wye' : 'ゑ',
+}
+
+symbol_rule = {
+ # symbols
+ ' ' : ' ',
+ ',' : '、',
+ '.' : '。',
+ '!' : '!',
+ '"' : '\u201d',
+ '#' : '#',
+ '$' : '$',
+ '%' : '%',
+ '&' : '&',
+ '\'' : '\u2019',
+ '(' : '(',
+ ')' : ')',
+ '~' : '\uff5e',
+ '-' : 'ー',
+ '=' : '=',
+ '^' : '^',
+ '\\' : '\',
+ '|' : '|',
+ '`' : '\u2018',
+ '@' : '@',
+ '{' : '{',
+ '[' : '「',
+ '+' : '+',
+ ';' : ';',
+ '*' : '*',
+ ':' : ':',
+ '}' : '}',
+ ']' : '」',
+ '<' : '<',
+ '>' : '>',
+ '?' : '?',
+ '/' : '/',
+ '_' : '_',
+ '¥' : '¥',
+
+ # numbers
+ '0': '0',
+ '1': '1',
+ '2': '2',
+ '3': '3',
+ '4': '4',
+ '5': '5',
+ '6': '6',
+ '7': '7',
+ '8': '8',
+ '9': '9',
+}
+
+# this is only used with romaji_typing_rule
+romaji_double_consonat_typing_rule = {
+ # double consonant rule
+ 'bb' : ('っ', 'b'),
+ 'cc' : ('っ', 'c'),
+ 'dd' : ('っ', 'd'),
+ 'ff' : ('っ', 'f'),
+ 'gg' : ('っ', 'g'),
+ 'hh' : ('っ', 'h'),
+ 'jj' : ('っ', 'j'),
+ 'kk' : ('っ', 'k'),
+ 'mm' : ('っ', 'm'),
+ 'pp' : ('っ', 'p'),
+ 'rr' : ('っ', 'r'),
+ 'ss' : ('っ', 's'),
+ 'tt' : ('っ', 't'),
+ 'vv' : ('っ', 'v'),
+ 'ww' : ('っ', 'w'),
+ 'xx' : ('っ', 'x'),
+ 'yy' : ('っ', 'y'),
+ 'zz' : ('っ', 'z'),
+}
+
+# this is only used with romaji_typing_rule
+romaji_correction_rule = {
+ 'nb' : ('ん', 'b'),
+ 'nc' : ('ん', 'c'),
+ 'nd' : ('ん', 'd'),
+ 'nf' : ('ん', 'f'),
+ 'ng' : ('ん', 'g'),
+ 'nh' : ('ん', 'h'),
+ 'nj' : ('ん', 'j'),
+ 'nk' : ('ん', 'k'),
+ 'nl' : ('ん', 'l'),
+ 'nm' : ('ん', 'm'),
+ 'np' : ('ん', 'p'),
+ 'nr' : ('ん', 'r'),
+ 'ns' : ('ん', 's'),
+ 'nt' : ('ん', 't'),
+ 'nv' : ('ん', 'v'),
+ 'nw' : ('ん', 'w'),
+ 'nx' : ('ん', 'x'),
+ 'nz' : ('ん', 'z'),
+ 'n\0' : ('ん', ''),
+ 'n,' : ('ん', ','),
+ 'n.' : ('ん', '.'),
+}
+
+# EUC-JP and SJIS do not have the chars
+romaji_utf8_rule = {
+ 'う゛' : ['ゔ'],
+}
+
+# Hiragana normalization is needed for the personal dict.
+romaji_normalize_rule = {
+ 'ヴ' : ['う゛'],
+}
+
+# a port of 101kana.sty from scim-anthy
+kana_typing_rule_static = {
+ # no modifiers keys
+ '1' : 'ぬ',
+ '2' : 'ふ',
+ '3' : 'あ',
+ '4' : 'う',
+ '5' : 'え',
+ '6' : 'お',
+ '7' : 'や',
+ '8' : 'ゆ',
+ '9' : 'よ',
+ '0' : 'わ',
+ '-' : 'ほ',
+ '^' : 'へ',
+
+ 'q' : 'た',
+ 'w' : 'て',
+ 'e' : 'い',
+ 'r' : 'す',
+ 't' : 'か',
+ 'y' : 'ん',
+ 'u' : 'な',
+ 'i' : 'に',
+ 'o' : 'ら',
+ 'p' : 'せ',
+ '@' : '゛',
+ '[' : '゜',
+
+ 'a' : 'ち',
+ 's' : 'と',
+ 'd' : 'し',
+ 'f' : 'は',
+ 'g' : 'き',
+ 'h' : 'く',
+ 'j' : 'ま',
+ 'k' : 'の',
+ 'l' : 'り',
+ ';' : 'れ',
+ ':' : 'け',
+ ']' : 'む',
+
+ 'z' : 'つ',
+ 'x' : 'さ',
+ 'c' : 'そ',
+ 'v' : 'ひ',
+ 'b' : 'こ',
+ 'n' : 'み',
+ 'm' : 'も',
+ ',' : 'ね',
+ '.' : 'る',
+ '/' : 'め',
+ # u'\\' : u'ー',
+ '\\' : 'ろ',
+
+ # shift modifiered keys
+ '!' : 'ぬ',
+ '"' : 'ふ',
+ '#' : 'ぁ',
+ '$' : 'ぅ',
+ '%' : 'ぇ',
+ '&' : 'ぉ',
+ '\'' : 'ゃ',
+ '(' : 'ゅ',
+ ')' : 'ょ',
+ '~' : 'を',
+ '=' : 'ほ',
+ '|' : 'ー',
+
+ 'Q' : 'た',
+ 'W' : 'て',
+ 'E' : 'ぃ',
+ 'R' : 'す',
+ 'T' : 'ヵ',
+ 'Y' : 'ん',
+ 'U' : 'な',
+ 'I' : 'に',
+ 'O' : 'ら',
+ 'P' : 'せ',
+ '`' : '゛',
+
+ '{' : '「',
+
+ 'A' : 'ち',
+ 'S' : 'と',
+ 'D' : 'し',
+ 'F' : 'ゎ',
+ 'G' : 'き',
+ 'H' : 'く',
+ 'J' : 'ま',
+ 'K' : 'の',
+ 'L' : 'り',
+ '+' : 'れ',
+ '*' : 'ヶ',
+
+ '}' : '」',
+
+ 'Z' : 'っ',
+ 'X' : 'さ',
+ 'C' : 'そ',
+ 'V' : 'ゐ',
+ 'B' : 'こ',
+ 'M' : 'も',
+ 'N' : 'み',
+ '<' : '、',
+ '>' : '。',
+
+ '?' : '・',
+ '_' : 'ろ',
+
+ '¥' : 'ー',
+}
+
+kana_voiced_consonant_no_rule = {
+ 'か' : 'が',
+ 'き' : 'ぎ',
+ 'く' : 'ぐ',
+ 'け' : 'げ',
+ 'こ' : 'ご',
+ 'さ' : 'ざ',
+ 'し' : 'じ',
+ 'す' : 'ず',
+ 'せ' : 'ぜ',
+ 'そ' : 'ぞ',
+ 'た' : 'だ',
+ 'ち' : 'ぢ',
+ 'つ' : 'づ',
+ 'て' : 'で',
+ 'と' : 'ど',
+ 'は' : 'ば',
+ 'ひ' : 'び',
+ 'ふ' : 'ぶ',
+ 'へ' : 'べ',
+ 'ほ' : 'ぼ',
+}
+
+kana_semi_voiced_consonant_no_rule = {
+ 'は' : 'ぱ',
+ 'ひ' : 'ぴ',
+ 'ふ' : 'ぷ',
+ 'へ' : 'ぺ',
+ 'ほ' : 'ぽ',
+}
+
+# Create the table dynamically with kana_voiced_consonant_no_rule
+#
+#kana_voiced_consonant_rule = {
+# u'か@' : u'が',
+# u'き@' : u'ぎ',
+# u'く@' : u'ぐ',
+# u'け@' : u'げ',
+# u'こ@' : u'ご',
+# u'さ@' : u'ざ',
+# u'し@' : u'じ',
+# u'す@' : u'ず',
+# u'せ@' : u'ぜ',
+# u'そ@' : u'ぞ',
+# u'た@' : u'だ',
+# u'ち@' : u'ぢ',
+# u'つ@' : u'づ',
+# u'て@' : u'で',
+# u'と@' : u'ど',
+# u'は@' : u'ば',
+# u'ひ@' : u'び',
+# u'ふ@' : u'ぶ',
+# u'へ@' : u'べ',
+# u'ほ@' : u'ぼ',
+# u'か`' : u'が',
+# u'き`' : u'ぎ',
+# u'く`' : u'ぐ',
+# u'け`' : u'げ',
+# u'こ`' : u'ご',
+# u'さ`' : u'ざ',
+# u'し`' : u'じ',
+# u'す`' : u'ず',
+# u'せ`' : u'ぜ',
+# u'そ`' : u'ぞ',
+# u'た`' : u'だ',
+# u'ち`' : u'ぢ',
+# u'つ`' : u'づ',
+# u'て`' : u'で',
+# u'と`' : u'ど',
+# u'は`' : u'ば',
+# u'ひ`' : u'び',
+# u'ふ`' : u'ぶ',
+# u'へ`' : u'べ',
+# u'ほ`' : u'ぼ',
+# u'は[' : u'ぱ',
+# u'ひ[' : u'ぴ',
+# u'ふ[' : u'ぷ',
+# u'へ[' : u'ぺ',
+# u'ほ[' : u'ぽ',
+#}
+#
+#kana_voiced_consonant_us_rule = {
+# u'か[' : u'が',
+# u'き[' : u'ぎ',
+# u'く[' : u'ぐ',
+# u'け[' : u'げ',
+# u'こ[' : u'ご',
+# u'さ[' : u'ざ',
+# u'し[' : u'じ',
+# u'す[' : u'ず',
+# u'せ[' : u'ぜ',
+# u'そ[' : u'ぞ',
+# u'た[' : u'だ',
+# u'ち[' : u'ぢ',
+# u'つ[' : u'づ',
+# u'て[' : u'で',
+# u'と[' : u'ど',
+# u'は[' : u'ば',
+# u'ひ[' : u'び',
+# u'ふ[' : u'ぶ',
+# u'へ[' : u'べ',
+# u'ほ[' : u'ぼ',
+# u'は]' : u'ぱ',
+# u'ひ]' : u'ぴ',
+# u'ふ]' : u'ぷ',
+# u'へ]' : u'ぺ',
+# u'ほ]' : u'ぽ',
+#}
+
+#hiragana, katakana, half_katakana
+hiragana_katakana_table = {
+ 'あ' : ('ア', 'ア'),
+ 'い' : ('イ', 'イ'),
+ 'う' : ('ウ', 'ウ'),
+ 'え' : ('エ', 'エ'),
+ 'お' : ('オ', 'オ'),
+ 'か' : ('カ', 'カ'),
+ 'き' : ('キ', 'キ'),
+ 'く' : ('ク', 'ク'),
+ 'け' : ('ケ', 'ケ'),
+ 'こ' : ('コ', 'コ'),
+ 'が' : ('ガ', 'ガ'),
+ 'ぎ' : ('ギ', 'ギ'),
+ 'ぐ' : ('グ', 'グ'),
+ 'げ' : ('ゲ', 'ゲ'),
+ 'ご' : ('ゴ', 'ゴ'),
+ 'さ' : ('サ', 'サ'),
+ 'し' : ('シ', 'シ'),
+ 'す' : ('ス', 'ス'),
+ 'せ' : ('セ', 'セ'),
+ 'そ' : ('ソ', 'ソ'),
+ 'ざ' : ('ザ', 'ザ'),
+ 'じ' : ('ジ', 'ジ'),
+ 'ず' : ('ズ', 'ズ'),
+ 'ぜ' : ('ゼ', 'ゼ'),
+ 'ぞ' : ('ゾ', 'ゾ'),
+ 'た' : ('タ', 'タ'),
+ 'ち' : ('チ', 'チ'),
+ 'つ' : ('ツ', 'ツ'),
+ 'て' : ('テ', 'テ'),
+ 'と' : ('ト', 'ト'),
+ 'だ' : ('ダ', 'ダ'),
+ 'ぢ' : ('ヂ', 'ヂ'),
+ 'づ' : ('ヅ', 'ヅ'),
+ 'で' : ('デ', 'デ'),
+ 'ど' : ('ド', 'ド'),
+ 'な' : ('ナ', 'ナ'),
+ 'に' : ('ニ', 'ニ'),
+ 'ぬ' : ('ヌ', 'ヌ'),
+ 'ね' : ('ネ', 'ネ'),
+ 'の' : ('ノ', 'ノ'),
+ 'は' : ('ハ', 'ハ'),
+ 'ひ' : ('ヒ', 'ヒ'),
+ 'ふ' : ('フ', 'フ'),
+ 'へ' : ('ヘ', 'ヘ'),
+ 'ほ' : ('ホ', 'ホ'),
+ 'ば' : ('バ', 'バ'),
+ 'び' : ('ビ', 'ビ'),
+ 'ぶ' : ('ブ', 'ブ'),
+ 'べ' : ('ベ', 'ベ'),
+ 'ぼ' : ('ボ', 'ボ'),
+ 'ぱ' : ('パ', 'パ'),
+ 'ぴ' : ('ピ', 'ピ'),
+ 'ぷ' : ('プ', 'プ'),
+ 'ぺ' : ('ペ', 'ペ'),
+ 'ぽ' : ('ポ', 'ポ'),
+ 'ま' : ('マ', 'マ'),
+ 'み' : ('ミ', 'ミ'),
+ 'む' : ('ム', 'ム'),
+ 'め' : ('メ', 'メ'),
+ 'も' : ('モ', 'モ'),
+ 'や' : ('ヤ', 'ヤ'),
+ 'ゆ' : ('ユ', 'ユ'),
+ 'よ' : ('ヨ', 'ヨ'),
+ 'ら' : ('ラ', 'ラ'),
+ 'り' : ('リ', 'リ'),
+ 'る' : ('ル', 'ル'),
+ 'れ' : ('レ', 'レ'),
+ 'ろ' : ('ロ', 'ロ'),
+ 'わ' : ('ワ', 'ワ'),
+ 'を' : ('ヲ', 'ヲ'),
+ 'ん' : ('ン', 'ン'),
+ 'ぁ' : ('ァ', 'ァ'),
+ 'ぃ' : ('ィ', 'ィ'),
+ 'ぅ' : ('ゥ', 'ゥ'),
+ 'ぇ' : ('ェ', 'ェ'),
+ 'ぉ' : ('ォ', 'ォ'),
+ 'っ' : ('ッ', 'ッ'),
+ 'ゃ' : ('ャ', 'ャ'),
+ 'ゅ' : ('ュ', 'ュ'),
+ 'ょ' : ('ョ', 'ョ'),
+ 'ヵ' : ('ヵ', 'カ'),
+ 'ヶ' : ('ヶ', 'ケ'),
+ 'ゎ' : ('ヮ', 'ワ'),
+ 'ゐ' : ('ヰ', 'ィ'),
+ 'ゑ' : ('ヱ', 'ェ'),
+ 'ヴ' : ('ヴ', 'ヴ'),
+
+ # symbols
+ 'ー' : ('ー', 'ー'),
+ '、' : ('、', '、'),
+ '。' : ('。', '。'),
+ '!' : ('!', '!'),
+ '\u201d' : ('\u201d', '"'),
+ '#' : ('#', '#'),
+ '$' : ('$', '$'),
+ '%' : ('%', '%'),
+ '&' : ('&', '&'),
+ '\u2019' : ('\u2019', '\''),
+ '(' : ('(', '('),
+ ')' : (')', ')'),
+ '\uff5e' : ('\uff5e', '~'),
+ '=' : ('=', '='),
+ '^' : ('^', '^'),
+ '\' : ('\', '\\'),
+ '|' : ('|', '|'),
+ '\u2018' : ('\u2018', '`'),
+ '@' : ('@', '@'),
+ '゛' : ('゛', '゙'),
+ '{' : ('{', '{'),
+ '゜' : ('゜', '゚'),
+ '「' : ('「', '「'),
+ '+' : ('+', '+'),
+ ';' : (';', ';'),
+ '*' : ('*', '*'),
+ ':' : (':', ':'),
+ '}' : ('}', '}'),
+ '」' : ('」', '」'),
+ '<' : ('<', '<'),
+ '>' : ('>', '>'),
+ '?' : ('?', '?'),
+ '・' : ('・', '・'),
+ '/' : ('/', '/'),
+ '_' : ('_', '_'),
+ '¥' : ('¥', '¥'),
+
+ # numbers
+ '0': ('0', '0'),
+ '1': ('1', '1'),
+ '2': ('2', '2'),
+ '3': ('3', '3'),
+ '4': ('4', '4'),
+ '5': ('5', '5'),
+ '6': ('6', '6'),
+ '7': ('7', '7'),
+ '8': ('8', '8'),
+ '9': ('9', '9'),
+}