diff options
author | Huang Peng <shawn.p.huang@gmail.com> | 2008-09-03 08:14:29 +0800 |
---|---|---|
committer | Huang Peng <shawn.p.huang@gmail.com> | 2008-09-03 08:14:29 +0800 |
commit | 8cdb785f56f3957dd0a12493a6dea88435dc4faa (patch) | |
tree | 8829300b61a8b91d8062b74b7d9e33f4138e0e06 | |
parent | ea0255953a5b6f1d2a2fc38435cf3da1ffe2988d (diff) | |
download | ibus-anthy-8cdb785f56f3957dd0a12493a6dea88435dc4faa.tar.gz |
Add Kana Typing related tables.
-rw-r--r-- | engine/engine.py | 12 | ||||
-rw-r--r-- | engine/tables.py | 188 |
2 files changed, 169 insertions, 31 deletions
diff --git a/engine/engine.py b/engine/engine.py index 074acd8..db6f195 100644 --- a/engine/engine.py +++ b/engine/engine.py @@ -803,7 +803,7 @@ class JaSegment: self.__jachars = jachars return [] - jachars, c = double_consonat_typing_rule.get(text, (None, None)) + jachars, c = romaji_double_consonat_typing_rule.get(text, (None, None)) if jachars: self.__enchars = text[0] self.__jachars = jachars @@ -818,13 +818,13 @@ class JaSegment: self.__enchars = text[:i] return [jasegment] - jachars, c = double_consonat_typing_rule.get(enchars, (None, None)) + jachars, c = romaji_double_consonat_typing_rule.get(enchars, (None, None)) if jachars: jasegment = JaSegment(enchars[:-len(c)], jachars) self.__enchars = text[:i] return [jasegment, JaSegment(c)] - jachars, c = correction_rule.get(enchars, (None, None)) + jachars, c = romaji_correction_rule.get(enchars, (None, None)) if jachars: jasegment = JaSegment(enchars[:-len(c)], jachars) self.__enchars = text[:i] @@ -849,7 +849,7 @@ class JaSegment: self.__jachars = jachars return [] - jachars, c = double_consonat_typing_rule.get(text, (None, None)) + jachars, c = romaji_double_consonat_typing_rule.get(text, (None, None)) if jachars: self.__enchars = c return [JaSegment(text[0], jachars)] @@ -863,12 +863,12 @@ class JaSegment: self.__enchars = text[i:] return [jasegment] - jachars, c = double_consonat_typing_rule.get(enchars, (None, None)) + jachars, c = romaji_double_consonat_typing_rule.get(enchars, (None, None)) if jachars: self.__enchars = c + text[i:] return [JaSegment(enchars[:-len(c)], jachars)] - jachars, c = correction_rule.get(enchars, (None, None)) + jachars, c = romaji_correction_rule.get(enchars, (None, None)) if jachars: self.__enchars = c + text[i:] return [JaSegment(enchars[:-len(c)], jachars)] diff --git a/engine/tables.py b/engine/tables.py index 5bf44f9..9694ae0 100644 --- a/engine/tables.py +++ b/engine/tables.py @@ -260,7 +260,8 @@ romaji_typing_rule = { u"_" : u"_", } -double_consonat_typing_rule = { +# this is only used with romaji_typing_rule +romaji_double_consonat_typing_rule = { # double consonant rule u"bb" : (u"っ", u"b"), u"cc" : (u"っ", u"c"), @@ -282,7 +283,8 @@ double_consonat_typing_rule = { u"zz" : (u"っ", u"z"), } -correction_rule = { +# this is only used with romaji_typing_rule +romaji_oorrection_rule = { u"nb" : (u"ん", u"b"), u"nc" : (u"ん", u"c"), u"nd" : (u"ん", u"d"), @@ -303,6 +305,162 @@ correction_rule = { u"nz" : (u"ん", u"z"), } +# a port of 101kana.sty from scim-anthy +kana_typing_rule = { + # no modifiers keys + u"1" : u"ぬ", + u"2" : u"ふ", + u"3" : u"あ", + u"4" : u"う", + u"5" : u"え", + u"6" : u"お", + u"7" : u"や", + u"8" : u"ゆ", + u"9" : u"よ", + u"0" : u"わ", + u"-" : u"ほ", + u"^" : u"へ", + + u"q" : u"た", + u"w" : u"て", + u"e" : u"い", + u"r" : u"す", + u"t" : u"か", + u"y" : u"ん", + u"u" : u"な", + u"i" : u"に", + u"o" : u"ら", + u"p" : u"せ", + u"@" : u"゛", + u"[" : u"゜", + + u"a" : u"ち", + u"s" : u"と", + u"d" : u"し", + u"f" : u"は", + u"g" : u"き", + u"h" : u"く", + u"j" : u"ま", + u"k" : u"の", + u"l" : u"り", + u";" : u"れ", + u":" : u"け", + u"]" : u"む", + + u"z" : u"つ", + u"x" : u"さ", + u"c" : u"そ", + u"v" : u"ひ", + u"b" : u"こ", + u"n" : u"み", + u"m" : u"も", + u"," : u"ね", + u"." : u"る", + u"/" : u"め", + u"\\" : u"ー", + + # shift modifiered keys + 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"Q" : u"た", + u"W" : u"て", + u"E" : u"ぃ", + u"R" : u"す", + u"T" : u"ヵ", + u"Y" : u"ん", + u"U" : u"な", + u"I" : u"に", + u"O" : u"ら", + u"P" : u"せ", + u"`" : u"゛", + + u"{" : u"「", + + u"A" : u"ち", + u"S" : u"と", + u"D" : u"し", + u"F" : u"ゎ", + u"G" : u"き", + u"H" : u"く", + u"J" : u"ま", + u"K" : u"の", + u"L" : u"り", + u"+" : u"れ", + u"*" : u"ヶ", + + u"}" : u"」", + + u"Z" : u"っ", + u"X" : u"さ", + u"C" : u"そ", + u"V" : u"ゐ", + u"B" : u"こ", + u"M" : u"も", + u"N" : u"み", + + u"?" : u"・", + u"_" : u"ろ", +} + +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"ぽ", +} + symbols_set = set([ u",", u".", @@ -427,37 +585,17 @@ hiragana_katakana_table = { u"ゑ" : (u"ヱ", u"ェ"), u"ヴ" : (u"ヴ", u"ヴ"), - # double consonant rule - # u"っb" : (u"ッb", u"ッb"), - # u"っc" : (u"ッc", u"ッc"), - # u"っd" : (u"ッd", u"ッd"), - # u"っf" : (u"ッf", u"ッf"), - # u"っg" : (u"ッg", u"ッg"), - # u"っh" : (u"ッh", u"ッh"), - # u"っj" : (u"ッj", u"ッj"), - # u"っk" : (u"ッk", u"ッk"), - # u"っm" : (u"ッm", u"ッm"), - # u"っp" : (u"ッp", u"ッp"), - # u"っr" : (u"ッr", u"ッr"), - # u"っs" : (u"ッs", u"ッs"), - # u"っt" : (u"ッt", u"ッt"), - # u"っv" : (u"ッv", u"ッv"), - # u"っw" : (u"ッw", u"ッw"), - # u"っx" : (u"ッx", u"ッx"), - # u"っy" : (u"ッy", u"ッy"), - # u"っz" : (u"ッz", u"ッz"), - # symbols 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"~"), @@ -465,7 +603,7 @@ hiragana_katakana_table = { 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"「"), |