diff options
Diffstat (limited to 'engine/python3/tables.py')
-rw-r--r-- | engine/python3/tables.py | 731 |
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'), +} |