Skip to content

Commit

Permalink
Added us layout table for Kana.
Browse files Browse the repository at this point in the history
  • Loading branch information
fujiwarat committed Oct 19, 2012
1 parent 3800c47 commit d5fd7c7
Show file tree
Hide file tree
Showing 4 changed files with 195 additions and 8 deletions.
9 changes: 7 additions & 2 deletions engine/kana.py
Expand Up @@ -30,6 +30,7 @@


class KanaSegment(segment.Segment): class KanaSegment(segment.Segment):
_prefs = None _prefs = None
_kana_typing_rule_method = 'jp'
_kana_typing_rule_section = None _kana_typing_rule_section = None


def __init__(self, enchars=u'', jachars=u''): def __init__(self, enchars=u'', jachars=u''):
Expand All @@ -45,7 +46,8 @@ def _init_kana_typing_rule(cls, prefs):
return return
method = prefs.get_value('kana_typing_rule', 'method') method = prefs.get_value('kana_typing_rule', 'method')
if method == None: if method == None:
method = 'default' method = 'jp'
cls._kana_typing_rule_method = method
cls._kana_typing_rule_section = 'kana_typing_rule/' + method cls._kana_typing_rule_section = 'kana_typing_rule/' + method
if cls._kana_typing_rule_section not in prefs.sections(): if cls._kana_typing_rule_section not in prefs.sections():
cls._kana_typing_rule_section = None cls._kana_typing_rule_section = None
Expand Down Expand Up @@ -86,7 +88,10 @@ def append(self, enchar):
return [] return []
if self._jachars: if self._jachars:
text = self._jachars + enchar text = self._jachars + enchar
jachars = kana_voiced_consonant_rule.get(text, None) if self._kana_typing_rule_method == 'us':
jachars = kana_voiced_consonant_us_rule.get(text, None)
else:
jachars = kana_voiced_consonant_rule.get(text, None)
if jachars: if jachars:
self._enchars = self._enchars + enchar self._enchars = self._enchars + enchar
self._jachars = jachars self._jachars = jachars
Expand Down
48 changes: 48 additions & 0 deletions engine/tables.py
Expand Up @@ -529,6 +529,54 @@
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'ご',
u'さ{' : u'ざ',
u'し{' : u'じ',
u'す{' : u'ず',
u'せ{' : u'ぜ',
u'そ{' : u'ぞ',
u'た{' : u'だ',
u'ち{' : u'ぢ',
u'つ{' : u'づ',
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, half_katakana
hiragana_katakana_table = { hiragana_katakana_table = {
u'あ' : (u'ア', u'ア'), u'あ' : (u'ア', u'ア'),
Expand Down
115 changes: 112 additions & 3 deletions setup/anthyprefs.py.in
Expand Up @@ -544,11 +544,11 @@ _config = {
}, },


'kana_typing_rule': { 'kana_typing_rule': {
'method': 'default', 'method': 'jp',
'newkeys': [], 'newkeys': [],
}, },


'kana_typing_rule/default': { 'kana_typing_rule/jp': {
# no modifiers keys # no modifiers keys
'1' : 'ぬ', '1' : 'ぬ',
'2' : 'ふ', '2' : 'ふ',
Expand Down Expand Up @@ -613,7 +613,7 @@ _config = {
'(' : 'ゅ', '(' : 'ゅ',
')' : 'ょ', ')' : 'ょ',
'~' : 'を', '~' : 'を',
'=' : '', '=' : '',
'|' : 'ー', '|' : 'ー',


'Q' : 'た', 'Q' : 'た',
Expand Down Expand Up @@ -660,6 +660,115 @@ _config = {
'¥' : 'ー', '¥' : 'ー',
}, },


'kana_typing_rule/us': {
# 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' : 'も',
',' : 'ね',
'.' : 'る',
'/' : 'め',

# 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' : 'み',
'<' : '、',
'>' : '。',

'?' : '・',
},
'thumb': { 'thumb': {
'keyboard_layout_mode': True, 'keyboard_layout_mode': True,
'keyboard_layout': 0, 'keyboard_layout': 0,
Expand Down
31 changes: 28 additions & 3 deletions setup/main.py
Expand Up @@ -427,6 +427,12 @@ def __show_dialog_custom_key_table_extention(self, mode):
entry_left.show() entry_left.show()
label_right.show() label_right.show()
entry_right.show() entry_right.show()
elif mode == 'kana':
hbox_combo.show()
label_left.hide()
entry_left.hide()
label_right.hide()
entry_right.hide()
else: else:
hbox_combo.hide() hbox_combo.hide()
label_left.hide() label_left.hide()
Expand Down Expand Up @@ -494,7 +500,8 @@ def __run_dialog_custom_key_table(self, mode):
dlg.set_title(_("Customize Kana Key Table")) dlg.set_title(_("Customize Kana Key Table"))
label.set_label(_("_Kana Key Table:")) label.set_label(_("_Kana Key Table:"))
label_output.set_label(_("_Output Chars")) label_output.set_label(_("_Output Chars"))
list_labels = [['default', _("Default")]] list_labels = [['jp', _("Japanese Keyboard Layout")],
['us', _("U.S. Keyboard Layout")]]
self.__show_dialog_custom_key_table_extention(mode) self.__show_dialog_custom_key_table_extention(mode)
elif mode == 'thumb': elif mode == 'thumb':
dlg.set_title(_("Customize Thumb Shift Key Table")) dlg.set_title(_("Customize Thumb Shift Key Table"))
Expand Down Expand Up @@ -530,7 +537,7 @@ def __run_dialog_custom_key_table(self, mode):
if mode == 'kana': if mode == 'kana':
method = prefs.get_value('kana_typing_rule', 'method') method = prefs.get_value('kana_typing_rule', 'method')
if method == None: if method == None:
method = 'default' method = 'jp'
tv = self.__get_kana_treeview_custom_key_table(method) tv = self.__get_kana_treeview_custom_key_table(method)
if mode == 'thumb': if mode == 'thumb':
method = prefs.get_value('thumb_typing_rule', 'method') method = prefs.get_value('thumb_typing_rule', 'method')
Expand All @@ -539,7 +546,15 @@ def __run_dialog_custom_key_table(self, mode):
tv = self.__get_thumb_treeview_custom_key_table(method) tv = self.__get_thumb_treeview_custom_key_table(method)


self.__connect_dialog_custom_key_table_buttons(mode) self.__connect_dialog_custom_key_table_buttons(mode)
combobox.set_active(0)
id = 0
# thumb uses all tables so the default is always 0.
if mode != 'thumb':
for index, labels in enumerate(list_labels):
if labels[0] == method:
id = index
break
combobox.set_active(id)
combobox.connect('changed', self.on_cb_custom_key_table_changed, mode) combobox.connect('changed', self.on_cb_custom_key_table_changed, mode)


id = dlg.run() id = dlg.run()
Expand Down Expand Up @@ -995,6 +1010,12 @@ def on_selection_changed(self, widget, id):
set_sensitive(name, flg) set_sensitive(name, flg)


def on_selection_custom_key_table_changed(self, widget, id): def on_selection_custom_key_table_changed(self, widget, id):
l, i = widget.get_selected()
# if 'combobox_custom_key_table' is changed,
# 'treeview_custom_key_table' also receives this signal
# but no selection.
if i == None:
return
button = self.__builder.get_object('button_remove_custom_key') button = self.__builder.get_object('button_remove_custom_key')
button.set_sensitive(True) button.set_sensitive(True)


Expand Down Expand Up @@ -1054,6 +1075,7 @@ def on_cb_keymap_changed(self, widget, id):
self.__builder.get_object('btn_apply').set_sensitive(True) self.__builder.get_object('btn_apply').set_sensitive(True)


def on_cb_custom_key_table_changed(self, widget, user_data): def on_cb_custom_key_table_changed(self, widget, user_data):
prefs = self.prefs
tv = self.__builder.get_object('treeview_custom_key_table') tv = self.__builder.get_object('treeview_custom_key_table')
mode = user_data mode = user_data
id = widget.get_active() id = widget.get_active()
Expand All @@ -1067,8 +1089,11 @@ def on_cb_custom_key_table_changed(self, widget, user_data):
if mode == 'romaji': if mode == 'romaji':
tv = self.__get_romaji_treeview_custom_key_table(method) tv = self.__get_romaji_treeview_custom_key_table(method)
elif mode == 'kana': elif mode == 'kana':
prefs.set_value('kana_typing_rule', 'method', method)
self.__builder.get_object('btn_apply').set_sensitive(True)
tv = self.__get_kana_treeview_custom_key_table(method) tv = self.__get_kana_treeview_custom_key_table(method)
elif mode == 'thumb': elif mode == 'thumb':
# thumb uses all tables so do not save the method.
tv = self.__get_thumb_treeview_custom_key_table(method) tv = self.__get_thumb_treeview_custom_key_table(method)


def on_sb_changed(self, widget): def on_sb_changed(self, widget):
Expand Down

0 comments on commit d5fd7c7

Please sign in to comment.