summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2008-09-03 08:14:29 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2008-09-03 08:14:29 +0800
commit8cdb785f56f3957dd0a12493a6dea88435dc4faa (patch)
tree8829300b61a8b91d8062b74b7d9e33f4138e0e06
parentea0255953a5b6f1d2a2fc38435cf3da1ffe2988d (diff)
downloadibus-anthy-8cdb785f56f3957dd0a12493a6dea88435dc4faa.tar.gz
Add Kana Typing related tables.
-rw-r--r--engine/engine.py12
-rw-r--r--engine/tables.py188
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"「"),