summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2009-01-14 10:21:41 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2009-01-14 10:21:41 +0800
commit5d7b535d5b6ccbe129c2c76b038b4c9016c9b7ea (patch)
tree3a348d524a2a44f9e862bfa29d7457dfb155553b
parent5950579d59e2a04776fab64d5d05bf0e05706505 (diff)
parent7d7382e1172a9eea4c62589ea4f2d2a19a3c4a28 (diff)
downloadibus-anthy-5d7b535d5b6ccbe129c2c76b038b4c9016c9b7ea.tar.gz
Merge commit 'matsuu/master'
-rw-r--r--engine/engine.py9
-rw-r--r--engine/romaji.py11
-rw-r--r--engine/tables.py11
3 files changed, 26 insertions, 5 deletions
diff --git a/engine/engine.py b/engine/engine.py
index 5eefd22..271e280 100644
--- a/engine/engine.py
+++ b/engine/engine.py
@@ -568,6 +568,15 @@ class Engine(ibus.EngineBase):
return True
def __on_key_space(self):
+ if self.__input_mode == INPUT_MODE_WIDE_LATIN:
+ # Input Wide Latin chars
+ char = unichr(keysyms.space)
+ wide_char = symbol_rule.get(char, None)
+ if wide_char == None:
+ wide_char = ibus.unichar_half_to_full(char)
+ self.__commit_string(wide_char)
+ return True
+
if self.__preedit_ja_string.is_empty():
return False
diff --git a/engine/romaji.py b/engine/romaji.py
index 90437f1..34a1dde 100644
--- a/engine/romaji.py
+++ b/engine/romaji.py
@@ -56,6 +56,12 @@ class RomajiSegment(segment.Segment):
self._jachars = jachars
return [RomajiSegment(c)]
+ jachars, c = romaji_correction_rule.get(text, (None, None))
+ if jachars:
+ self._enchars = text[0]
+ self._jachars = jachars
+ return [RomajiSegment(c)]
+
for i in range(-min(4, len(text)), 0):
enchars = text[i:]
@@ -107,6 +113,11 @@ class RomajiSegment(segment.Segment):
self._enchars = c
return [RomajiSegment(text[0], jachars)]
+ jachars, c = romaji_correction_rule.get(text, (None, None))
+ if jachars:
+ self._enchars = c
+ return [RomajiSegment(text[0], jachars)]
+
for i in range(min(4, len(text)), 0, -1):
enchars = text[:i]
diff --git a/engine/tables.py b/engine/tables.py
index 7ef0699..6a19979 100644
--- a/engine/tables.py
+++ b/engine/tables.py
@@ -228,6 +228,7 @@ romaji_typing_rule = {
symbol_rule = {
# symbols
+ u" " : u" ",
u"," : u"、",
u"." : u"。",
u"!" : u"!",
@@ -570,22 +571,22 @@ 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"^" : (u"^", u"u"),
+ u"^" : (u"^", u"^"),
u"\" : (u"\", u"\\"),
u"|" : (u"|", u"|"),
u"‘" : (u"‘", u"`"),
u"@" : (u"@", u"@"),
- u"{" : (u"{", u""),
+ u"{" : (u"{", u"{"),
u"「" : (u"「", u"「"),
u"+" : (u"+", u"+"),
u";" : (u";", u";"),
u"*" : (u"*", u"*"),
- u":" : (u":", u" : u"),
- u"}" : (u"}", u")"),
+ u":" : (u":", u":"),
+ u"}" : (u"}", u"}"),
u"」" : (u"」", u"」"),
u"<" : (u"<", u"<"),
u">" : (u">", u">"),