diff --git a/.gitignore b/.gitignore index 59e7307..22c7a15 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ ibus-anthy.png /ibus-anthy-1.5.3.tar.gz /ibus-anthy-1.5.4.tar.gz /ibus-anthy-1.5.5.tar.gz +/ibus-anthy-1.5.6.tar.gz diff --git a/ibus-anthy-HEAD.patch b/ibus-anthy-HEAD.patch index 2b36e99..8b13789 100644 --- a/ibus-anthy-HEAD.patch +++ b/ibus-anthy-HEAD.patch @@ -1,3032 +1 @@ -From ffd69683443c56910e6db6d4526992a92c222275 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Tue, 18 Feb 2014 17:36:45 +0900 -Subject: [PATCH] Fixed deprecated GtkHBox, GtkVBox and GtkStock since GTK+ - 3.10. - ---- - po/ibus-anthy.pot | 154 +++++++++++++++++++++----------- - setup/python2/main.py | 14 +-- - setup/python2/setup.ui | 237 +++++++++++++++++++++++++------------------------ - setup/python3/main.py | 10 +-- - setup/python3/setup.ui | 237 +++++++++++++++++++++++++------------------------ - 5 files changed, 361 insertions(+), 291 deletions(-) - -diff --git a/setup/python2/main.py b/setup/python2/main.py -index 98486ad..7c403b8 100644 ---- a/setup/python2/main.py -+++ b/setup/python2/main.py -@@ -4,8 +4,8 @@ - # - # Copyright (c) 2007-2008 Peng Huang - # Copyright (c) 2009 Hideaki ABE --# Copyright (c) 2010-2013 Takao Fujiwara --# Copyright (c) 2007-2013 Red Hat, Inc. -+# Copyright (c) 2010-2014 Takao Fujiwara -+# 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 -@@ -1416,14 +1416,14 @@ class AnthySetup(object): - dlg = Gtk.FileChooserDialog(title=_("Open Dictionary File"), - parent=self.__builder.get_object('main'), - action=Gtk.FileChooserAction.OPEN, -- buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, -- Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) -+ buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -+ _("_Open"), Gtk.ResponseType.OK)) - if Gtk.Buildable.get_name(widget) == 'dict:btn_edit': - dlg = Gtk.Dialog(title=_("Edit Dictionary File"), - parent=self.__builder.get_object('main'), - flags=Gtk.DialogFlags.MODAL, -- buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, -- Gtk.STOCK_OK, Gtk.ResponseType.OK)) -+ buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -+ _("_OK"), Gtk.ResponseType.OK)) - - vbox = self.__builder.get_object('dict:add_extra_vbox') - if Gtk.Buildable.get_name(widget) == 'dict:btn_add': -@@ -1518,7 +1518,7 @@ class AnthySetup(object): - dlg = Gtk.Dialog(title=_("View Dictionary File"), - parent=self.__builder.get_object('main'), - flags=Gtk.DialogFlags.MODAL, -- buttons=(Gtk.STOCK_OK, Gtk.ResponseType.OK)) -+ buttons=(_("_OK"), Gtk.ResponseType.OK)) - buffer = Gtk.TextBuffer() - buffer.set_text (lines) - text_view = Gtk.TextView.new_with_buffer(buffer) -diff --git a/setup/python2/setup.ui b/setup/python2/setup.ui -index d9ec626..dc5e7e1 100644 ---- a/setup/python2/setup.ui -+++ b/setup/python2/setup.ui -@@ -195,16 +195,18 @@ - dialog - - -- -+ - True -+ vertical - - - True - True - 6 - -- -+ - True -+ vertical - 8 - - -@@ -355,8 +357,9 @@ - 8 - 12 - -- -+ - True -+ vertical - 4 - 4 - -@@ -409,8 +412,9 @@ - - - -- -+ - True -+ vertical - 8 - - -@@ -637,8 +641,9 @@ - 8 - 4 - -- -+ - True -+ horizontal - 8 - - -@@ -773,13 +778,15 @@ - - - -- -+ - True -+ vertical - 4 - 4 - -- -+ - True -+ horizontal - 8 - - -@@ -828,6 +835,7 @@ - automatic - automatic - in -+ 300 - - - True -@@ -843,53 +851,20 @@ - - - -- -+ - True -+ horizontal - 4 - end - - -+ De_fault -+ True - True - True - True - False - -- -- -- True -- 0 -- 0 -- -- -- True -- 2 -- -- -- True -- gtk-undo -- -- -- False -- False -- 0 -- -- -- -- -- True -- De_fault -- True -- -- -- False -- False -- 1 -- -- -- -- -- -- - - - False -@@ -899,12 +874,12 @@ - - - -- gtk-edit -+ _Edit -+ True - True - True - True - False -- True - - - -@@ -1352,8 +1327,9 @@ - - - -- -+ - True -+ horizontal - 8 - - -@@ -1393,13 +1369,14 @@ - - - -- -+ - True -+ horizontal - 8 - - - True -- gtk-dialog-info -+ dialog-information - - - False -@@ -1429,8 +1406,9 @@ - - - -- -+ - True -+ horizontal - 8 - - -@@ -1471,13 +1449,14 @@ - - - -- -+ - True -+ horizontal - 8 - - - True -- gtk-dialog-info -+ dialog-information - - - False -@@ -1605,8 +1584,9 @@ - - - -- -+ - True -+ vertical - 8 - 4 - -@@ -1620,8 +1600,9 @@ - 4 - 0 - -- -+ - True -+ vertical - 4 - 4 - -@@ -1777,8 +1758,9 @@ - 4 - 0 - -- -+ - True -+ vertical - 4 - 4 - -@@ -1801,8 +1783,9 @@ - - - -- -+ - True -+ horizontal - 4 - end - -@@ -1823,12 +1806,12 @@ - - - -- gtk-add -+ _Add -+ True - True - True - True - False -- True - - - -@@ -1839,12 +1822,12 @@ - - - -- gtk-edit -+ _Edit -+ True - True - True - True - False -- True - - - -@@ -1855,12 +1838,12 @@ - - - -- gtk-delete -+ _Delete -+ True - True - True - True - False -- True - - - -@@ -1877,19 +1860,20 @@ - - - -- -+ - True -+ horizontal - 4 - end - - -- gtk-go-up -+ _Up -+ True - You can change the order on language bar - True - True - True - False -- True - - - -@@ -1900,13 +1884,13 @@ - - - -- gtk-go-down -+ _Down -+ True - You can change the order on language bar - True - True - True - False -- True - - - -@@ -1953,7 +1937,7 @@ - - - -- -+ - True - vertical - 10 -@@ -1979,18 +1963,19 @@ - - - -- -+ - True -+ horizontal - end - - -- gtk-apply -+ _Apply -+ True - True - False - True - True - False -- True - - - -@@ -2001,12 +1986,12 @@ - - - -- gtk-cancel -+ _Cancel -+ True - True - True - True - False -- True - - - -@@ -2017,12 +2002,12 @@ - - - -- gtk-ok -+ _OK -+ True - True - True - True - False -- True - - - -@@ -2053,11 +2038,13 @@ - True - dialog - -- -+ - True -+ vertical - -- -+ - True -+ vertical - 5 - 6 - -@@ -2068,6 +2055,7 @@ - automatic - automatic - in -+ 150 - - - True -@@ -2081,8 +2069,9 @@ - - - -- -+ - True -+ horizontal - 8 - - -@@ -2128,8 +2117,9 @@ - - - -- -+ - True -+ horizontal - 8 - - -@@ -2143,8 +2133,9 @@ - - - -- -+ - True -+ horizontal - - - A_lternate -@@ -2197,19 +2188,20 @@ - - - -- -+ - True -+ horizontal - 6 - end - - -- gtk-add -+ _Add -+ True - True - False - True - True - False -- True - - - -@@ -2220,12 +2212,12 @@ - - - -- gtk-refresh -+ _Refresh -+ True - False - True - True - False -- True - - - -@@ -2236,13 +2228,13 @@ - - - -- gtk-delete -+ _Delete -+ True - True - False - True - True - False -- True - - - -@@ -2264,17 +2256,18 @@ - - - -- -+ - True -+ horizontal - end - - -- gtk-cancel -+ _Cancel -+ True - True - True - True - False -- True - - - False -@@ -2284,12 +2277,12 @@ - - - -- gtk-ok -+ _OK -+ True - True - True - True - False -- True - - - False -@@ -2318,13 +2311,15 @@ - True - dialog - -- -+ - True -+ vertical - 5 - 6 - -- -+ - True -+ horizontal - 5 - 6 - -@@ -2359,8 +2354,9 @@ - - - -- -+ - True -+ horizontal - 5 - 6 - -@@ -2371,6 +2367,8 @@ - automatic - automatic - in -+ 250 -+ 300 - - - True -@@ -2383,8 +2381,9 @@ - - - -- -+ - True -+ vertical - start - 6 - -@@ -2470,12 +2469,12 @@ - - - True -- gtk-add -+ _Add -+ True - True - True - True - False -- True - - - 8 -@@ -2484,12 +2483,12 @@ - - - True -- gtk-remove -+ _Remove -+ True - True - True - True - False -- True - - - 9 -@@ -2508,16 +2507,17 @@ - - - -- -+ - True -+ horizontal - end - - - True -- gtk-close -+ _Close -+ True - True - True -- True - True - - -@@ -2551,12 +2551,14 @@ - Confirmation - You are about to close the setup dialog, is that OK? - -- -+ - True -+ vertical - 2 - -- -+ - True -+ horizontal - end - - -@@ -2586,12 +2588,14 @@ - Notice! - You are about to close the setup dialog without saving your changes, is that OK? - -- -+ - True -+ vertical - 2 - -- -+ - True -+ horizontal - end - - -@@ -2622,12 +2626,14 @@ - - - -- -+ - True -+ vertical - 2 - -- -+ - True -+ horizontal - end - - -@@ -2657,12 +2663,14 @@ - Invalid keysym - This keysym is not valid - -- -+ - True -+ vertical - 2 - -- -+ - True -+ horizontal - end - - -@@ -2680,8 +2688,9 @@ - - - -- -+ - True -+ vertical - True - 10 - -@@ -2800,8 +2809,8 @@ - IBus-Anthy - Copyright © 2007–2008 Peng Huang - Copyright © 2009 Hideaki ABE --Copyright © 2009–2013 Takao Fujiwara --Copyright © 2007–2013 Red Hat, Inc. -+Copyright © 2009–2014 Takao Fujiwara -+Copyright © 2007–2014 Red Hat, Inc. - The Anthy engine for the IBus input platform - GPL - http://code.google.com/p/ibus/ -diff --git a/setup/python3/main.py b/setup/python3/main.py -index fec03a6..2073f59 100644 ---- a/setup/python3/main.py -+++ b/setup/python3/main.py -@@ -1410,14 +1410,14 @@ class AnthySetup(object): - dlg = Gtk.FileChooserDialog(title=_("Open Dictionary File"), - parent=self.__builder.get_object('main'), - action=Gtk.FileChooserAction.OPEN, -- buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, -- Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) -+ buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -+ _("_Open"), Gtk.ResponseType.OK)) - if Gtk.Buildable.get_name(widget) == 'dict:btn_edit': - dlg = Gtk.Dialog(title=_("Edit Dictionary File"), - parent=self.__builder.get_object('main'), - flags=Gtk.DialogFlags.MODAL, -- buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, -- Gtk.STOCK_OK, Gtk.ResponseType.OK)) -+ buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -+ _("_OK"), Gtk.ResponseType.OK)) - - vbox = self.__builder.get_object('dict:add_extra_vbox') - if Gtk.Buildable.get_name(widget) == 'dict:btn_add': -@@ -1512,7 +1512,7 @@ class AnthySetup(object): - dlg = Gtk.Dialog(title=_("View Dictionary File"), - parent=self.__builder.get_object('main'), - flags=Gtk.DialogFlags.MODAL, -- buttons=(Gtk.STOCK_OK, Gtk.ResponseType.OK)) -+ buttons=(_("_OK"), Gtk.ResponseType.OK)) - buffer = Gtk.TextBuffer() - buffer.set_text (lines) - text_view = Gtk.TextView.new_with_buffer(buffer) -diff --git a/setup/python3/setup.ui b/setup/python3/setup.ui -index d9ec626..dc5e7e1 100644 ---- a/setup/python3/setup.ui -+++ b/setup/python3/setup.ui -@@ -195,16 +195,18 @@ - dialog - - -- -+ - True -+ vertical - - - True - True - 6 - -- -+ - True -+ vertical - 8 - - -@@ -355,8 +357,9 @@ - 8 - 12 - -- -+ - True -+ vertical - 4 - 4 - -@@ -409,8 +412,9 @@ - - - -- -+ - True -+ vertical - 8 - - -@@ -637,8 +641,9 @@ - 8 - 4 - -- -+ - True -+ horizontal - 8 - - -@@ -773,13 +778,15 @@ - - - -- -+ - True -+ vertical - 4 - 4 - -- -+ - True -+ horizontal - 8 - - -@@ -828,6 +835,7 @@ - automatic - automatic - in -+ 300 - - - True -@@ -843,53 +851,20 @@ - - - -- -+ - True -+ horizontal - 4 - end - - -+ De_fault -+ True - True - True - True - False - -- -- -- True -- 0 -- 0 -- -- -- True -- 2 -- -- -- True -- gtk-undo -- -- -- False -- False -- 0 -- -- -- -- -- True -- De_fault -- True -- -- -- False -- False -- 1 -- -- -- -- -- -- - - - False -@@ -899,12 +874,12 @@ - - - -- gtk-edit -+ _Edit -+ True - True - True - True - False -- True - - - -@@ -1352,8 +1327,9 @@ - - - -- -+ - True -+ horizontal - 8 - - -@@ -1393,13 +1369,14 @@ - - - -- -+ - True -+ horizontal - 8 - - - True -- gtk-dialog-info -+ dialog-information - - - False -@@ -1429,8 +1406,9 @@ - - - -- -+ - True -+ horizontal - 8 - - -@@ -1471,13 +1449,14 @@ - - - -- -+ - True -+ horizontal - 8 - - - True -- gtk-dialog-info -+ dialog-information - - - False -@@ -1605,8 +1584,9 @@ - - - -- -+ - True -+ vertical - 8 - 4 - -@@ -1620,8 +1600,9 @@ - 4 - 0 - -- -+ - True -+ vertical - 4 - 4 - -@@ -1777,8 +1758,9 @@ - 4 - 0 - -- -+ - True -+ vertical - 4 - 4 - -@@ -1801,8 +1783,9 @@ - - - -- -+ - True -+ horizontal - 4 - end - -@@ -1823,12 +1806,12 @@ - - - -- gtk-add -+ _Add -+ True - True - True - True - False -- True - - - -@@ -1839,12 +1822,12 @@ - - - -- gtk-edit -+ _Edit -+ True - True - True - True - False -- True - - - -@@ -1855,12 +1838,12 @@ - - - -- gtk-delete -+ _Delete -+ True - True - True - True - False -- True - - - -@@ -1877,19 +1860,20 @@ - - - -- -+ - True -+ horizontal - 4 - end - - -- gtk-go-up -+ _Up -+ True - You can change the order on language bar - True - True - True - False -- True - - - -@@ -1900,13 +1884,13 @@ - - - -- gtk-go-down -+ _Down -+ True - You can change the order on language bar - True - True - True - False -- True - - - -@@ -1953,7 +1937,7 @@ - - - -- -+ - True - vertical - 10 -@@ -1979,18 +1963,19 @@ - - - -- -+ - True -+ horizontal - end - - -- gtk-apply -+ _Apply -+ True - True - False - True - True - False -- True - - - -@@ -2001,12 +1986,12 @@ - - - -- gtk-cancel -+ _Cancel -+ True - True - True - True - False -- True - - - -@@ -2017,12 +2002,12 @@ - - - -- gtk-ok -+ _OK -+ True - True - True - True - False -- True - - - -@@ -2053,11 +2038,13 @@ - True - dialog - -- -+ - True -+ vertical - -- -+ - True -+ vertical - 5 - 6 - -@@ -2068,6 +2055,7 @@ - automatic - automatic - in -+ 150 - - - True -@@ -2081,8 +2069,9 @@ - - - -- -+ - True -+ horizontal - 8 - - -@@ -2128,8 +2117,9 @@ - - - -- -+ - True -+ horizontal - 8 - - -@@ -2143,8 +2133,9 @@ - - - -- -+ - True -+ horizontal - - - A_lternate -@@ -2197,19 +2188,20 @@ - - - -- -+ - True -+ horizontal - 6 - end - - -- gtk-add -+ _Add -+ True - True - False - True - True - False -- True - - - -@@ -2220,12 +2212,12 @@ - - - -- gtk-refresh -+ _Refresh -+ True - False - True - True - False -- True - - - -@@ -2236,13 +2228,13 @@ - - - -- gtk-delete -+ _Delete -+ True - True - False - True - True - False -- True - - - -@@ -2264,17 +2256,18 @@ - - - -- -+ - True -+ horizontal - end - - -- gtk-cancel -+ _Cancel -+ True - True - True - True - False -- True - - - False -@@ -2284,12 +2277,12 @@ - - - -- gtk-ok -+ _OK -+ True - True - True - True - False -- True - - - False -@@ -2318,13 +2311,15 @@ - True - dialog - -- -+ - True -+ vertical - 5 - 6 - -- -+ - True -+ horizontal - 5 - 6 - -@@ -2359,8 +2354,9 @@ - - - -- -+ - True -+ horizontal - 5 - 6 - -@@ -2371,6 +2367,8 @@ - automatic - automatic - in -+ 250 -+ 300 - - - True -@@ -2383,8 +2381,9 @@ - - - -- -+ - True -+ vertical - start - 6 - -@@ -2470,12 +2469,12 @@ - - - True -- gtk-add -+ _Add -+ True - True - True - True - False -- True - - - 8 -@@ -2484,12 +2483,12 @@ - - - True -- gtk-remove -+ _Remove -+ True - True - True - True - False -- True - - - 9 -@@ -2508,16 +2507,17 @@ - - - -- -+ - True -+ horizontal - end - - - True -- gtk-close -+ _Close -+ True - True - True -- True - True - - -@@ -2551,12 +2551,14 @@ - Confirmation - You are about to close the setup dialog, is that OK? - -- -+ - True -+ vertical - 2 - -- -+ - True -+ horizontal - end - - -@@ -2586,12 +2588,14 @@ - Notice! - You are about to close the setup dialog without saving your changes, is that OK? - -- -+ - True -+ vertical - 2 - -- -+ - True -+ horizontal - end - - -@@ -2622,12 +2626,14 @@ - - - -- -+ - True -+ vertical - 2 - -- -+ - True -+ horizontal - end - - -@@ -2657,12 +2663,14 @@ - Invalid keysym - This keysym is not valid - -- -+ - True -+ vertical - 2 - -- -+ - True -+ horizontal - end - - -@@ -2680,8 +2688,9 @@ - - - -- -+ - True -+ vertical - True - 10 - -@@ -2800,8 +2809,8 @@ - IBus-Anthy - Copyright © 2007–2008 Peng Huang - Copyright © 2009 Hideaki ABE --Copyright © 2009–2013 Takao Fujiwara --Copyright © 2007–2013 Red Hat, Inc. -+Copyright © 2009–2014 Takao Fujiwara -+Copyright © 2007–2014 Red Hat, Inc. - The Anthy engine for the IBus input platform - GPL - http://code.google.com/p/ibus/ --- -1.8.0 - -From c7caeaf8dc3aaaf5b1d546ffb418aae52b8905a4 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Wed, 16 Jul 2014 14:57:07 +0900 -Subject: [PATCH] Fixed deprecated warnings with python3-gobject 3.13.3. - -python3-gobject adds several warnings in gi/overrides/Gtk.py - -/usr/share/ibus-anthy/setup/main.py:1519: PyGTKDeprecationWarning: -The "buttons" argument must be a Gtk.ButtonsType enum value. Please -use the "add_buttons" method for adding buttons. -See: https://wiki.gnome.org/PyGObject/InitializerDeprecations - -/usr/lib64/python3.4/site-packages/gi/overrides/Gtk.py:537: -PyGTKDeprecationWarning: The keyword(s) "parent" have been deprecated -in favor of "transient_for" respectively. -See: https://wiki.gnome.org/PyGObject/InitializerDeprecations ---- - setup/python2/main.py | 52 +++++++++++++++++++++++++++++++-------------------- - setup/python3/main.py | 52 +++++++++++++++++++++++++++++++-------------------- - 2 files changed, 64 insertions(+), 40 deletions(-) - -diff --git a/setup/python2/main.py b/setup/python2/main.py -index 7c403b8..424e703 100644 ---- a/setup/python2/main.py -+++ b/setup/python2/main.py -@@ -325,11 +325,11 @@ class AnthySetup(object): - return (section, key) - - def __run_message_dialog(self, message, type=Gtk.MessageType.INFO): -- dlg = Gtk.MessageDialog(parent=self.__builder.get_object('main'), -- flags=Gtk.DialogFlags.MODAL, -- message_type=type, -- buttons=Gtk.ButtonsType.OK, -- message_format=message) -+ dlg = Gtk.MessageDialog( -+ transient_for=self.__builder.get_object('main'), -+ message_type=type, -+ buttons=Gtk.ButtonsType.OK, -+ text=message) - dlg.run() - dlg.destroy() - -@@ -420,6 +420,7 @@ class AnthySetup(object): - for key, value in sorted(rule.items(), \ - cmp = self.__japanese_tuple_sort): - ls.append(['romaji', key, value]) -+ tv.set_model(None) - tv.append_column(Gtk.TreeViewColumn(_(_("Input Chars")), - Gtk.CellRendererText(), text=1)) - tv.append_column(Gtk.TreeViewColumn(_(_("Output Chars")), -@@ -455,6 +456,7 @@ class AnthySetup(object): - for key, value in sorted(rule.items(), \ - cmp = self.__japanese_tuple_sort): - ls.append(['kana', key, value]) -+ tv.set_model(None) - tv.append_column(Gtk.TreeViewColumn(_(_("Input Chars")), - Gtk.CellRendererText(), text=1)) - tv.append_column(Gtk.TreeViewColumn(_(_("Output Chars")), -@@ -502,6 +504,7 @@ class AnthySetup(object): - for key, value in sorted(rule.items(), \ - cmp = self.__japanese_thumb_sort): - ls.append(['thumb', key, value[0], value[2], value[1]]) -+ tv.set_model(None) - tv.append_column(Gtk.TreeViewColumn(_(_("Input")), - Gtk.CellRendererText(), text=1)) - tv.append_column(Gtk.TreeViewColumn(_(_("Single")), -@@ -582,9 +585,10 @@ class AnthySetup(object): - combobox.clear() - combobox.disconnect_by_func(self.on_cb_custom_key_table_changed) - -- def __run_dialog_custom_key_table(self, mode): -+ def __run_dialog_custom_key_table(self, widget, mode): - prefs = self.prefs - dlg = self.__builder.get_object('dialog_custom_key_table') -+ dlg.set_transient_for(widget.get_toplevel()) - label = self.__builder.get_object('label_custom_key_table') - label_output = self.__builder.get_object('label_output_custom_key') - list_labels = [] -@@ -1134,6 +1138,7 @@ class AnthySetup(object): - Gtk.main_quit() - return True - dlg = self.__builder.get_object('quit_check') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Confirmation")) - dlg.format_secondary_text( - _("You are about to close the setup dialog, is that OK?")) -@@ -1150,6 +1155,7 @@ class AnthySetup(object): - Gtk.main_quit() - return True - dlg = self.__builder.get_object('quit_check_without_save') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Notice!")) - dlg.format_secondary_text( - _("You are about to close the setup dialog without saving your changes, is that OK?")) -@@ -1225,6 +1231,7 @@ class AnthySetup(object): - for w in ['es:checkbutton_ctrl', 'es:checkbutton_alt', 'es:checkbutton_shift']: - self.__builder.get_object(w).set_active(False) - dlg = self.__builder.get_object('edit_shortcut') -+ dlg.set_transient_for(widget.get_toplevel()) - id = dlg.run() - dlg.hide() - if id == Gtk.ResponseType.OK: -@@ -1245,13 +1252,13 @@ class AnthySetup(object): - self.__builder.get_object('btn_apply').set_sensitive(True) - - def on_btn_romaji_custom_table_clicked(self, widget): -- self.__run_dialog_custom_key_table('romaji') -+ self.__run_dialog_custom_key_table(widget, 'romaji') - - def on_btn_kana_custom_table_clicked(self, widget): -- self.__run_dialog_custom_key_table('kana') -+ self.__run_dialog_custom_key_table(widget, 'kana') - - def on_btn_thumb_custom_table_clicked(self, widget): -- self.__run_dialog_custom_key_table('thumb') -+ self.__run_dialog_custom_key_table(widget, 'thumb') - - def on_btn_add_custom_key(self, widget, user_data): - prefs = self.prefs -@@ -1380,6 +1387,7 @@ class AnthySetup(object): - for w in ['es:checkbutton_ctrl', 'es:checkbutton_alt', 'es:checkbutton_shift']: - self.__builder.get_object(w).set_active(False) - dlg = self.__builder.get_object('edit_shortcut') -+ dlg.set_transient_for(widget.get_toplevel()) - id = dlg.run() - dlg.hide() - self.__builder.get_object('es:button_add').show() -@@ -1414,16 +1422,17 @@ class AnthySetup(object): - - if Gtk.Buildable.get_name(widget) == 'dict:btn_add': - dlg = Gtk.FileChooserDialog(title=_("Open Dictionary File"), -- parent=self.__builder.get_object('main'), -- action=Gtk.FileChooserAction.OPEN, -- buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -- _("_Open"), Gtk.ResponseType.OK)) -+ transient_for=widget.get_toplevel(), -+ action=Gtk.FileChooserAction.OPEN) -+ buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -+ _("_Open"), Gtk.ResponseType.OK) -+ dlg.add_buttons(*buttons) - if Gtk.Buildable.get_name(widget) == 'dict:btn_edit': - dlg = Gtk.Dialog(title=_("Edit Dictionary File"), -- parent=self.__builder.get_object('main'), -- flags=Gtk.DialogFlags.MODAL, -- buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -- _("_OK"), Gtk.ResponseType.OK)) -+ transient_for=widget.get_toplevel()) -+ buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -+ _("_OK"), Gtk.ResponseType.OK) -+ dlg.add_buttons(*buttons) - - vbox = self.__builder.get_object('dict:add_extra_vbox') - if Gtk.Buildable.get_name(widget) == 'dict:btn_add': -@@ -1516,9 +1525,9 @@ class AnthySetup(object): - lines = unicode(lines, encoding).encode('utf-8') - - dlg = Gtk.Dialog(title=_("View Dictionary File"), -- parent=self.__builder.get_object('main'), -- flags=Gtk.DialogFlags.MODAL, -- buttons=(_("_OK"), Gtk.ResponseType.OK)) -+ transient_for=widget.get_toplevel()) -+ buttons=(_("_OK"), Gtk.ResponseType.OK) -+ dlg.add_buttons(*buttons) - buffer = Gtk.TextBuffer() - buffer.set_text (lines) - text_view = Gtk.TextView.new_with_buffer(buffer) -@@ -1666,6 +1675,7 @@ class AnthySetup(object): - - def on_es_button_run_input_clicked(self, widget): - dlg = self.__builder.get_object('key_input_dialog') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Please press a key (or a key combination)")) - dlg.format_secondary_text(_("The dialog will be closed when the key is released")) - id = dlg.run() -@@ -1686,6 +1696,7 @@ class AnthySetup(object): - s = self.__builder.get_object('es:entry').get_text() - if not s or not IBus.keyval_from_name(s): - dlg = self.__builder.get_object('invalid_keysym') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Invalid keysym")) - dlg.format_secondary_text(_("This keysym is not valid")) - dlg.run() -@@ -1706,6 +1717,7 @@ class AnthySetup(object): - s = self.__builder.get_object('es:entry').get_text() - if not s or not IBus.keyval_from_name(s): - dlg = self.__builder.get_object('invalid_keysym') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Invalid keysym")) - dlg.format_secondary_text(_("This keysym is not valid")) - dlg.run() -diff --git a/setup/python3/main.py b/setup/python3/main.py -index 2073f59..e1ca22e 100644 ---- a/setup/python3/main.py -+++ b/setup/python3/main.py -@@ -328,11 +328,11 @@ class AnthySetup(object): - return (section, key) - - def __run_message_dialog(self, message, type=Gtk.MessageType.INFO): -- dlg = Gtk.MessageDialog(parent=self.__builder.get_object('main'), -- flags=Gtk.DialogFlags.MODAL, -- message_type=type, -- buttons=Gtk.ButtonsType.OK, -- message_format=message) -+ dlg = Gtk.MessageDialog( -+ transient_for=self.__builder.get_object('main'), -+ message_type=type, -+ buttons=Gtk.ButtonsType.OK, -+ text=message) - dlg.run() - dlg.destroy() - -@@ -425,6 +425,7 @@ class AnthySetup(object): - for key, value in sorted(list(rule.items()), \ - key = functools.cmp_to_key(self.__japanese_tuple_sort)): - ls.append(['romaji', key, value]) -+ tv.set_model(None) - tv.append_column(Gtk.TreeViewColumn(_(_("Input Chars")), - Gtk.CellRendererText(), text=1)) - tv.append_column(Gtk.TreeViewColumn(_(_("Output Chars")), -@@ -460,6 +461,7 @@ class AnthySetup(object): - for key, value in sorted(list(rule.items()), \ - key = functools.cmp_to_key(self.__japanese_tuple_sort)): - ls.append(['kana', key, value]) -+ tv.set_model(None) - tv.append_column(Gtk.TreeViewColumn(_(_("Input Chars")), - Gtk.CellRendererText(), text=1)) - tv.append_column(Gtk.TreeViewColumn(_(_("Output Chars")), -@@ -507,6 +509,7 @@ class AnthySetup(object): - for key, value in sorted(list(rule.items()), \ - key = functools.cmp_to_key(self.__japanese_thumb_sort)): - ls.append(['thumb', key, value[0], value[2], value[1]]) -+ tv.set_model(None) - tv.append_column(Gtk.TreeViewColumn(_(_("Input")), - Gtk.CellRendererText(), text=1)) - tv.append_column(Gtk.TreeViewColumn(_(_("Single")), -@@ -587,9 +590,10 @@ class AnthySetup(object): - combobox.clear() - combobox.disconnect_by_func(self.on_cb_custom_key_table_changed) - -- def __run_dialog_custom_key_table(self, mode): -+ def __run_dialog_custom_key_table(self, widget, mode): - prefs = self.prefs - dlg = self.__builder.get_object('dialog_custom_key_table') -+ dlg.set_transient_for(widget.get_toplevel()) - label = self.__builder.get_object('label_custom_key_table') - label_output = self.__builder.get_object('label_output_custom_key') - list_labels = [] -@@ -1128,6 +1132,7 @@ class AnthySetup(object): - Gtk.main_quit() - return True - dlg = self.__builder.get_object('quit_check') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Confirmation")) - dlg.format_secondary_text( - _("You are about to close the setup dialog, is that OK?")) -@@ -1144,6 +1149,7 @@ class AnthySetup(object): - Gtk.main_quit() - return True - dlg = self.__builder.get_object('quit_check_without_save') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Notice!")) - dlg.format_secondary_text( - _("You are about to close the setup dialog without saving your changes, is that OK?")) -@@ -1219,6 +1225,7 @@ class AnthySetup(object): - for w in ['es:checkbutton_ctrl', 'es:checkbutton_alt', 'es:checkbutton_shift']: - self.__builder.get_object(w).set_active(False) - dlg = self.__builder.get_object('edit_shortcut') -+ dlg.set_transient_for(widget.get_toplevel()) - id = dlg.run() - dlg.hide() - if id == Gtk.ResponseType.OK: -@@ -1239,13 +1246,13 @@ class AnthySetup(object): - self.__builder.get_object('btn_apply').set_sensitive(True) - - def on_btn_romaji_custom_table_clicked(self, widget): -- self.__run_dialog_custom_key_table('romaji') -+ self.__run_dialog_custom_key_table(widget, 'romaji') - - def on_btn_kana_custom_table_clicked(self, widget): -- self.__run_dialog_custom_key_table('kana') -+ self.__run_dialog_custom_key_table(widget, 'kana') - - def on_btn_thumb_custom_table_clicked(self, widget): -- self.__run_dialog_custom_key_table('thumb') -+ self.__run_dialog_custom_key_table(widget, 'thumb') - - def on_btn_add_custom_key(self, widget, user_data): - prefs = self.prefs -@@ -1374,6 +1381,7 @@ class AnthySetup(object): - for w in ['es:checkbutton_ctrl', 'es:checkbutton_alt', 'es:checkbutton_shift']: - self.__builder.get_object(w).set_active(False) - dlg = self.__builder.get_object('edit_shortcut') -+ dlg.set_transient_for(widget.get_toplevel()) - id = dlg.run() - dlg.hide() - self.__builder.get_object('es:button_add').show() -@@ -1408,16 +1416,17 @@ class AnthySetup(object): - - if Gtk.Buildable.get_name(widget) == 'dict:btn_add': - dlg = Gtk.FileChooserDialog(title=_("Open Dictionary File"), -- parent=self.__builder.get_object('main'), -- action=Gtk.FileChooserAction.OPEN, -- buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -- _("_Open"), Gtk.ResponseType.OK)) -+ transient_for=widget.get_toplevel(), -+ action=Gtk.FileChooserAction.OPEN) -+ buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -+ _("_Open"), Gtk.ResponseType.OK) -+ dlg.add_buttons(*buttons) - if Gtk.Buildable.get_name(widget) == 'dict:btn_edit': - dlg = Gtk.Dialog(title=_("Edit Dictionary File"), -- parent=self.__builder.get_object('main'), -- flags=Gtk.DialogFlags.MODAL, -- buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -- _("_OK"), Gtk.ResponseType.OK)) -+ transient_for=widget.get_toplevel()) -+ buttons=(_("_Cancel"), Gtk.ResponseType.CANCEL, -+ _("_OK"), Gtk.ResponseType.OK) -+ dlg.add_buttons(*buttons) - - vbox = self.__builder.get_object('dict:add_extra_vbox') - if Gtk.Buildable.get_name(widget) == 'dict:btn_add': -@@ -1510,9 +1519,9 @@ class AnthySetup(object): - lines = str(lines, encoding) - - dlg = Gtk.Dialog(title=_("View Dictionary File"), -- parent=self.__builder.get_object('main'), -- flags=Gtk.DialogFlags.MODAL, -- buttons=(_("_OK"), Gtk.ResponseType.OK)) -+ transient_for=widget.get_toplevel()) -+ buttons=(_("_OK"), Gtk.ResponseType.OK) -+ dlg.add_buttons(*buttons) - buffer = Gtk.TextBuffer() - buffer.set_text (lines) - text_view = Gtk.TextView.new_with_buffer(buffer) -@@ -1660,6 +1669,7 @@ class AnthySetup(object): - - def on_es_button_run_input_clicked(self, widget): - dlg = self.__builder.get_object('key_input_dialog') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Please press a key (or a key combination)")) - dlg.format_secondary_text(_("The dialog will be closed when the key is released")) - id = dlg.run() -@@ -1680,6 +1690,7 @@ class AnthySetup(object): - s = self.__builder.get_object('es:entry').get_text() - if not s or not IBus.keyval_from_name(s): - dlg = self.__builder.get_object('invalid_keysym') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Invalid keysym")) - dlg.format_secondary_text(_("This keysym is not valid")) - dlg.run() -@@ -1700,6 +1711,7 @@ class AnthySetup(object): - s = self.__builder.get_object('es:entry').get_text() - if not s or not IBus.keyval_from_name(s): - dlg = self.__builder.get_object('invalid_keysym') -+ dlg.set_transient_for(widget.get_toplevel()) - dlg.set_markup('%s' % _("Invalid keysym")) - dlg.format_secondary_text(_("This keysym is not valid")) - dlg.run() --- -1.8.5.3 - -From 981c40b4a8cf42ffde07dcf5925539f337461f61 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Thu, 10 Jul 2014 17:13:49 +0900 -Subject: [PATCH] Set max-width-chars property in ibus-anthy-setup wrapped - GtkLabel. - ---- - setup/python2/setup.ui | 1 + - setup/python3/setup.ui | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/setup/python2/setup.ui b/setup/python2/setup.ui -index dc5e7e1..b6d8ef2 100644 ---- a/setup/python2/setup.ui -+++ b/setup/python2/setup.ui -@@ -1469,6 +1469,7 @@ - True - 0 - True -+ 74 - You do not have to reconfigure the system keyboard layout for "Additional Key Arrangement" since this option changes input method layout only in case input method is turned on. - You do not have to reconfigure XKB since this option changes IM layout only with IM on. - -diff --git a/setup/python3/setup.ui b/setup/python3/setup.ui -index dc5e7e1..b6d8ef2 100644 ---- a/setup/python3/setup.ui -+++ b/setup/python3/setup.ui -@@ -1469,6 +1469,7 @@ - True - 0 - True -+ 74 - You do not have to reconfigure the system keyboard layout for "Additional Key Arrangement" since this option changes input method layout only in case input method is turned on. - You do not have to reconfigure XKB since this option changes IM layout only with IM on. - --- -1.8.5.3 - -From a1e5f1ce7b87a37cab7ba458ad2343fc20056f47 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Fri, 11 Jul 2014 12:11:53 +0900 -Subject: [PATCH] Set a parent window from 'IBUS_SETUP_XID' environment - variable in setup. - ---- - setup/python2/main.py | 25 ++++++++++++++++++++----- - setup/python3/main.py | 25 ++++++++++++++++++++----- - 2 files changed, 40 insertions(+), 10 deletions(-) - -diff --git a/setup/python2/main.py b/setup/python2/main.py -index 5df1cdd..cdfdc4d 100644 ---- a/setup/python2/main.py -+++ b/setup/python2/main.py -@@ -82,22 +82,37 @@ class AnthySetup(object): - builder.add_from_file(builder_file) - - toplevel = builder.get_object('main') -+ parent_xid = 0 -+ parent_wmname = None -+ parent_wmclass = None - - try: -- gnome_control_center_xid = int(environ['GNOME_CONTROL_CENTER_XID']) -+ parent_xid = int(environ['IBUS_SETUP_XID']) -+ if parent_xid != 0: -+ parent_wmname = 'ibus-setup' -+ parent_wmclass = 'Ibus-setup' - except: -- gnome_control_center_xid = 0 -+ pass -+ -+ try: -+ if parent_xid == 0: -+ parent_xid = int(environ['GNOME_CONTROL_CENTER_XID']) -+ if parent_xid != 0: -+ parent_wmname = 'gnome-conrol-center' -+ parent_wmclass = 'Gnome-conrol-center' -+ except: -+ pass - -- if gnome_control_center_xid != 0: -+ if parent_xid != 0: - def set_transient(obj, pspec): - window = toplevel.get_window() - if window == None: - return - parent_window = GdkX11.X11Window.foreign_new_for_display(Gdk.Display.get_default(), -- gnome_control_center_xid) -+ parent_xid) - if parent_window != None: - window.set_transient_for(parent_window) -- toplevel.set_wmclass('gnome-control-center', 'Gnome-control-center') -+ toplevel.set_wmclass(parent_wmname, parent_wmclass) - toplevel.set_modal(True) - toplevel.set_type_hint(Gdk.WindowTypeHint.DIALOG) - toplevel.connect('notify::window', set_transient) -diff --git a/setup/python3/main.py b/setup/python3/main.py -index 8921402..3141bb8 100644 ---- a/setup/python3/main.py -+++ b/setup/python3/main.py -@@ -85,22 +85,37 @@ class AnthySetup(object): - builder.add_from_file(builder_file) - - toplevel = builder.get_object('main') -+ parent_xid = 0 -+ parent_wmname = None -+ parent_wmclass = None - - try: -- gnome_control_center_xid = int(environ['GNOME_CONTROL_CENTER_XID']) -+ parent_xid = int(environ['IBUS_SETUP_XID']) -+ if parent_xid != 0: -+ parent_wmname = 'ibus-setup' -+ parent_wmclass = 'Ibus-setup' - except: -- gnome_control_center_xid = 0 -+ pass -+ -+ try: -+ if parent_xid == 0: -+ parent_xid = int(environ['GNOME_CONTROL_CENTER_XID']) -+ if parent_xid != 0: -+ parent_wmname = 'gnome-conrol-center' -+ parent_wmclass = 'Gnome-conrol-center' -+ except: -+ pass - -- if gnome_control_center_xid != 0: -+ if parent_xid != 0: - def set_transient(obj, pspec): - window = toplevel.get_window() - if window == None: - return - parent_window = GdkX11.X11Window.foreign_new_for_display(Gdk.Display.get_default(), -- gnome_control_center_xid) -+ parent_xid) - if parent_window != None: - window.set_transient_for(parent_window) -- toplevel.set_wmclass('gnome-control-center', 'Gnome-control-center') -+ toplevel.set_wmclass(parent_wmname, parent_wmclass) - toplevel.set_modal(True) - toplevel.set_type_hint(Gdk.WindowTypeHint.DIALOG) - toplevel.connect('notify::window', set_transient) --- -1.8.5.3 - -From 4d605b873bf4b0af2a337cd076175c8d0a703346 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Thu, 27 Feb 2014 18:32:01 +0900 -Subject: [PATCH] Added another status icon for input mode. - ---- - engine/python2/Makefile.am | 5 +- - engine/python2/engine.py | 94 ++++++++- - engine/python2/propertyicon.py | 81 ++++++++ - engine/python3/Makefile.am | 5 +- - engine/python3/engine.py | 92 ++++++++- - engine/python3/propertyicon.py | 81 ++++++++ - po/ibus-anthy.pot | 426 +++++++++++++++++++++-------------------- - setup/python2/anthyprefs.py.in | 6 +- - setup/python2/main.py | 6 +- - setup/python2/prefs.py | 32 +++- - setup/python2/setup.ui | 19 +- - setup/python3/anthyprefs.py.in | 2 + - setup/python3/main.py | 6 +- - setup/python3/prefs.py | 28 ++- - setup/python3/setup.ui | 19 +- - 15 files changed, 658 insertions(+), 244 deletions(-) - create mode 100644 engine/python2/propertyicon.py - create mode 100644 engine/python3/propertyicon.py - -diff --git a/engine/python2/Makefile.am b/engine/python2/Makefile.am -index a96f831..965d534 100644 ---- a/engine/python2/Makefile.am -+++ b/engine/python2/Makefile.am -@@ -3,8 +3,8 @@ - # ibus-anthy - The Anthy engine for IBus - # - # Copyright (c) 2007-2008 Peng Huang --# Copyright (c) 2010-2013 Takao Fujiwara --# Copyright (c) 2007-2013 Red Hat, Inc. -+# Copyright (c) 2010-2014 Takao Fujiwara -+# 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 -@@ -29,6 +29,7 @@ engine_anthy_PYTHON = \ - jastring.py \ - kana.py \ - main.py \ -+ propertyicon.py \ - romaji.py \ - segment.py \ - tables.py \ -diff --git a/engine/python2/engine.py b/engine/python2/engine.py -index 90a5750..c7a6fb3 100644 ---- a/engine/python2/engine.py -+++ b/engine/python2/engine.py -@@ -4,8 +4,8 @@ - # ibus-anthy - The Anthy engine for IBus - # - # Copyright (c) 2007-2008 Peng Huang --# Copyright (c) 2010-2013 Takao Fujiwara --# Copyright (c) 2007-2013 Red Hat, Inc. -+# Copyright (c) 2010-2014 Takao Fujiwara -+# 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 -@@ -35,6 +35,7 @@ try: - except: - pass - -+from gi.repository import Gio - from gi.repository import GLib - from gi.repository import IBus - -@@ -117,6 +118,7 @@ class Engine(IBus.EngineSimple): - __keybind = {} - __thumb = None - __latin_with_shift = True -+ __input_mode_icon = None - - def __init__(self, bus, object_path): - super(Engine, self).__init__(engine_name="anthy", -@@ -170,6 +172,8 @@ class Engine(IBus.EngineSimple): - ibus_config.connect('value-changed', - self.__config_value_changed_cb) - -+ self.__run_input_mode_icon() -+ - def __get_ibus_version(self): - if self.__ibus_version == 0.0: - self.__ibus_version = \ -@@ -258,6 +262,73 @@ class Engine(IBus.EngineSimple): - signal.signal(signum, signal.SIG_DFL) - os.kill(os.getpid(), signum) - -+ def __is_gnome_shell_running(self): -+ connection = None -+ variant = None -+ -+ try: -+ connection = Gio.bus_get_sync(Gio.BusType.SESSION, None) -+ variant = connection.call_sync('org.gnome.Shell', -+ '/org/gnome/Shell', -+ 'org.freedesktop.DBus.Peer', -+ 'Ping', -+ None, -+ None, -+ Gio.DBusCallFlags.NONE, -+ -1, -+ None) -+ except GLib.GError as e: -+ pass -+ -+ if connection != None: -+ try: -+ connection.flush_sync(None) -+ except GLib.GError as e: -+ printerr('GDBusConnection flush failed: ' + str(e)) -+ -+ if variant == None: -+ return False -+ return True -+ -+ def __run_input_mode_icon(self): -+ self.__input_mode_icon = None -+ -+ if self.__is_gnome_shell_running(): -+ return -+ try: -+ from gi.repository import Gdk -+ if Gdk.Display.get_default() == None: -+ return -+ except Exception as e: -+ printerr('import Gdk failed: ' + str(e)) -+ return -+ -+ if not self.__prefs.get_value('common', 'show-input-mode-icon'): -+ return -+ -+ rgba = Gdk.RGBA(red = 0.0, green = 0.0, blue = 0.0, alpha = 1.0) -+ spec = self.__prefs.get_value('common', 'icon-str-rgba') -+ if not rgba.parse(spec): -+ printerr('invalid icon-str-rgba: %s' % spec) -+ rgba = Gdk.RGBA(red = 0.0, green = 0.0, blue = 0.0, alpha = 1.0) -+ -+ modes = { -+ INPUT_MODE_HIRAGANA : 'あ', -+ INPUT_MODE_KATAKANA : 'ア', -+ INPUT_MODE_HALF_WIDTH_KATAKANA : '_ア', -+ INPUT_MODE_LATIN : '_A', -+ INPUT_MODE_WIDE_LATIN : 'A', -+ } -+ -+ try: -+ import propertyicon -+ self.__input_mode_icon = propertyicon.PropertyIcon(rgba) -+ self.__input_mode_icon.set_visible(True) -+ self.__input_mode_icon.set_from_symbol(modes[self.__input_mode]) -+ except Exception as e: -+ printerr('import PropertyIcon failed: ' + str(e)) -+ return -+ - def __set_input_mode_props(self, anthy_props): - # The class method is kept even if the engine is switched. - if Engine.__input_mode == None: -@@ -847,6 +918,9 @@ class Engine(IBus.EngineSimple): - prop.set_label(IBus.Text.new_from_string(label)) - self.update_property(prop) - -+ if self.__input_mode_icon != None: -+ self.__input_mode_icon.set_from_symbol(symbol) -+ - self.__reset() - self.__invalidate() - -@@ -1030,6 +1104,7 @@ class Engine(IBus.EngineSimple): - # It seems do_destroy() is called when launch_engine() is called. - #self.__remove_dict_files() - # It seems super.destroy() does not unref the engine. -+ self.__input_mode_icon = None - - def __join_all_segments(self): - while True: -@@ -1109,7 +1184,7 @@ class Engine(IBus.EngineSimple): - - # fill lookup_table - self.__lookup_table.clear() -- for i in xrange(0, seg_stat.nr_predictions): -+ for i in xrange(0, nr_predictions): - buf = self.__context.get_prediction(i) - candidate = UN(buf) - self.__lookup_table.append_candidate(IBus.Text.new_from_string(candidate)) -@@ -1220,6 +1295,12 @@ class Engine(IBus.EngineSimple): - def __update_anthy_convert_chars(self): - self.__convert_chars = u'' - pos = 0 -+ -+ (seg_index, text) = self.__segments[self.__cursor_pos] -+ # prediction lookup window + BackSpace will return None -+ if text == None: -+ return -+ - for i, (seg_index, text) in enumerate(self.__segments): - self.__convert_chars += text - if i < self.__cursor_pos: -@@ -2110,6 +2191,13 @@ class Engine(IBus.EngineSimple): - self.__fetch_dict_values(base_sec) - self.__prefs.set_value(base_sec, name, value) - self.__set_dict_mode_props(self.__prop_list, True) -+ elif base_sec == 'common': -+ if name == 'show_input_mode_icon': -+ name = 'show-input-mode-icon' -+ self.__prefs.set_value(base_sec, name, value) -+ self.__run_input_mode_icon() -+ else: -+ self.__prefs.set_value(base_sec, name, value) - elif base_sec: - self.__prefs.set_value(base_sec, name, value) - else: -diff --git a/engine/python2/propertyicon.py b/engine/python2/propertyicon.py -new file mode 100644 -index 0000000..fa5f34f ---- /dev/null -+++ b/engine/python2/propertyicon.py -@@ -0,0 +1,81 @@ -+# vim:set et sts=4 sw=4: -+# -*- coding: utf-8 -*- -+# -+# ibus-anthy - The Anthy engine for IBus -+# -+# Copyright (c) 2014 Takao Fujiwara -+# Copyright (c) 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. -+ -+# for python2 -+from __future__ import print_function -+ -+import cairo -+import sys -+ -+from gi.repository import Gdk -+from gi.repository import Gio -+from gi.repository import GLib -+from gi.repository import Gtk -+from gi.repository import Pango -+from gi.repository import PangoCairo -+ -+class PropertyIcon(Gtk.StatusIcon): -+ __xkb_icon_pixbufs = {} -+ __xkb_icon_rgba = None -+ -+ def __init__(self, rgba): -+ super(Gtk.StatusIcon, self).__init__() -+ self.__xkb_icon_rgba = rgba -+ -+ def __context_render_string(self, cr, symbol, image_width, image_height): -+ lwidth = 0 -+ lheight = 0 -+ desc = Pango.FontDescription.from_string('Monospace Bold 22') -+ layout = PangoCairo.create_layout(cr) -+ -+ layout.set_font_description(desc) -+ layout.set_text(symbol, -1) -+ (lwidth, lheight) = layout.get_size() -+ cr.move_to((image_width - lwidth / Pango.SCALE) / 2, -+ (image_height - lheight / Pango.SCALE) / 2) -+ cr.set_source_rgba(self.__xkb_icon_rgba.red, -+ self.__xkb_icon_rgba.green, -+ self.__xkb_icon_rgba.blue, -+ self.__xkb_icon_rgba.alpha) -+ PangoCairo.show_layout(cr, layout) -+ -+ def __create_icon_pixbuf_with_string(self, symbol): -+ if symbol in self.__xkb_icon_pixbufs: -+ return self.__xkb_icon_pixbufs[symbol] -+ -+ image = cairo.ImageSurface(cairo.FORMAT_ARGB32, 48, 48) -+ cr = cairo.Context(image) -+ width = image.get_width() -+ height = image.get_height() -+ -+ cr.set_source_rgba(0.0, 0.0, 0.0, 0.0) -+ cr.set_operator(cairo.OPERATOR_SOURCE) -+ cr.paint() -+ cr.set_operator(cairo.OPERATOR_OVER) -+ self.__context_render_string(cr, symbol, width, height) -+ pixbuf = Gdk.pixbuf_get_from_surface(image, 0, 0, width, height) -+ self.__xkb_icon_pixbufs[symbol] = pixbuf -+ return pixbuf -+ -+ def set_from_symbol(self, symbol): -+ pixbuf = self.__create_icon_pixbuf_with_string(symbol) -+ self.set_from_pixbuf(pixbuf) -diff --git a/engine/python3/Makefile.am b/engine/python3/Makefile.am -index a96f831..965d534 100644 ---- a/engine/python3/Makefile.am -+++ b/engine/python3/Makefile.am -@@ -3,8 +3,8 @@ - # ibus-anthy - The Anthy engine for IBus - # - # Copyright (c) 2007-2008 Peng Huang --# Copyright (c) 2010-2013 Takao Fujiwara --# Copyright (c) 2007-2013 Red Hat, Inc. -+# Copyright (c) 2010-2014 Takao Fujiwara -+# 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 -@@ -29,6 +29,7 @@ engine_anthy_PYTHON = \ - jastring.py \ - kana.py \ - main.py \ -+ propertyicon.py \ - romaji.py \ - segment.py \ - tables.py \ -diff --git a/engine/python3/engine.py b/engine/python3/engine.py -index 7eadf23..6563087 100644 ---- a/engine/python3/engine.py -+++ b/engine/python3/engine.py -@@ -36,6 +36,7 @@ try: - except: - pass - -+from gi.repository import Gio - from gi.repository import GLib - from gi.repository import IBus - -@@ -118,6 +119,7 @@ class Engine(IBus.EngineSimple): - __keybind = {} - __thumb = None - __latin_with_shift = True -+ __input_mode_icon = None - - def __init__(self, bus, object_path): - super(Engine, self).__init__(engine_name="anthy", -@@ -171,6 +173,8 @@ class Engine(IBus.EngineSimple): - ibus_config.connect('value-changed', - self.__config_value_changed_cb) - -+ self.__run_input_mode_icon() -+ - def __get_ibus_version(self): - if self.__ibus_version == 0.0: - self.__ibus_version = \ -@@ -259,6 +263,73 @@ class Engine(IBus.EngineSimple): - signal.signal(signum, signal.SIG_DFL) - os.kill(os.getpid(), signum) - -+ def __is_gnome_shell_running(self): -+ connection = None -+ variant = None -+ -+ try: -+ connection = Gio.bus_get_sync(Gio.BusType.SESSION, None) -+ variant = connection.call_sync('org.gnome.Shell', -+ '/org/gnome/Shell', -+ 'org.freedesktop.DBus.Peer', -+ 'Ping', -+ None, -+ None, -+ Gio.DBusCallFlags.NONE, -+ -1, -+ None) -+ except GLib.GError as e: -+ pass -+ -+ if connection != None: -+ try: -+ connection.flush_sync(None) -+ except GLib.GError as e: -+ printerr('GDBusConnection flush failed: ' + str(e)) -+ -+ if variant == None: -+ return False -+ return True -+ -+ def __run_input_mode_icon(self): -+ self.__input_mode_icon = None -+ -+ if self.__is_gnome_shell_running(): -+ return -+ try: -+ from gi.repository import Gdk -+ if Gdk.Display.get_default() == None: -+ return -+ except Exception as e: -+ printerr('import Gdk failed: ' + str(e)) -+ return -+ -+ if not self.__prefs.get_value('common', 'show-input-mode-icon'): -+ return -+ -+ rgba = Gdk.RGBA(red = 0.0, green = 0.0, blue = 0.0, alpha = 1.0) -+ spec = self.__prefs.get_value('common', 'icon-str-rgba') -+ if not rgba.parse(spec): -+ printerr('invalid icon-str-rgba: %s' % spec) -+ rgba = Gdk.RGBA(red = 0.0, green = 0.0, blue = 0.0, alpha = 1.0) -+ -+ modes = { -+ INPUT_MODE_HIRAGANA : 'あ', -+ INPUT_MODE_KATAKANA : 'ア', -+ INPUT_MODE_HALF_WIDTH_KATAKANA : '_ア', -+ INPUT_MODE_LATIN : '_A', -+ INPUT_MODE_WIDE_LATIN : 'A', -+ } -+ -+ try: -+ import propertyicon -+ self.__input_mode_icon = propertyicon.PropertyIcon(rgba) -+ self.__input_mode_icon.set_visible(True) -+ self.__input_mode_icon.set_from_symbol(modes[self.__input_mode]) -+ except Exception as e: -+ printerr('import PropertyIcon failed: ' + str(e)) -+ return -+ - def __set_input_mode_props(self, anthy_props): - # The class method is kept even if the engine is switched. - if Engine.__input_mode == None: -@@ -842,6 +913,9 @@ class Engine(IBus.EngineSimple): - prop.set_label(IBus.Text.new_from_string(label)) - self.update_property(prop) - -+ if self.__input_mode_icon != None: -+ self.__input_mode_icon.set_from_symbol(symbol) -+ - self.__reset() - self.__invalidate() - -@@ -1025,6 +1099,7 @@ class Engine(IBus.EngineSimple): - # It seems do_destroy() is called when launch_engine() is called. - #self.__remove_dict_files() - # It seems super.destroy() does not unref the engine. -+ self.__input_mode_icon = None - - def __join_all_segments(self): - while True: -@@ -1104,7 +1179,7 @@ class Engine(IBus.EngineSimple): - - # fill lookup_table - self.__lookup_table.clear() -- for i in range(0, seg_stat.nr_predictions): -+ for i in range(0, nr_predictions): - buf = self.__context.get_prediction(i) - candidate = buf - self.__lookup_table.append_candidate(IBus.Text.new_from_string(candidate)) -@@ -1215,6 +1290,12 @@ class Engine(IBus.EngineSimple): - def __update_anthy_convert_chars(self): - self.__convert_chars = '' - pos = 0 -+ -+ (seg_index, text) = self.__segments[self.__cursor_pos] -+ # prediction lookup window + BackSpace will return None -+ if text == None: -+ return -+ - for i, (seg_index, text) in enumerate(self.__segments): - self.__convert_chars += text - if i < self.__cursor_pos: -@@ -2104,6 +2185,13 @@ class Engine(IBus.EngineSimple): - self.__fetch_dict_values(base_sec) - self.__prefs.set_value(base_sec, name, value) - self.__set_dict_mode_props(self.__prop_list, True) -+ elif base_sec == 'common': -+ if name == 'show_input_mode_icon': -+ name = 'show-input-mode-icon' -+ self.__prefs.set_value(base_sec, name, value) -+ self.__run_input_mode_icon() -+ else: -+ self.__prefs.set_value(base_sec, name, value) - elif base_sec: - self.__prefs.set_value(base_sec, name, value) - else: -@@ -2312,7 +2400,7 @@ class Engine(IBus.EngineSimple): - nr_predictions = self.__context.get_nr_predictions() - - # for i in range(nr_predictions): --# print self.__context.get_prediction(i) -+# print(self.__context.get_prediction(i)) - - buf = self.__context.get_prediction(0) - if not buf: -diff --git a/engine/python3/propertyicon.py b/engine/python3/propertyicon.py -new file mode 100644 -index 0000000..fa5f34f ---- /dev/null -+++ b/engine/python3/propertyicon.py -@@ -0,0 +1,81 @@ -+# vim:set et sts=4 sw=4: -+# -*- coding: utf-8 -*- -+# -+# ibus-anthy - The Anthy engine for IBus -+# -+# Copyright (c) 2014 Takao Fujiwara -+# Copyright (c) 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. -+ -+# for python2 -+from __future__ import print_function -+ -+import cairo -+import sys -+ -+from gi.repository import Gdk -+from gi.repository import Gio -+from gi.repository import GLib -+from gi.repository import Gtk -+from gi.repository import Pango -+from gi.repository import PangoCairo -+ -+class PropertyIcon(Gtk.StatusIcon): -+ __xkb_icon_pixbufs = {} -+ __xkb_icon_rgba = None -+ -+ def __init__(self, rgba): -+ super(Gtk.StatusIcon, self).__init__() -+ self.__xkb_icon_rgba = rgba -+ -+ def __context_render_string(self, cr, symbol, image_width, image_height): -+ lwidth = 0 -+ lheight = 0 -+ desc = Pango.FontDescription.from_string('Monospace Bold 22') -+ layout = PangoCairo.create_layout(cr) -+ -+ layout.set_font_description(desc) -+ layout.set_text(symbol, -1) -+ (lwidth, lheight) = layout.get_size() -+ cr.move_to((image_width - lwidth / Pango.SCALE) / 2, -+ (image_height - lheight / Pango.SCALE) / 2) -+ cr.set_source_rgba(self.__xkb_icon_rgba.red, -+ self.__xkb_icon_rgba.green, -+ self.__xkb_icon_rgba.blue, -+ self.__xkb_icon_rgba.alpha) -+ PangoCairo.show_layout(cr, layout) -+ -+ def __create_icon_pixbuf_with_string(self, symbol): -+ if symbol in self.__xkb_icon_pixbufs: -+ return self.__xkb_icon_pixbufs[symbol] -+ -+ image = cairo.ImageSurface(cairo.FORMAT_ARGB32, 48, 48) -+ cr = cairo.Context(image) -+ width = image.get_width() -+ height = image.get_height() -+ -+ cr.set_source_rgba(0.0, 0.0, 0.0, 0.0) -+ cr.set_operator(cairo.OPERATOR_SOURCE) -+ cr.paint() -+ cr.set_operator(cairo.OPERATOR_OVER) -+ self.__context_render_string(cr, symbol, width, height) -+ pixbuf = Gdk.pixbuf_get_from_surface(image, 0, 0, width, height) -+ self.__xkb_icon_pixbufs[symbol] = pixbuf -+ return pixbuf -+ -+ def set_from_symbol(self, symbol): -+ pixbuf = self.__create_icon_pixbuf_with_string(symbol) -+ self.set_from_pixbuf(pixbuf) -diff --git a/setup/python2/anthyprefs.py.in b/setup/python2/anthyprefs.py.in -index a685da1..883fb23 100644 ---- a/setup/python2/anthyprefs.py.in -+++ b/setup/python2/anthyprefs.py.in -@@ -5,8 +5,8 @@ - # - # Copyright (c) 2007-2008 Peng Huang - # Copyright (c) 2009 Hideaki ABE --# Copyright (c) 2010-2013 Takao Fujiwara --# Copyright (c) 2007-2013 Red Hat, Inc. -+# Copyright (c) 2010-2014 Takao Fujiwara -+# 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 -@@ -362,6 +362,8 @@ _config = { - 'show-dict-mode': True, - 'show-dict-config': False, - 'show-preferences': True, -+ 'show-input-mode-icon': True, -+ 'icon-str-rgba': '#41507a', - - 'period_style': 0, - 'symbol_style': 1, -diff --git a/setup/python2/main.py b/setup/python2/main.py -index 7c403b8..0e7c62e 100644 ---- a/setup/python2/main.py -+++ b/setup/python2/main.py -@@ -144,7 +144,8 @@ class AnthySetup(object): - 'half_width_symbol', 'half_width_number', 'half_width_space', - 'latin_with_shift', - 'thumb:keyboard_layout_mode', 'thumb:keyboard_layout', -- 'thumb:fmv_extension', 'thumb:handakuten']: -+ 'thumb:fmv_extension', 'thumb:handakuten', -+ 'show_input_mode_icon']: - section, key = self.__get_section_key(name) - builder.get_object(name).set_active(prefs.get_value(section, key)) - -@@ -322,6 +323,9 @@ class AnthySetup(object): - else: - section = 'common' - key = name -+ if section == 'common': -+ if name == 'show_input_mode_icon': -+ key = 'show-input-mode-icon' - return (section, key) - - def __run_message_dialog(self, message, type=Gtk.MessageType.INFO): -diff --git a/setup/python2/prefs.py b/setup/python2/prefs.py -index 1b88908..9a147ee 100644 ---- a/setup/python2/prefs.py -+++ b/setup/python2/prefs.py -@@ -4,8 +4,8 @@ - # - # Copyright (c) 2007-2008 Peng Huang - # Copyright (c) 2009 Hideaki ABE --# Copyright (c) 2010-2013 Takao Fujiwara --# Copyright (c) 2007-2013 Red Hat, Inc. -+# Copyright (c) 2010-2014 Takao Fujiwara -+# 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 -@@ -145,15 +145,27 @@ class Prefs(object): - variant = self._config.get_values(s) - for key in variant.keys(): - v = variant[key] -+ # FIXME: ibus-dconf converts the keys. -+ #if key.find('_') >= 0: -+ # key = key.replace('_', '-') -+ if section == 'common': -+ if key == 'show_input_mode': -+ key = 'show-input-mode' -+ elif key == 'show_typing_method': -+ key = 'show-typing-method' -+ elif key == 'show_segment_mode': -+ key = 'show-segment-mode' -+ elif key == 'show_dict_mode': -+ key = 'show-dict-mode' -+ elif key == 'show_dict_config': -+ key = 'show-dict-config' -+ elif key == 'show_preferences': -+ key = 'show-preferences' -+ elif key == 'show_input_mode_icon': -+ key = 'show-input-mode-icon' -+ elif key == 'icon_str_rgba': -+ key = 'icon-str-rgba' - self.modified.setdefault(section, {})[key] = v if v != [''] else [] -- # FIXME: ibus-dconf converts the keys. -- if section == 'common': -- self.fetch_item(section, 'show-input-mode') -- self.fetch_item(section, 'show-typing-method') -- self.fetch_item(section, 'show-segment-mode') -- self.fetch_item(section, 'show-dict-mode') -- self.fetch_item(section, 'show-dict-config') -- self.fetch_item(section, 'show-preferences') - - def fetch_item(self, section, key, readonly=False): - if self._config == None: -diff --git a/setup/python2/setup.ui b/setup/python2/setup.ui -index dc5e7e1..edd6cfa 100644 ---- a/setup/python2/setup.ui -+++ b/setup/python2/setup.ui -@@ -346,6 +346,23 @@ - - - -+ -+ _Show input mode icon -+ True -+ True -+ False -+ True -+ True -+ -+ -+ -+ -+ False -+ False -+ 1 -+ -+ -+ - - True - 0 -@@ -396,7 +413,7 @@ - - False - False -- 1 -+ 2 - - - -diff --git a/setup/python3/anthyprefs.py.in b/setup/python3/anthyprefs.py.in -index 53c9d1d..b9032f2 100644 ---- a/setup/python3/anthyprefs.py.in -+++ b/setup/python3/anthyprefs.py.in -@@ -355,6 +355,8 @@ _config = { - 'show-dict-mode': True, - 'show-dict-config': False, - 'show-preferences': True, -+ 'show-input-mode-icon': True, -+ 'icon-str-rgba': '#41507a', - - 'period_style': 0, - 'symbol_style': 1, -diff --git a/setup/python3/main.py b/setup/python3/main.py -index 2073f59..f70bc1f 100644 ---- a/setup/python3/main.py -+++ b/setup/python3/main.py -@@ -147,7 +147,8 @@ class AnthySetup(object): - 'half_width_symbol', 'half_width_number', 'half_width_space', - 'latin_with_shift', - 'thumb:keyboard_layout_mode', 'thumb:keyboard_layout', -- 'thumb:fmv_extension', 'thumb:handakuten']: -+ 'thumb:fmv_extension', 'thumb:handakuten', -+ 'show_input_mode_icon']: - section, key = self.__get_section_key(name) - builder.get_object(name).set_active(prefs.get_value(section, key)) - -@@ -325,6 +326,9 @@ class AnthySetup(object): - else: - section = 'common' - key = name -+ if section == 'common': -+ if name == 'show_input_mode_icon': -+ key = 'show-input-mode-icon' - return (section, key) - - def __run_message_dialog(self, message, type=Gtk.MessageType.INFO): -diff --git a/setup/python3/prefs.py b/setup/python3/prefs.py -index a4af88d..2b3f4ea 100644 ---- a/setup/python3/prefs.py -+++ b/setup/python3/prefs.py -@@ -145,15 +145,27 @@ class Prefs(object): - variant = self._config.get_values(s) - for key in list(variant.keys()): - v = variant[key] -+ # FIXME: ibus-dconf converts the keys. -+ #if key.find('_') >= 0: -+ # key = key.replace('_', '-') -+ if section == 'common': -+ if key == 'show_input_mode': -+ key = 'show-input-mode' -+ elif key == 'show_typing_method': -+ key = 'show-typing-method' -+ elif key == 'show_segment_mode': -+ key = 'show-segment-mode' -+ elif key == 'show_dict_mode': -+ key = 'show-dict-mode' -+ elif key == 'show_dict_config': -+ key = 'show-dict-config' -+ elif key == 'show_preferences': -+ key = 'show-preferences' -+ elif key == 'show_input_mode_icon': -+ key = 'show-input-mode-icon' -+ elif key == 'icon_str_rgba': -+ key = 'icon-str-rgba' - self.modified.setdefault(section, {})[key] = v if v != [''] else [] -- # FIXME: ibus-dconf converts the keys. -- if section == 'common': -- self.fetch_item(section, 'show-input-mode') -- self.fetch_item(section, 'show-typing-method') -- self.fetch_item(section, 'show-segment-mode') -- self.fetch_item(section, 'show-dict-mode') -- self.fetch_item(section, 'show-dict-config') -- self.fetch_item(section, 'show-preferences') - - def fetch_item(self, section, key, readonly=False): - if self._config == None: -diff --git a/setup/python3/setup.ui b/setup/python3/setup.ui -index dc5e7e1..edd6cfa 100644 ---- a/setup/python3/setup.ui -+++ b/setup/python3/setup.ui -@@ -346,6 +346,23 @@ - - - -+ -+ _Show input mode icon -+ True -+ True -+ False -+ True -+ True -+ -+ -+ -+ -+ False -+ False -+ 1 -+ -+ -+ - - True - 0 -@@ -396,7 +413,7 @@ - - False - False -- 1 -+ 2 - - - --- -1.8.0 - -From c13d52a823ee2b084e57bde3859ead64f94bd437 Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Mon, 21 Apr 2014 17:05:19 +0900 -Subject: [PATCH] Fix to unref pixbuf when propery icon is unrefed. - ---- - engine/python2/engine.py | 1 + - engine/python2/propertyicon.py | 6 ++++++ - engine/python3/engine.py | 1 + - engine/python3/propertyicon.py | 6 ++++++ - 4 files changed, 14 insertions(+) - -diff --git a/engine/python2/engine.py b/engine/python2/engine.py -index c7a6fb3..68a4b48 100644 ---- a/engine/python2/engine.py -+++ b/engine/python2/engine.py -@@ -1104,6 +1104,7 @@ class Engine(IBus.EngineSimple): - # It seems do_destroy() is called when launch_engine() is called. - #self.__remove_dict_files() - # It seems super.destroy() does not unref the engine. -+ self.__input_mode_icon.clear() - self.__input_mode_icon = None - - def __join_all_segments(self): -diff --git a/engine/python2/propertyicon.py b/engine/python2/propertyicon.py -index fa5f34f..437e94c 100644 ---- a/engine/python2/propertyicon.py -+++ b/engine/python2/propertyicon.py -@@ -76,6 +76,12 @@ class PropertyIcon(Gtk.StatusIcon): - self.__xkb_icon_pixbufs[symbol] = pixbuf - return pixbuf - -+ def clear(self): -+ self.set_from_icon_name('') -+ self.set_visible(False) -+ self.__xkb_icon_pixbufs = {} -+ self.__xkb_icon_rgba = None -+ - def set_from_symbol(self, symbol): - pixbuf = self.__create_icon_pixbuf_with_string(symbol) - self.set_from_pixbuf(pixbuf) -diff --git a/engine/python3/engine.py b/engine/python3/engine.py -index 6563087..67370d8 100644 ---- a/engine/python3/engine.py -+++ b/engine/python3/engine.py -@@ -1099,6 +1099,7 @@ class Engine(IBus.EngineSimple): - # It seems do_destroy() is called when launch_engine() is called. - #self.__remove_dict_files() - # It seems super.destroy() does not unref the engine. -+ self.__input_mode_icon.clear() - self.__input_mode_icon = None - - def __join_all_segments(self): -diff --git a/engine/python3/propertyicon.py b/engine/python3/propertyicon.py -index fa5f34f..437e94c 100644 ---- a/engine/python3/propertyicon.py -+++ b/engine/python3/propertyicon.py -@@ -76,6 +76,12 @@ class PropertyIcon(Gtk.StatusIcon): - self.__xkb_icon_pixbufs[symbol] = pixbuf - return pixbuf - -+ def clear(self): -+ self.set_from_icon_name('') -+ self.set_visible(False) -+ self.__xkb_icon_pixbufs = {} -+ self.__xkb_icon_rgba = None -+ - def set_from_symbol(self, symbol): - pixbuf = self.__create_icon_pixbuf_with_string(symbol) - self.set_from_pixbuf(pixbuf) --- -1.8.5.3 - -From b852cfb6061259e4fd7198e3a2579b4495e15ecd Mon Sep 17 00:00:00 2001 -From: fujiwarat -Date: Mon, 19 May 2014 12:01:22 +0900 -Subject: [PATCH] Fix None object has clear() in input mode icon. (#1097364) - ---- - engine/python2/engine.py | 3 ++- - engine/python3/engine.py | 3 ++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/engine/python2/engine.py b/engine/python2/engine.py -index 68a4b48..68e898b 100644 ---- a/engine/python2/engine.py -+++ b/engine/python2/engine.py -@@ -1104,7 +1104,8 @@ class Engine(IBus.EngineSimple): - # It seems do_destroy() is called when launch_engine() is called. - #self.__remove_dict_files() - # It seems super.destroy() does not unref the engine. -- self.__input_mode_icon.clear() -+ if self.__input_mode_icon != None: -+ self.__input_mode_icon.clear() - self.__input_mode_icon = None - - def __join_all_segments(self): -diff --git a/engine/python3/engine.py b/engine/python3/engine.py -index 67370d8..517a64a 100644 ---- a/engine/python3/engine.py -+++ b/engine/python3/engine.py -@@ -1099,7 +1099,8 @@ class Engine(IBus.EngineSimple): - # It seems do_destroy() is called when launch_engine() is called. - #self.__remove_dict_files() - # It seems super.destroy() does not unref the engine. -- self.__input_mode_icon.clear() -+ if self.__input_mode_icon != None: -+ self.__input_mode_icon.clear() - self.__input_mode_icon = None - - def __join_all_segments(self): --- -1.8.5.3 diff --git a/ibus-anthy-xx-input-mode.patch b/ibus-anthy-xx-input-mode.patch new file mode 100644 index 0000000..2782ba1 --- /dev/null +++ b/ibus-anthy-xx-input-mode.patch @@ -0,0 +1,4997 @@ +From d43fff0f30ed2d4221a0d431bfbd230b097e9881 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 21 Aug 2014 19:24:41 +0900 +Subject: [PATCH 1/4] Added another status icon for input mode. + +--- + engine/python2/Makefile.am | 5 +- + engine/python2/engine.py | 94 ++++++++- + engine/python2/propertyicon.py | 81 ++++++++ + engine/python3/Makefile.am | 5 +- + engine/python3/engine.py | 92 ++++++++- + engine/python3/propertyicon.py | 81 ++++++++ + setup/python2/anthyprefs.py.in | 6 +- + setup/python2/main.py | 6 +- + setup/python2/prefs.py | 32 ++- + setup/python2/setup.ui | 19 +- + setup/python3/anthyprefs.py.in | 2 + + setup/python3/main.py | 6 +- + setup/python3/prefs.py | 28 ++- + setup/python3/setup.ui | 19 +- + 15 files changed, 660 insertions(+), 246 deletions(-) + create mode 100644 engine/python2/propertyicon.py + create mode 100644 engine/python3/propertyicon.py + +diff --git a/engine/python2/Makefile.am b/engine/python2/Makefile.am +index a96f831..965d534 100644 +--- a/engine/python2/Makefile.am ++++ b/engine/python2/Makefile.am +@@ -3,8 +3,8 @@ + # ibus-anthy - The Anthy engine for IBus + # + # Copyright (c) 2007-2008 Peng Huang +-# Copyright (c) 2010-2013 Takao Fujiwara +-# Copyright (c) 2007-2013 Red Hat, Inc. ++# Copyright (c) 2010-2014 Takao Fujiwara ++# 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 +@@ -29,6 +29,7 @@ engine_anthy_PYTHON = \ + jastring.py \ + kana.py \ + main.py \ ++ propertyicon.py \ + romaji.py \ + segment.py \ + tables.py \ +diff --git a/engine/python2/engine.py b/engine/python2/engine.py +index b298c9c..3339eda 100644 +--- a/engine/python2/engine.py ++++ b/engine/python2/engine.py +@@ -4,8 +4,8 @@ + # ibus-anthy - The Anthy engine for IBus + # + # Copyright (c) 2007-2008 Peng Huang +-# Copyright (c) 2010-2013 Takao Fujiwara +-# Copyright (c) 2007-2013 Red Hat, Inc. ++# Copyright (c) 2010-2014 Takao Fujiwara ++# 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 +@@ -35,6 +35,7 @@ try: + except: + pass + ++from gi.repository import Gio + from gi.repository import GLib + from gi.repository import IBus + +@@ -117,6 +118,7 @@ class Engine(IBus.EngineSimple): + __keybind = {} + __thumb = None + __latin_with_shift = True ++ __input_mode_icon = None + + def __init__(self, bus, object_path): + super(Engine, self).__init__(engine_name="anthy", +@@ -170,6 +172,8 @@ class Engine(IBus.EngineSimple): + ibus_config.connect('value-changed', + self.__config_value_changed_cb) + ++ self.__run_input_mode_icon() ++ + def __get_ibus_version(self): + if self.__ibus_version == 0.0: + self.__ibus_version = \ +@@ -258,6 +262,73 @@ class Engine(IBus.EngineSimple): + signal.signal(signum, signal.SIG_DFL) + os.kill(os.getpid(), signum) + ++ def __is_gnome_shell_running(self): ++ connection = None ++ variant = None ++ ++ try: ++ connection = Gio.bus_get_sync(Gio.BusType.SESSION, None) ++ variant = connection.call_sync('org.gnome.Shell', ++ '/org/gnome/Shell', ++ 'org.freedesktop.DBus.Peer', ++ 'Ping', ++ None, ++ None, ++ Gio.DBusCallFlags.NONE, ++ -1, ++ None) ++ except GLib.GError as e: ++ pass ++ ++ if connection != None: ++ try: ++ connection.flush_sync(None) ++ except GLib.GError as e: ++ printerr('GDBusConnection flush failed: ' + str(e)) ++ ++ if variant == None: ++ return False ++ return True ++ ++ def __run_input_mode_icon(self): ++ self.__input_mode_icon = None ++ ++ if self.__is_gnome_shell_running(): ++ return ++ try: ++ from gi.repository import Gdk ++ if Gdk.Display.get_default() == None: ++ return ++ except Exception as e: ++ printerr('import Gdk failed: ' + str(e)) ++ return ++ ++ if not self.__prefs.get_value('common', 'show-input-mode-icon'): ++ return ++ ++ rgba = Gdk.RGBA(red = 0.0, green = 0.0, blue = 0.0, alpha = 1.0) ++ spec = self.__prefs.get_value('common', 'icon-str-rgba') ++ if not rgba.parse(spec): ++ printerr('invalid icon-str-rgba: %s' % spec) ++ rgba = Gdk.RGBA(red = 0.0, green = 0.0, blue = 0.0, alpha = 1.0) ++ ++ modes = { ++ INPUT_MODE_HIRAGANA : 'あ', ++ INPUT_MODE_KATAKANA : 'ア', ++ INPUT_MODE_HALF_WIDTH_KATAKANA : '_ア', ++ INPUT_MODE_LATIN : '_A', ++ INPUT_MODE_WIDE_LATIN : 'A', ++ } ++ ++ try: ++ import propertyicon ++ self.__input_mode_icon = propertyicon.PropertyIcon(rgba) ++ self.__input_mode_icon.set_visible(True) ++ self.__input_mode_icon.set_from_symbol(modes[self.__input_mode]) ++ except Exception as e: ++ printerr('import PropertyIcon failed: ' + str(e)) ++ return ++ + def __set_input_mode_props(self, anthy_props): + # The class method is kept even if the engine is switched. + if Engine.__input_mode == None: +@@ -847,6 +918,9 @@ class Engine(IBus.EngineSimple): + prop.set_label(IBus.Text.new_from_string(label)) + self.update_property(prop) + ++ if self.__input_mode_icon != None: ++ self.__input_mode_icon.set_from_symbol(symbol) ++ + self.__reset() + self.__invalidate() + +@@ -1030,6 +1104,7 @@ class Engine(IBus.EngineSimple): + # It seems do_destroy() is called when launch_engine() is called. + #self.__remove_dict_files() + # It seems super.destroy() does not unref the engine. ++ self.__input_mode_icon = None + + def __join_all_segments(self): + while True: +@@ -1109,7 +1184,7 @@ class Engine(IBus.EngineSimple): + + # fill lookup_table + self.__lookup_table.clear() +- for i in xrange(0, seg_stat.nr_predictions): ++ for i in xrange(0, nr_predictions): + buf = self.__context.get_prediction(i) + candidate = UN(buf) + self.__lookup_table.append_candidate(IBus.Text.new_from_string(candidate)) +@@ -1220,6 +1295,12 @@ class Engine(IBus.EngineSimple): + def __update_anthy_convert_chars(self): + self.__convert_chars = u'' + pos = 0 ++ ++ (seg_index, text) = self.__segments[self.__cursor_pos] ++ # prediction lookup window + BackSpace will return None ++ if text == None: ++ return ++ + for i, (seg_index, text) in enumerate(self.__segments): + self.__convert_chars += text + if i < self.__cursor_pos: +@@ -2110,6 +2191,13 @@ class Engine(IBus.EngineSimple): + self.__fetch_dict_values(base_sec) + self.__prefs.set_value(base_sec, name, value) + self.__set_dict_mode_props(self.__prop_list, True) ++ elif base_sec == 'common': ++ if name == 'show_input_mode_icon': ++ name = 'show-input-mode-icon' ++ self.__prefs.set_value(base_sec, name, value) ++ self.__run_input_mode_icon() ++ else: ++ self.__prefs.set_value(base_sec, name, value) + elif base_sec: + self.__prefs.set_value(base_sec, name, value) + else: +diff --git a/engine/python2/propertyicon.py b/engine/python2/propertyicon.py +new file mode 100644 +index 0000000..fa5f34f +--- /dev/null ++++ b/engine/python2/propertyicon.py +@@ -0,0 +1,81 @@ ++# vim:set et sts=4 sw=4: ++# -*- coding: utf-8 -*- ++# ++# ibus-anthy - The Anthy engine for IBus ++# ++# Copyright (c) 2014 Takao Fujiwara ++# Copyright (c) 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. ++ ++# for python2 ++from __future__ import print_function ++ ++import cairo ++import sys ++ ++from gi.repository import Gdk ++from gi.repository import Gio ++from gi.repository import GLib ++from gi.repository import Gtk ++from gi.repository import Pango ++from gi.repository import PangoCairo ++ ++class PropertyIcon(Gtk.StatusIcon): ++ __xkb_icon_pixbufs = {} ++ __xkb_icon_rgba = None ++ ++ def __init__(self, rgba): ++ super(Gtk.StatusIcon, self).__init__() ++ self.__xkb_icon_rgba = rgba ++ ++ def __context_render_string(self, cr, symbol, image_width, image_height): ++ lwidth = 0 ++ lheight = 0 ++ desc = Pango.FontDescription.from_string('Monospace Bold 22') ++ layout = PangoCairo.create_layout(cr) ++ ++ layout.set_font_description(desc) ++ layout.set_text(symbol, -1) ++ (lwidth, lheight) = layout.get_size() ++ cr.move_to((image_width - lwidth / Pango.SCALE) / 2, ++ (image_height - lheight / Pango.SCALE) / 2) ++ cr.set_source_rgba(self.__xkb_icon_rgba.red, ++ self.__xkb_icon_rgba.green, ++ self.__xkb_icon_rgba.blue, ++ self.__xkb_icon_rgba.alpha) ++ PangoCairo.show_layout(cr, layout) ++ ++ def __create_icon_pixbuf_with_string(self, symbol): ++ if symbol in self.__xkb_icon_pixbufs: ++ return self.__xkb_icon_pixbufs[symbol] ++ ++ image = cairo.ImageSurface(cairo.FORMAT_ARGB32, 48, 48) ++ cr = cairo.Context(image) ++ width = image.get_width() ++ height = image.get_height() ++ ++ cr.set_source_rgba(0.0, 0.0, 0.0, 0.0) ++ cr.set_operator(cairo.OPERATOR_SOURCE) ++ cr.paint() ++ cr.set_operator(cairo.OPERATOR_OVER) ++ self.__context_render_string(cr, symbol, width, height) ++ pixbuf = Gdk.pixbuf_get_from_surface(image, 0, 0, width, height) ++ self.__xkb_icon_pixbufs[symbol] = pixbuf ++ return pixbuf ++ ++ def set_from_symbol(self, symbol): ++ pixbuf = self.__create_icon_pixbuf_with_string(symbol) ++ self.set_from_pixbuf(pixbuf) +diff --git a/engine/python3/Makefile.am b/engine/python3/Makefile.am +index a96f831..965d534 100644 +--- a/engine/python3/Makefile.am ++++ b/engine/python3/Makefile.am +@@ -3,8 +3,8 @@ + # ibus-anthy - The Anthy engine for IBus + # + # Copyright (c) 2007-2008 Peng Huang +-# Copyright (c) 2010-2013 Takao Fujiwara +-# Copyright (c) 2007-2013 Red Hat, Inc. ++# Copyright (c) 2010-2014 Takao Fujiwara ++# 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 +@@ -29,6 +29,7 @@ engine_anthy_PYTHON = \ + jastring.py \ + kana.py \ + main.py \ ++ propertyicon.py \ + romaji.py \ + segment.py \ + tables.py \ +diff --git a/engine/python3/engine.py b/engine/python3/engine.py +index cc1a8c8..ab9e8fa 100644 +--- a/engine/python3/engine.py ++++ b/engine/python3/engine.py +@@ -36,6 +36,7 @@ try: + except: + pass + ++from gi.repository import Gio + from gi.repository import GLib + from gi.repository import IBus + +@@ -118,6 +119,7 @@ class Engine(IBus.EngineSimple): + __keybind = {} + __thumb = None + __latin_with_shift = True ++ __input_mode_icon = None + + def __init__(self, bus, object_path): + super(Engine, self).__init__(engine_name="anthy", +@@ -171,6 +173,8 @@ class Engine(IBus.EngineSimple): + ibus_config.connect('value-changed', + self.__config_value_changed_cb) + ++ self.__run_input_mode_icon() ++ + def __get_ibus_version(self): + if self.__ibus_version == 0.0: + self.__ibus_version = \ +@@ -259,6 +263,73 @@ class Engine(IBus.EngineSimple): + signal.signal(signum, signal.SIG_DFL) + os.kill(os.getpid(), signum) + ++ def __is_gnome_shell_running(self): ++ connection = None ++ variant = None ++ ++ try: ++ connection = Gio.bus_get_sync(Gio.BusType.SESSION, None) ++ variant = connection.call_sync('org.gnome.Shell', ++ '/org/gnome/Shell', ++ 'org.freedesktop.DBus.Peer', ++ 'Ping', ++ None, ++ None, ++ Gio.DBusCallFlags.NONE, ++ -1, ++ None) ++ except GLib.GError as e: ++ pass ++ ++ if connection != None: ++ try: ++ connection.flush_sync(None) ++ except GLib.GError as e: ++ printerr('GDBusConnection flush failed: ' + str(e)) ++ ++ if variant == None: ++ return False ++ return True ++ ++ def __run_input_mode_icon(self): ++ self.__input_mode_icon = None ++ ++ if self.__is_gnome_shell_running(): ++ return ++ try: ++ from gi.repository import Gdk ++ if Gdk.Display.get_default() == None: ++ return ++ except Exception as e: ++ printerr('import Gdk failed: ' + str(e)) ++ return ++ ++ if not self.__prefs.get_value('common', 'show-input-mode-icon'): ++ return ++ ++ rgba = Gdk.RGBA(red = 0.0, green = 0.0, blue = 0.0, alpha = 1.0) ++ spec = self.__prefs.get_value('common', 'icon-str-rgba') ++ if not rgba.parse(spec): ++ printerr('invalid icon-str-rgba: %s' % spec) ++ rgba = Gdk.RGBA(red = 0.0, green = 0.0, blue = 0.0, alpha = 1.0) ++ ++ modes = { ++ INPUT_MODE_HIRAGANA : 'あ', ++ INPUT_MODE_KATAKANA : 'ア', ++ INPUT_MODE_HALF_WIDTH_KATAKANA : '_ア', ++ INPUT_MODE_LATIN : '_A', ++ INPUT_MODE_WIDE_LATIN : 'A', ++ } ++ ++ try: ++ import propertyicon ++ self.__input_mode_icon = propertyicon.PropertyIcon(rgba) ++ self.__input_mode_icon.set_visible(True) ++ self.__input_mode_icon.set_from_symbol(modes[self.__input_mode]) ++ except Exception as e: ++ printerr('import PropertyIcon failed: ' + str(e)) ++ return ++ + def __set_input_mode_props(self, anthy_props): + # The class method is kept even if the engine is switched. + if Engine.__input_mode == None: +@@ -842,6 +913,9 @@ class Engine(IBus.EngineSimple): + prop.set_label(IBus.Text.new_from_string(label)) + self.update_property(prop) + ++ if self.__input_mode_icon != None: ++ self.__input_mode_icon.set_from_symbol(symbol) ++ + self.__reset() + self.__invalidate() + +@@ -1025,6 +1099,7 @@ class Engine(IBus.EngineSimple): + # It seems do_destroy() is called when launch_engine() is called. + #self.__remove_dict_files() + # It seems super.destroy() does not unref the engine. ++ self.__input_mode_icon = None + + def __join_all_segments(self): + while True: +@@ -1104,7 +1179,7 @@ class Engine(IBus.EngineSimple): + + # fill lookup_table + self.__lookup_table.clear() +- for i in range(0, seg_stat.nr_predictions): ++ for i in range(0, nr_predictions): + buf = self.__context.get_prediction(i) + candidate = buf + self.__lookup_table.append_candidate(IBus.Text.new_from_string(candidate)) +@@ -1215,6 +1290,12 @@ class Engine(IBus.EngineSimple): + def __update_anthy_convert_chars(self): + self.__convert_chars = '' + pos = 0 ++ ++ (seg_index, text) = self.__segments[self.__cursor_pos] ++ # prediction lookup window + BackSpace will return None ++ if text == None: ++ return ++ + for i, (seg_index, text) in enumerate(self.__segments): + self.__convert_chars += text + if i < self.__cursor_pos: +@@ -2104,6 +2185,13 @@ class Engine(IBus.EngineSimple): + self.__fetch_dict_values(base_sec) + self.__prefs.set_value(base_sec, name, value) + self.__set_dict_mode_props(self.__prop_list, True) ++ elif base_sec == 'common': ++ if name == 'show_input_mode_icon': ++ name = 'show-input-mode-icon' ++ self.__prefs.set_value(base_sec, name, value) ++ self.__run_input_mode_icon() ++ else: ++ self.__prefs.set_value(base_sec, name, value) + elif base_sec: + self.__prefs.set_value(base_sec, name, value) + else: +@@ -2312,7 +2400,7 @@ class Engine(IBus.EngineSimple): + nr_predictions = self.__context.get_nr_predictions() + + # for i in range(nr_predictions): +-# print self.__context.get_prediction(i) ++# print(self.__context.get_prediction(i)) + + buf = self.__context.get_prediction(0) + if not buf: +diff --git a/engine/python3/propertyicon.py b/engine/python3/propertyicon.py +new file mode 100644 +index 0000000..fa5f34f +--- /dev/null ++++ b/engine/python3/propertyicon.py +@@ -0,0 +1,81 @@ ++# vim:set et sts=4 sw=4: ++# -*- coding: utf-8 -*- ++# ++# ibus-anthy - The Anthy engine for IBus ++# ++# Copyright (c) 2014 Takao Fujiwara ++# Copyright (c) 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. ++ ++# for python2 ++from __future__ import print_function ++ ++import cairo ++import sys ++ ++from gi.repository import Gdk ++from gi.repository import Gio ++from gi.repository import GLib ++from gi.repository import Gtk ++from gi.repository import Pango ++from gi.repository import PangoCairo ++ ++class PropertyIcon(Gtk.StatusIcon): ++ __xkb_icon_pixbufs = {} ++ __xkb_icon_rgba = None ++ ++ def __init__(self, rgba): ++ super(Gtk.StatusIcon, self).__init__() ++ self.__xkb_icon_rgba = rgba ++ ++ def __context_render_string(self, cr, symbol, image_width, image_height): ++ lwidth = 0 ++ lheight = 0 ++ desc = Pango.FontDescription.from_string('Monospace Bold 22') ++ layout = PangoCairo.create_layout(cr) ++ ++ layout.set_font_description(desc) ++ layout.set_text(symbol, -1) ++ (lwidth, lheight) = layout.get_size() ++ cr.move_to((image_width - lwidth / Pango.SCALE) / 2, ++ (image_height - lheight / Pango.SCALE) / 2) ++ cr.set_source_rgba(self.__xkb_icon_rgba.red, ++ self.__xkb_icon_rgba.green, ++ self.__xkb_icon_rgba.blue, ++ self.__xkb_icon_rgba.alpha) ++ PangoCairo.show_layout(cr, layout) ++ ++ def __create_icon_pixbuf_with_string(self, symbol): ++ if symbol in self.__xkb_icon_pixbufs: ++ return self.__xkb_icon_pixbufs[symbol] ++ ++ image = cairo.ImageSurface(cairo.FORMAT_ARGB32, 48, 48) ++ cr = cairo.Context(image) ++ width = image.get_width() ++ height = image.get_height() ++ ++ cr.set_source_rgba(0.0, 0.0, 0.0, 0.0) ++ cr.set_operator(cairo.OPERATOR_SOURCE) ++ cr.paint() ++ cr.set_operator(cairo.OPERATOR_OVER) ++ self.__context_render_string(cr, symbol, width, height) ++ pixbuf = Gdk.pixbuf_get_from_surface(image, 0, 0, width, height) ++ self.__xkb_icon_pixbufs[symbol] = pixbuf ++ return pixbuf ++ ++ def set_from_symbol(self, symbol): ++ pixbuf = self.__create_icon_pixbuf_with_string(symbol) ++ self.set_from_pixbuf(pixbuf) +diff --git a/setup/python2/anthyprefs.py.in b/setup/python2/anthyprefs.py.in +index c29926a..82e9fcf 100644 +--- a/setup/python2/anthyprefs.py.in ++++ b/setup/python2/anthyprefs.py.in +@@ -5,8 +5,8 @@ + # + # Copyright (c) 2007-2008 Peng Huang + # Copyright (c) 2009 Hideaki ABE +-# Copyright (c) 2010-2013 Takao Fujiwara +-# Copyright (c) 2007-2013 Red Hat, Inc. ++# Copyright (c) 2010-2014 Takao Fujiwara ++# 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 +@@ -362,6 +362,8 @@ _config = { + 'show-dict-mode': True, + 'show-dict-config': False, + 'show-preferences': True, ++ 'show-input-mode-icon': True, ++ 'icon-str-rgba': '#41507a', + + 'period_style': 0, + 'symbol_style': 1, +diff --git a/setup/python2/main.py b/setup/python2/main.py +index cc3af4c..69ad703 100644 +--- a/setup/python2/main.py ++++ b/setup/python2/main.py +@@ -159,7 +159,8 @@ class AnthySetup(object): + 'half_width_symbol', 'half_width_number', 'half_width_space', + 'latin_with_shift', + 'thumb:keyboard_layout_mode', 'thumb:keyboard_layout', +- 'thumb:fmv_extension', 'thumb:handakuten']: ++ 'thumb:fmv_extension', 'thumb:handakuten', ++ 'show_input_mode_icon']: + section, key = self.__get_section_key(name) + builder.get_object(name).set_active(prefs.get_value(section, key)) + +@@ -337,6 +338,9 @@ class AnthySetup(object): + else: + section = 'common' + key = name ++ if section == 'common': ++ if name == 'show_input_mode_icon': ++ key = 'show-input-mode-icon' + return (section, key) + + def __run_message_dialog(self, message, type=Gtk.MessageType.INFO): +diff --git a/setup/python2/prefs.py b/setup/python2/prefs.py +index 1b88908..9a147ee 100644 +--- a/setup/python2/prefs.py ++++ b/setup/python2/prefs.py +@@ -4,8 +4,8 @@ + # + # Copyright (c) 2007-2008 Peng Huang + # Copyright (c) 2009 Hideaki ABE +-# Copyright (c) 2010-2013 Takao Fujiwara +-# Copyright (c) 2007-2013 Red Hat, Inc. ++# Copyright (c) 2010-2014 Takao Fujiwara ++# 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 +@@ -145,15 +145,27 @@ class Prefs(object): + variant = self._config.get_values(s) + for key in variant.keys(): + v = variant[key] ++ # FIXME: ibus-dconf converts the keys. ++ #if key.find('_') >= 0: ++ # key = key.replace('_', '-') ++ if section == 'common': ++ if key == 'show_input_mode': ++ key = 'show-input-mode' ++ elif key == 'show_typing_method': ++ key = 'show-typing-method' ++ elif key == 'show_segment_mode': ++ key = 'show-segment-mode' ++ elif key == 'show_dict_mode': ++ key = 'show-dict-mode' ++ elif key == 'show_dict_config': ++ key = 'show-dict-config' ++ elif key == 'show_preferences': ++ key = 'show-preferences' ++ elif key == 'show_input_mode_icon': ++ key = 'show-input-mode-icon' ++ elif key == 'icon_str_rgba': ++ key = 'icon-str-rgba' + self.modified.setdefault(section, {})[key] = v if v != [''] else [] +- # FIXME: ibus-dconf converts the keys. +- if section == 'common': +- self.fetch_item(section, 'show-input-mode') +- self.fetch_item(section, 'show-typing-method') +- self.fetch_item(section, 'show-segment-mode') +- self.fetch_item(section, 'show-dict-mode') +- self.fetch_item(section, 'show-dict-config') +- self.fetch_item(section, 'show-preferences') + + def fetch_item(self, section, key, readonly=False): + if self._config == None: +diff --git a/setup/python2/setup.ui b/setup/python2/setup.ui +index b6d8ef2..54916ec 100644 +--- a/setup/python2/setup.ui ++++ b/setup/python2/setup.ui +@@ -346,6 +346,23 @@ + + + ++ ++ _Show input mode icon ++ True ++ True ++ False ++ True ++ True ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ + + True + 0 +@@ -396,7 +413,7 @@ + + False + False +- 1 ++ 2 + + + +diff --git a/setup/python3/anthyprefs.py.in b/setup/python3/anthyprefs.py.in +index 3198a8c..441c4a2 100644 +--- a/setup/python3/anthyprefs.py.in ++++ b/setup/python3/anthyprefs.py.in +@@ -355,6 +355,8 @@ _config = { + 'show-dict-mode': True, + 'show-dict-config': False, + 'show-preferences': True, ++ 'show-input-mode-icon': True, ++ 'icon-str-rgba': '#41507a', + + 'period_style': 0, + 'symbol_style': 1, +diff --git a/setup/python3/main.py b/setup/python3/main.py +index d33b90b..a2fa761 100644 +--- a/setup/python3/main.py ++++ b/setup/python3/main.py +@@ -162,7 +162,8 @@ class AnthySetup(object): + 'half_width_symbol', 'half_width_number', 'half_width_space', + 'latin_with_shift', + 'thumb:keyboard_layout_mode', 'thumb:keyboard_layout', +- 'thumb:fmv_extension', 'thumb:handakuten']: ++ 'thumb:fmv_extension', 'thumb:handakuten', ++ 'show_input_mode_icon']: + section, key = self.__get_section_key(name) + builder.get_object(name).set_active(prefs.get_value(section, key)) + +@@ -340,6 +341,9 @@ class AnthySetup(object): + else: + section = 'common' + key = name ++ if section == 'common': ++ if name == 'show_input_mode_icon': ++ key = 'show-input-mode-icon' + return (section, key) + + def __run_message_dialog(self, message, type=Gtk.MessageType.INFO): +diff --git a/setup/python3/prefs.py b/setup/python3/prefs.py +index a4af88d..2b3f4ea 100644 +--- a/setup/python3/prefs.py ++++ b/setup/python3/prefs.py +@@ -145,15 +145,27 @@ class Prefs(object): + variant = self._config.get_values(s) + for key in list(variant.keys()): + v = variant[key] ++ # FIXME: ibus-dconf converts the keys. ++ #if key.find('_') >= 0: ++ # key = key.replace('_', '-') ++ if section == 'common': ++ if key == 'show_input_mode': ++ key = 'show-input-mode' ++ elif key == 'show_typing_method': ++ key = 'show-typing-method' ++ elif key == 'show_segment_mode': ++ key = 'show-segment-mode' ++ elif key == 'show_dict_mode': ++ key = 'show-dict-mode' ++ elif key == 'show_dict_config': ++ key = 'show-dict-config' ++ elif key == 'show_preferences': ++ key = 'show-preferences' ++ elif key == 'show_input_mode_icon': ++ key = 'show-input-mode-icon' ++ elif key == 'icon_str_rgba': ++ key = 'icon-str-rgba' + self.modified.setdefault(section, {})[key] = v if v != [''] else [] +- # FIXME: ibus-dconf converts the keys. +- if section == 'common': +- self.fetch_item(section, 'show-input-mode') +- self.fetch_item(section, 'show-typing-method') +- self.fetch_item(section, 'show-segment-mode') +- self.fetch_item(section, 'show-dict-mode') +- self.fetch_item(section, 'show-dict-config') +- self.fetch_item(section, 'show-preferences') + + def fetch_item(self, section, key, readonly=False): + if self._config == None: +diff --git a/setup/python3/setup.ui b/setup/python3/setup.ui +index b6d8ef2..54916ec 100644 +--- a/setup/python3/setup.ui ++++ b/setup/python3/setup.ui +@@ -346,6 +346,23 @@ + + + ++ ++ _Show input mode icon ++ True ++ True ++ False ++ True ++ True ++ ++ ++ ++ ++ False ++ False ++ 1 ++ ++ ++ + + True + 0 +@@ -396,7 +413,7 @@ + + False + False +- 1 ++ 2 + + + +-- +1.8.5.3 + +From 0205371bf3c2fa3aeb0192f7aabc584aade7d158 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 21 Aug 2014 19:31:27 +0900 +Subject: [PATCH 2/4] Updated translations. + +--- + po/el.po | 433 ++++++++++++++++++++++++++++++------------------------------ + po/fr.po | 433 ++++++++++++++++++++++++++++++------------------------------ + po/ja.po | 430 +++++++++++++++++++++++++++++------------------------------ + po/zh_CN.po | 433 ++++++++++++++++++++++++++++++------------------------------ + 4 files changed, 874 insertions(+), 855 deletions(-) + +diff --git a/po/el.po b/po/el.po +index 030a86f..ec26051 100644 +--- a/po/el.po ++++ b/po/el.po +@@ -10,17 +10,17 @@ msgid "" + msgstr "" + "Project-Id-Version: IBus-Anthy\n" + "Report-Msgid-Bugs-To: http://code.google.com/p/ibus/issues/entry\n" +-"POT-Creation-Date: 2014-08-21 18:57+0900\n" ++"POT-Creation-Date: 2014-08-21 19:30+0900\n" + "PO-Revision-Date: 2014-02-18 08:42+0000\n" + "Last-Translator: dm3k \n" + "Language-Team: Greek\n" ++"Language: el\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"Language: el\n" + "Plural-Forms: nplurals=2; plural=(n != 1);\n" + +-#: ../engine/python2/engine.py:193 ../engine/python3/engine.py:194 ++#: ../engine/python2/engine.py:197 ../engine/python3/engine.py:198 + msgid "" + "Could not enable Anthy.\n" + "The end of the content of the file .anthy/last-record2_default.utf8 in your " +@@ -28,188 +28,188 @@ msgid "" + "Please fix the file or remove it by manual and restart IBus." + msgstr "" + +-#: ../engine/python2/engine.py:241 ../engine/python3/engine.py:242 +-#: ../setup/python2/main.py:408 ../setup/python3/main.py:413 ++#: ../engine/python2/engine.py:245 ../engine/python3/engine.py:246 ++#: ../setup/python2/main.py:412 ../setup/python3/main.py:417 + msgid "Preferences - Anthy" + msgstr "Προτιμήσεις - Anthy " + +-#: ../engine/python2/engine.py:243 ../engine/python3/engine.py:244 ++#: ../engine/python2/engine.py:247 ../engine/python3/engine.py:248 + msgid "Configure Anthy" + msgstr "Ρυθμίσεις Anthy" + + #. Translators: Specify the order of %s with your translation. + #. It will be "Input Mode (A)" for example. +-#: ../engine/python2/engine.py:280 ../engine/python2/engine.py:368 +-#: ../engine/python2/engine.py:435 ../engine/python2/engine.py:511 +-#: ../engine/python2/engine.py:842 ../engine/python2/engine.py:870 +-#: ../engine/python2/engine.py:894 ../engine/python2/engine.py:920 +-#: ../engine/python2/engine.py:982 ../engine/python3/engine.py:281 +-#: ../engine/python3/engine.py:369 ../engine/python3/engine.py:436 +-#: ../engine/python3/engine.py:512 ../engine/python3/engine.py:837 +-#: ../engine/python3/engine.py:865 ../engine/python3/engine.py:889 +-#: ../engine/python3/engine.py:915 ../engine/python3/engine.py:977 ++#: ../engine/python2/engine.py:351 ../engine/python2/engine.py:439 ++#: ../engine/python2/engine.py:506 ../engine/python2/engine.py:582 ++#: ../engine/python2/engine.py:913 ../engine/python2/engine.py:944 ++#: ../engine/python2/engine.py:968 ../engine/python2/engine.py:994 ++#: ../engine/python2/engine.py:1056 ../engine/python3/engine.py:352 ++#: ../engine/python3/engine.py:440 ../engine/python3/engine.py:507 ++#: ../engine/python3/engine.py:583 ../engine/python3/engine.py:908 ++#: ../engine/python3/engine.py:939 ../engine/python3/engine.py:963 ++#: ../engine/python3/engine.py:989 ../engine/python3/engine.py:1051 + #, python-format + msgid "%(description)s (%(symbol)s)" + msgstr "" + +-#: ../engine/python2/engine.py:281 ../engine/python2/engine.py:843 +-#: ../engine/python3/engine.py:282 ../engine/python3/engine.py:838 +-#: ../setup/python2/main.py:393 ../setup/python3/main.py:398 ++#: ../engine/python2/engine.py:352 ../engine/python2/engine.py:914 ++#: ../engine/python3/engine.py:353 ../engine/python3/engine.py:909 ++#: ../setup/python2/main.py:397 ../setup/python3/main.py:402 + msgid "Input mode" + msgstr "" + +-#: ../engine/python2/engine.py:287 ../engine/python3/engine.py:288 ++#: ../engine/python2/engine.py:358 ../engine/python3/engine.py:359 + msgid "Switch input mode" + msgstr "Αλλαγή μεθόδου εισαγωγής" + +-#: ../engine/python2/engine.py:297 ../engine/python3/engine.py:298 ++#: ../engine/python2/engine.py:368 ../engine/python3/engine.py:369 + #: ../setup/python2/setup.ui.h:1 ../setup/python3/setup.ui.h:1 + msgid "Hiragana" + msgstr "Χιραγκάνα" + +-#: ../engine/python2/engine.py:306 ../engine/python3/engine.py:307 ++#: ../engine/python2/engine.py:377 ../engine/python3/engine.py:378 + #: ../setup/python2/setup.ui.h:2 ../setup/python3/setup.ui.h:2 + msgid "Katakana" + msgstr "Κατακάνα" + +-#: ../engine/python2/engine.py:315 ../engine/python3/engine.py:316 ++#: ../engine/python2/engine.py:386 ../engine/python3/engine.py:387 + #: ../setup/python2/setup.ui.h:3 ../setup/python3/setup.ui.h:3 + msgid "Halfwidth Katakana" + msgstr "" + +-#: ../engine/python2/engine.py:324 ../engine/python3/engine.py:325 ++#: ../engine/python2/engine.py:395 ../engine/python3/engine.py:396 + #: ../setup/python2/setup.ui.h:4 ../setup/python3/setup.ui.h:4 + msgid "Latin" + msgstr "Λατινικοί χαρακτήρες" + +-#: ../engine/python2/engine.py:333 ../engine/python3/engine.py:334 ++#: ../engine/python2/engine.py:404 ../engine/python3/engine.py:405 + #: ../setup/python2/setup.ui.h:5 ../setup/python3/setup.ui.h:5 + msgid "Wide Latin" + msgstr "Λατινικοί πλήρους πλάτους" + +-#: ../engine/python2/engine.py:369 ../engine/python2/engine.py:871 +-#: ../engine/python2/engine.py:895 ../engine/python3/engine.py:370 +-#: ../engine/python3/engine.py:866 ../engine/python3/engine.py:890 +-#: ../setup/python2/main.py:396 ../setup/python3/main.py:401 ++#: ../engine/python2/engine.py:440 ../engine/python2/engine.py:945 ++#: ../engine/python2/engine.py:969 ../engine/python3/engine.py:441 ++#: ../engine/python3/engine.py:940 ../engine/python3/engine.py:964 ++#: ../setup/python2/main.py:400 ../setup/python3/main.py:405 + msgid "Typing method" + msgstr "" + +-#: ../engine/python2/engine.py:375 ../engine/python3/engine.py:376 ++#: ../engine/python2/engine.py:446 ../engine/python3/engine.py:447 + msgid "Switch typing method" + msgstr "" + +-#: ../engine/python2/engine.py:385 ../engine/python3/engine.py:386 ++#: ../engine/python2/engine.py:456 ../engine/python3/engine.py:457 + #: ../setup/python2/setup.ui.h:12 ../setup/python3/setup.ui.h:12 + msgid "Romaji" + msgstr "Ρομάτζι" + +-#: ../engine/python2/engine.py:394 ../engine/python3/engine.py:395 ++#: ../engine/python2/engine.py:465 ../engine/python3/engine.py:466 + #: ../setup/python2/setup.ui.h:13 ../setup/python3/setup.ui.h:13 + msgid "Kana" + msgstr "Κάνα" + +-#: ../engine/python2/engine.py:403 ../engine/python3/engine.py:404 ++#: ../engine/python2/engine.py:474 ../engine/python3/engine.py:475 + #: ../setup/python2/setup.ui.h:14 ../setup/python3/setup.ui.h:14 + msgid "Thumb shift" + msgstr "Μέθοδος thumb shift" + +-#: ../engine/python2/engine.py:436 ../engine/python2/engine.py:921 +-#: ../engine/python3/engine.py:437 ../engine/python3/engine.py:916 +-#: ../setup/python2/main.py:399 ../setup/python3/main.py:404 ++#: ../engine/python2/engine.py:507 ../engine/python2/engine.py:995 ++#: ../engine/python3/engine.py:508 ../engine/python3/engine.py:990 ++#: ../setup/python2/main.py:403 ../setup/python3/main.py:408 + msgid "Segment mode" + msgstr "" + +-#: ../engine/python2/engine.py:442 ../engine/python3/engine.py:443 ++#: ../engine/python2/engine.py:513 ../engine/python3/engine.py:514 + msgid "Switch conversion mode" + msgstr "Αλλαγή μεθόδου μετατροπής" + +-#: ../engine/python2/engine.py:452 ../engine/python3/engine.py:453 ++#: ../engine/python2/engine.py:523 ../engine/python3/engine.py:524 + #: ../setup/python2/setup.ui.h:15 ../setup/python3/setup.ui.h:15 + msgid "Multiple segment" + msgstr "Πολλαπλά τμήματα" + +-#: ../engine/python2/engine.py:461 ../engine/python3/engine.py:462 ++#: ../engine/python2/engine.py:532 ../engine/python3/engine.py:533 + #: ../setup/python2/setup.ui.h:16 ../setup/python3/setup.ui.h:16 + msgid "Single segment" + msgstr "Μοναδικό τμήμα" + +-#: ../engine/python2/engine.py:470 ../engine/python3/engine.py:471 ++#: ../engine/python2/engine.py:541 ../engine/python3/engine.py:542 + #: ../setup/python2/setup.ui.h:17 ../setup/python3/setup.ui.h:17 + msgid "Immediate conversion (multiple segment)" + msgstr "" + +-#: ../engine/python2/engine.py:479 ../engine/python3/engine.py:480 ++#: ../engine/python2/engine.py:550 ../engine/python3/engine.py:551 + #: ../setup/python2/setup.ui.h:18 ../setup/python3/setup.ui.h:18 + msgid "Immediate conversion (single segment)" + msgstr "" + +-#: ../engine/python2/engine.py:512 ../engine/python2/engine.py:983 +-#: ../engine/python3/engine.py:513 ../engine/python3/engine.py:978 +-#: ../setup/python2/main.py:402 ../setup/python3/main.py:407 ++#: ../engine/python2/engine.py:583 ../engine/python2/engine.py:1057 ++#: ../engine/python3/engine.py:584 ../engine/python3/engine.py:1052 ++#: ../setup/python2/main.py:406 ../setup/python3/main.py:411 + msgid "Dictionary mode" + msgstr "" + +-#: ../engine/python2/engine.py:518 ../engine/python3/engine.py:519 ++#: ../engine/python2/engine.py:589 ../engine/python3/engine.py:590 + msgid "Switch dictionary" + msgstr "" + +-#: ../engine/python2/engine.py:601 ../engine/python3/engine.py:601 +-#: ../setup/python2/main.py:405 ../setup/python3/main.py:410 ++#: ../engine/python2/engine.py:672 ../engine/python3/engine.py:672 ++#: ../setup/python2/main.py:409 ../setup/python3/main.py:414 + msgid "Dictionary - Anthy" + msgstr "Λεξικό - Anthy" + + #. Translators: "Dic" means 'dictionary', One kanji may be good. +-#: ../engine/python2/engine.py:607 ../engine/python3/engine.py:606 ++#: ../engine/python2/engine.py:678 ../engine/python3/engine.py:677 + msgid "Dic" + msgstr "Λξκ" + +-#: ../engine/python2/engine.py:614 ../engine/python3/engine.py:613 ++#: ../engine/python2/engine.py:685 ../engine/python3/engine.py:684 + msgid "Configure dictionaries" + msgstr "Ρυθμίσεις λεξικών" + +-#: ../engine/python2/engine.py:624 ../engine/python3/engine.py:623 ++#: ../engine/python2/engine.py:695 ../engine/python3/engine.py:694 + msgid "Edit dictionaries" + msgstr "Επεξεργασία λεξικών" + +-#: ../engine/python2/engine.py:626 ../engine/python3/engine.py:625 ++#: ../engine/python2/engine.py:697 ../engine/python3/engine.py:696 + msgid "Launch the dictionary tool" + msgstr "Εκκίνηση εργαλείου λεξικού" + +-#: ../engine/python2/engine.py:633 ../engine/python3/engine.py:632 ++#: ../engine/python2/engine.py:704 ../engine/python3/engine.py:703 + msgid "Add words" + msgstr "Προσθήκη λέξεων" + +-#: ../engine/python2/engine.py:635 ../engine/python3/engine.py:634 ++#: ../engine/python2/engine.py:706 ../engine/python3/engine.py:705 + msgid "Add words to the dictionary" + msgstr "" + +-#: ../setup/python2/anthyprefs.py.in:1104 ../setup/python2/setup.ui.h:35 +-#: ../setup/python3/anthyprefs.py.in:1097 ../setup/python3/setup.ui.h:35 ++#: ../setup/python2/anthyprefs.py.in:1106 ../setup/python2/setup.ui.h:36 ++#: ../setup/python3/anthyprefs.py.in:1099 ../setup/python3/setup.ui.h:36 + msgid "General" + msgstr "Γενικό" + +-#: ../setup/python2/anthyprefs.py.in:1115 +-#: ../setup/python3/anthyprefs.py.in:1108 ++#: ../setup/python2/anthyprefs.py.in:1117 ++#: ../setup/python3/anthyprefs.py.in:1110 + msgid "Zip Code Conversion" + msgstr "Μετατροπή ταχυδρομικών κωδικών" + +-#: ../setup/python2/anthyprefs.py.in:1126 +-#: ../setup/python3/anthyprefs.py.in:1119 ++#: ../setup/python2/anthyprefs.py.in:1128 ++#: ../setup/python3/anthyprefs.py.in:1121 + msgid "Symbol" + msgstr "Σύμβολα" + +-#: ../setup/python2/anthyprefs.py.in:1137 +-#: ../setup/python3/anthyprefs.py.in:1130 ++#: ../setup/python2/anthyprefs.py.in:1139 ++#: ../setup/python3/anthyprefs.py.in:1132 + msgid "Old Character Style" + msgstr "Παλιές μορφές χαρακτήρων" + +-#: ../setup/python2/anthyprefs.py.in:1147 +-#: ../setup/python3/anthyprefs.py.in:1140 ++#: ../setup/python2/anthyprefs.py.in:1149 ++#: ../setup/python3/anthyprefs.py.in:1142 + msgid "Era" + msgstr "" + +-#: ../setup/python2/anthyprefs.py.in:1157 +-#: ../setup/python3/anthyprefs.py.in:1150 ++#: ../setup/python2/anthyprefs.py.in:1159 ++#: ../setup/python3/anthyprefs.py.in:1152 + msgid "Emoji" + msgstr "" + +@@ -228,276 +228,276 @@ msgstr "" + msgid "ibus is not running." + msgstr "" + +-#: ../setup/python2/main.py:180 ../setup/python3/main.py:183 ++#: ../setup/python2/main.py:181 ../setup/python3/main.py:184 + msgid "Menu label" + msgstr "" + +-#: ../setup/python2/main.py:199 ../setup/python3/main.py:202 ++#: ../setup/python2/main.py:200 ../setup/python3/main.py:203 + msgid "Command" + msgstr "Εντολή" + +-#: ../setup/python2/main.py:203 ../setup/python3/main.py:206 ++#: ../setup/python2/main.py:204 ../setup/python3/main.py:207 + msgid "Shortcut" + msgstr "Συντόμευση" + +-#: ../setup/python2/main.py:248 ../setup/python3/main.py:251 ++#: ../setup/python2/main.py:249 ../setup/python3/main.py:252 + msgid "Description" + msgstr "Περιγραφή " + + #. Translators: "Embd" is an abbreviation of "embedded". +-#: ../setup/python2/main.py:256 ../setup/python3/main.py:259 ++#: ../setup/python2/main.py:257 ../setup/python3/main.py:260 + msgid "Embd" + msgstr "Ενσμ." + + #. Translators: "Sgl" is an abbreviation of "single". +-#: ../setup/python2/main.py:264 ../setup/python3/main.py:267 ++#: ../setup/python2/main.py:265 ../setup/python3/main.py:268 + msgid "Sgl" + msgstr "Μν." + +-#: ../setup/python2/main.py:439 ../setup/python2/main.py:475 +-#: ../setup/python3/main.py:444 ../setup/python3/main.py:480 ++#: ../setup/python2/main.py:443 ../setup/python2/main.py:479 ++#: ../setup/python3/main.py:448 ../setup/python3/main.py:484 + msgid "Input Chars" + msgstr "Εισ. Χαρακτήρες" + +-#: ../setup/python2/main.py:441 ../setup/python2/main.py:477 +-#: ../setup/python3/main.py:446 ../setup/python3/main.py:482 ++#: ../setup/python2/main.py:445 ../setup/python2/main.py:481 ++#: ../setup/python3/main.py:450 ../setup/python3/main.py:486 + msgid "Output Chars" + msgstr "Εξ. Χαρακτήρες" + +-#: ../setup/python2/main.py:523 ../setup/python3/main.py:528 ++#: ../setup/python2/main.py:527 ../setup/python3/main.py:532 + msgid "Input" + msgstr "Εισαγωγή" + +-#: ../setup/python2/main.py:525 ../setup/python3/main.py:530 ++#: ../setup/python2/main.py:529 ../setup/python3/main.py:534 + msgid "Single" + msgstr "Μονό" + +-#: ../setup/python2/main.py:527 ../setup/python3/main.py:532 ++#: ../setup/python2/main.py:531 ../setup/python3/main.py:536 + msgid "Left" + msgstr "Αριστερά" + +-#: ../setup/python2/main.py:529 ../setup/python3/main.py:534 ++#: ../setup/python2/main.py:533 ../setup/python3/main.py:538 + msgid "Right" + msgstr "Δεξιά" + +-#: ../setup/python2/main.py:611 ../setup/python3/main.py:616 ++#: ../setup/python2/main.py:615 ../setup/python3/main.py:620 + msgid "Customize Romaji Key Table" + msgstr "Προσαρμογή πληκτρολογίου Ρομάτζι" + +-#: ../setup/python2/main.py:612 ../setup/python2/setup.ui.h:53 +-#: ../setup/python3/main.py:617 ../setup/python3/setup.ui.h:53 ++#: ../setup/python2/main.py:616 ../setup/python2/setup.ui.h:54 ++#: ../setup/python3/main.py:621 ../setup/python3/setup.ui.h:54 + msgid "_Romaji Key Table:" + msgstr "Πίνακας πλήκτρων _Ρομάτζι" + +-#: ../setup/python2/main.py:613 ../setup/python2/main.py:619 +-#: ../setup/python3/main.py:618 ../setup/python3/main.py:624 ++#: ../setup/python2/main.py:617 ../setup/python2/main.py:623 ++#: ../setup/python3/main.py:622 ../setup/python3/main.py:628 + msgid "_Output Chars" + msgstr "Αποτέλεσμα _εξόδου" + +-#: ../setup/python2/main.py:614 ../setup/python2/main.py:1114 +-#: ../setup/python2/main.py:1196 ../setup/python2/setup.ui.h:26 +-#: ../setup/python3/main.py:619 ../setup/python3/main.py:1108 +-#: ../setup/python3/main.py:1190 ../setup/python3/setup.ui.h:26 ++#: ../setup/python2/main.py:618 ../setup/python2/main.py:1118 ++#: ../setup/python2/main.py:1200 ../setup/python2/setup.ui.h:26 ++#: ../setup/python3/main.py:623 ../setup/python3/main.py:1112 ++#: ../setup/python3/main.py:1194 ../setup/python3/setup.ui.h:26 + msgid "Default" + msgstr "Προεπιλογή" + +-#: ../setup/python2/main.py:617 ../setup/python3/main.py:622 ++#: ../setup/python2/main.py:621 ../setup/python3/main.py:626 + msgid "Customize Kana Key Table" + msgstr "Προσαρμογή πληκτρολογίου Κάνα" + +-#: ../setup/python2/main.py:618 ../setup/python2/setup.ui.h:55 +-#: ../setup/python3/main.py:623 ../setup/python3/setup.ui.h:55 ++#: ../setup/python2/main.py:622 ../setup/python2/setup.ui.h:56 ++#: ../setup/python3/main.py:627 ../setup/python3/setup.ui.h:56 + msgid "_Kana Key Table:" + msgstr "Πίνακας πλήκτρων _Κάνα" + +-#: ../setup/python2/main.py:620 ../setup/python3/main.py:625 ++#: ../setup/python2/main.py:624 ../setup/python3/main.py:629 + msgid "Japanese Keyboard Layout" + msgstr "" + +-#: ../setup/python2/main.py:621 ../setup/python3/main.py:626 ++#: ../setup/python2/main.py:625 ../setup/python3/main.py:630 + msgid "U.S. Keyboard Layout" + msgstr "" + +-#: ../setup/python2/main.py:624 ../setup/python3/main.py:629 ++#: ../setup/python2/main.py:628 ../setup/python3/main.py:633 + msgid "Customize Thumb Shift Key Table" + msgstr "Προσαρμογή πληκτρολογίου Thumb Shift" + +-#: ../setup/python2/main.py:625 ../setup/python3/main.py:630 ++#: ../setup/python2/main.py:629 ../setup/python3/main.py:634 + msgid "_Thumb Shift Key Table:" + msgstr "Πίνακας πλήκτρων _Thumb Shift" + +-#: ../setup/python2/main.py:626 ../setup/python3/main.py:631 ++#: ../setup/python2/main.py:630 ../setup/python3/main.py:635 + msgid "Single _Output Chars" + msgstr "Μονοί χαρακτήρες _Εξόδου" + +-#: ../setup/python2/main.py:627 ../setup/python3/main.py:632 ++#: ../setup/python2/main.py:631 ../setup/python3/main.py:636 + msgid "Base" + msgstr "Βάση" + +-#: ../setup/python2/main.py:628 ../setup/python3/main.py:633 ++#: ../setup/python2/main.py:632 ../setup/python3/main.py:637 + msgid "NICOLA-J key extension" + msgstr "Επεκτάσεις πλήκτρων NICOLA-J" + +-#: ../setup/python2/main.py:629 ../setup/python3/main.py:634 ++#: ../setup/python2/main.py:633 ../setup/python3/main.py:638 + msgid "NICOLA-A key extension" + msgstr "Επεκτάσεις πλήκτρων NICOLA-A" + +-#: ../setup/python2/main.py:630 ../setup/python3/main.py:635 ++#: ../setup/python2/main.py:634 ../setup/python3/main.py:639 + msgid "NICOLA-F key extension" + msgstr "Επεκτάσεις πλήκτρων NICOLA-F" + +-#: ../setup/python2/main.py:631 ../setup/python3/main.py:636 ++#: ../setup/python2/main.py:635 ../setup/python3/main.py:640 + msgid "FMV KB231-J key extension" + msgstr "Επεκτάσεις πλήκτρων FMV KB231-J" + +-#: ../setup/python2/main.py:632 ../setup/python3/main.py:637 ++#: ../setup/python2/main.py:636 ../setup/python3/main.py:641 + msgid "FMV KB231-A key extension" + msgstr "Επεκτάσεις πλήκτρων FMV KB231-A" + +-#: ../setup/python2/main.py:633 ../setup/python3/main.py:638 ++#: ../setup/python2/main.py:637 ../setup/python3/main.py:642 + msgid "FMV KB231-F key extension" + msgstr "Επεκτάσεις πλήκτρων FMV KB231-F" + +-#: ../setup/python2/main.py:634 ../setup/python3/main.py:639 ++#: ../setup/python2/main.py:638 ../setup/python3/main.py:643 + msgid "FMV KB611-J key extension" + msgstr "" + +-#: ../setup/python2/main.py:635 ../setup/python3/main.py:640 ++#: ../setup/python2/main.py:639 ../setup/python3/main.py:644 + msgid "FMV KB611-A key extension" + msgstr "" + +-#: ../setup/python2/main.py:636 ../setup/python3/main.py:641 ++#: ../setup/python2/main.py:640 ../setup/python3/main.py:645 + msgid "FMV KB611-F key extension" + msgstr "" + +-#: ../setup/python2/main.py:780 ../setup/python3/main.py:785 ++#: ../setup/python2/main.py:784 ../setup/python3/main.py:789 + msgid "Your choosed file has already been added: " + msgstr "" + +-#: ../setup/python2/main.py:784 ../setup/python3/main.py:789 ++#: ../setup/python2/main.py:788 ../setup/python3/main.py:793 + msgid "The file you have chosen does not exist: " + msgstr "" + +-#: ../setup/python2/main.py:788 ../setup/python3/main.py:793 ++#: ../setup/python2/main.py:792 ../setup/python3/main.py:797 + msgid "Your choosed file is a directory: " + msgstr "" + +-#: ../setup/python2/main.py:792 ../setup/python3/main.py:797 ++#: ../setup/python2/main.py:796 ../setup/python3/main.py:801 + msgid "You cannot add dictionaries in the anthy private directory: " + msgstr "" + +-#: ../setup/python2/main.py:799 ../setup/python3/main.py:804 ++#: ../setup/python2/main.py:803 ../setup/python3/main.py:808 + msgid "Your file path is not good: " + msgstr "" + +-#: ../setup/python2/main.py:978 ../setup/python3/main.py:981 ++#: ../setup/python2/main.py:982 ../setup/python3/main.py:985 + msgid "The engine xml file does not exist: " + msgstr "" + +-#: ../setup/python2/main.py:1094 ../setup/python3/main.py:1088 ++#: ../setup/python2/main.py:1098 ../setup/python3/main.py:1092 + msgid "" + "Anthy keyboard layout is changed. Please restart ibus to reload the layout." + msgstr "" + +-#: ../setup/python2/main.py:1157 ../setup/python3/main.py:1151 ++#: ../setup/python2/main.py:1161 ../setup/python3/main.py:1155 + msgid "Confirmation" + msgstr "" + +-#: ../setup/python2/main.py:1159 ../setup/python3/main.py:1153 ++#: ../setup/python2/main.py:1163 ../setup/python3/main.py:1157 + msgid "You are about to close the setup dialog, is that OK?" + msgstr "" + +-#: ../setup/python2/main.py:1174 ../setup/python3/main.py:1168 ++#: ../setup/python2/main.py:1178 ../setup/python3/main.py:1172 + msgid "Notice!" + msgstr "" + +-#: ../setup/python2/main.py:1176 ../setup/python3/main.py:1170 ++#: ../setup/python2/main.py:1180 ../setup/python3/main.py:1174 + msgid "" + "You are about to close the setup dialog without saving your changes, is that " + "OK?" + msgstr "" + +-#: ../setup/python2/main.py:1297 ../setup/python3/main.py:1291 ++#: ../setup/python2/main.py:1301 ../setup/python3/main.py:1295 + msgid "Please specify Input Chars" + msgstr "" + +-#: ../setup/python2/main.py:1300 ../setup/python3/main.py:1294 ++#: ../setup/python2/main.py:1304 ../setup/python3/main.py:1298 + msgid "Please specify Output Chars" + msgstr "" + +-#: ../setup/python2/main.py:1303 ../setup/python3/main.py:1297 ++#: ../setup/python2/main.py:1307 ../setup/python3/main.py:1301 + msgid "Please specify Left Thumb Shift Chars" + msgstr "" + +-#: ../setup/python2/main.py:1306 ../setup/python3/main.py:1300 ++#: ../setup/python2/main.py:1310 ../setup/python3/main.py:1304 + msgid "Please specify Right Thumb Shift Chars" + msgstr "" + +-#: ../setup/python2/main.py:1319 ../setup/python2/main.py:1363 +-#: ../setup/python3/main.py:1313 ../setup/python3/main.py:1357 ++#: ../setup/python2/main.py:1323 ../setup/python2/main.py:1367 ++#: ../setup/python3/main.py:1317 ../setup/python3/main.py:1361 + msgid "Your custom key is not assigned in any sections. Maybe a bug." + msgstr "" + +-#: ../setup/python2/main.py:1429 ../setup/python2/main.py:1516 +-#: ../setup/python3/main.py:1423 ../setup/python3/main.py:1510 ++#: ../setup/python2/main.py:1433 ../setup/python2/main.py:1520 ++#: ../setup/python3/main.py:1427 ../setup/python3/main.py:1514 + msgid "Your file does not exist: " + msgstr "" + +-#: ../setup/python2/main.py:1439 ../setup/python3/main.py:1433 ++#: ../setup/python2/main.py:1443 ../setup/python3/main.py:1437 + msgid "Open Dictionary File" + msgstr "" + +-#: ../setup/python2/main.py:1442 ../setup/python2/main.py:1448 +-#: ../setup/python2/setup.ui.h:89 ../setup/python3/main.py:1436 +-#: ../setup/python3/main.py:1442 ../setup/python3/setup.ui.h:89 ++#: ../setup/python2/main.py:1446 ../setup/python2/main.py:1452 ++#: ../setup/python2/setup.ui.h:90 ../setup/python3/main.py:1440 ++#: ../setup/python3/main.py:1446 ../setup/python3/setup.ui.h:90 + msgid "_Cancel" + msgstr "_Ακύρωση" + +-#: ../setup/python2/main.py:1443 ../setup/python3/main.py:1437 ++#: ../setup/python2/main.py:1447 ../setup/python3/main.py:1441 + msgid "_Open" + msgstr "Άν_οιγμα" + +-#: ../setup/python2/main.py:1446 ../setup/python3/main.py:1440 ++#: ../setup/python2/main.py:1450 ../setup/python3/main.py:1444 + msgid "Edit Dictionary File" + msgstr "" + +-#: ../setup/python2/main.py:1449 ../setup/python2/main.py:1544 +-#: ../setup/python2/setup.ui.h:90 ../setup/python3/main.py:1443 +-#: ../setup/python3/main.py:1538 ../setup/python3/setup.ui.h:90 ++#: ../setup/python2/main.py:1453 ../setup/python2/main.py:1548 ++#: ../setup/python2/setup.ui.h:91 ../setup/python3/main.py:1447 ++#: ../setup/python3/main.py:1542 ../setup/python3/setup.ui.h:91 + msgid "_OK" + msgstr "_Εντάξει" + +-#: ../setup/python2/main.py:1460 ../setup/python3/main.py:1454 ++#: ../setup/python2/main.py:1464 ../setup/python3/main.py:1458 + msgid "Your choosed file is not correct." + msgstr "" + +-#: ../setup/python2/main.py:1489 ../setup/python3/main.py:1483 ++#: ../setup/python2/main.py:1493 ../setup/python3/main.py:1487 + msgid "You cannot delete the system dictionary." + msgstr "" + +-#: ../setup/python2/main.py:1512 ../setup/python3/main.py:1506 ++#: ../setup/python2/main.py:1516 ../setup/python3/main.py:1510 + msgid "Your file is not good." + msgstr "" + +-#: ../setup/python2/main.py:1542 ../setup/python3/main.py:1536 ++#: ../setup/python2/main.py:1546 ../setup/python3/main.py:1540 + msgid "View Dictionary File" + msgstr "" + +-#: ../setup/python2/main.py:1694 ../setup/python3/main.py:1688 ++#: ../setup/python2/main.py:1698 ../setup/python3/main.py:1692 + msgid "Please press a key (or a key combination)" + msgstr "" + +-#: ../setup/python2/main.py:1695 ../setup/python3/main.py:1689 ++#: ../setup/python2/main.py:1699 ../setup/python3/main.py:1693 + msgid "The dialog will be closed when the key is released" + msgstr "" + +-#: ../setup/python2/main.py:1715 ../setup/python2/main.py:1736 +-#: ../setup/python3/main.py:1709 ../setup/python3/main.py:1730 ++#: ../setup/python2/main.py:1719 ../setup/python2/main.py:1740 ++#: ../setup/python3/main.py:1713 ../setup/python3/main.py:1734 + msgid "Invalid keysym" + msgstr "" + +-#: ../setup/python2/main.py:1716 ../setup/python2/main.py:1737 +-#: ../setup/python3/main.py:1710 ../setup/python3/main.py:1731 ++#: ../setup/python2/main.py:1720 ../setup/python2/main.py:1741 ++#: ../setup/python3/main.py:1714 ../setup/python3/main.py:1735 + msgid "This keysym is not valid" + msgstr "" + +@@ -582,298 +582,303 @@ msgid "Initial Setting" + msgstr "" + + #: ../setup/python2/setup.ui.h:34 ../setup/python3/setup.ui.h:34 ++#, fuzzy ++msgid "_Show input mode icon" ++msgstr "Αλλαγή μεθόδου εισαγωγής" ++ ++#: ../setup/python2/setup.ui.h:35 ../setup/python3/setup.ui.h:35 + msgid "Menu Visibility on Status Icon" + msgstr "" + +-#: ../setup/python2/setup.ui.h:36 ../setup/python3/setup.ui.h:36 ++#: ../setup/python2/setup.ui.h:37 ../setup/python3/setup.ui.h:37 + msgid "_Period Style:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:37 ../setup/python3/setup.ui.h:37 ++#: ../setup/python2/setup.ui.h:38 ../setup/python3/setup.ui.h:38 + msgid "Symbo_l Style:" + msgstr "Στιλ Συμβό_λου:" + +-#: ../setup/python2/setup.ui.h:38 ../setup/python3/setup.ui.h:38 ++#: ../setup/python2/setup.ui.h:39 ../setup/python3/setup.ui.h:39 + msgid "Numpad _Key Type:" + msgstr "Συμπεριφορά _αριθμητικού πληκτρολογίου:" + +-#: ../setup/python2/setup.ui.h:39 ../setup/python3/setup.ui.h:39 ++#: ../setup/python2/setup.ui.h:40 ../setup/python3/setup.ui.h:40 + msgid "_Behavior on Period:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:40 ../setup/python3/setup.ui.h:40 ++#: ../setup/python2/setup.ui.h:41 ../setup/python3/setup.ui.h:41 + msgid "Behavior on _Focus Out:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:41 ../setup/python3/setup.ui.h:41 ++#: ../setup/python2/setup.ui.h:42 ../setup/python3/setup.ui.h:42 + msgid "Behavior" + msgstr "" + +-#: ../setup/python2/setup.ui.h:42 ../setup/python3/setup.ui.h:42 ++#: ../setup/python2/setup.ui.h:43 ../setup/python3/setup.ui.h:43 + msgid "Candidate _Window Page Size:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:43 ../setup/python3/setup.ui.h:43 ++#: ../setup/python2/setup.ui.h:44 ../setup/python3/setup.ui.h:44 + msgid "Convert _symbols with the one column width" + msgstr "" + +-#: ../setup/python2/setup.ui.h:44 ../setup/python3/setup.ui.h:44 ++#: ../setup/python2/setup.ui.h:45 ../setup/python3/setup.ui.h:45 + msgid "Convert _numbers with the one column width" + msgstr "" + +-#: ../setup/python2/setup.ui.h:45 ../setup/python3/setup.ui.h:45 ++#: ../setup/python2/setup.ui.h:46 ../setup/python3/setup.ui.h:46 + msgid "Con_vert spaces with the one column width" + msgstr "" + +-#: ../setup/python2/setup.ui.h:46 ../setup/python3/setup.ui.h:46 ++#: ../setup/python2/setup.ui.h:47 ../setup/python3/setup.ui.h:47 + msgid "" + "Swi_tch “Hiragana” and “Latin” with Shift key and Hiragana–Katakana key in " + "preedit" + msgstr "" + +-#: ../setup/python2/setup.ui.h:47 ../setup/python3/setup.ui.h:47 ++#: ../setup/python2/setup.ui.h:48 ../setup/python3/setup.ui.h:48 + msgid "Other" + msgstr "" + +-#: ../setup/python2/setup.ui.h:48 ../setup/python3/setup.ui.h:48 ++#: ../setup/python2/setup.ui.h:49 ../setup/python3/setup.ui.h:49 + msgid "Conversion" + msgstr "" + +-#: ../setup/python2/setup.ui.h:49 ../setup/python3/setup.ui.h:49 ++#: ../setup/python2/setup.ui.h:50 ../setup/python3/setup.ui.h:50 + msgid "_Shortcut Type:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:50 ../setup/python3/setup.ui.h:50 ++#: ../setup/python2/setup.ui.h:51 ../setup/python3/setup.ui.h:51 + msgid "De_fault" + msgstr "" + +-#: ../setup/python2/setup.ui.h:51 ../setup/python3/setup.ui.h:51 ++#: ../setup/python2/setup.ui.h:52 ../setup/python3/setup.ui.h:52 + msgid "_Edit" + msgstr "_Επεξεργασία" + +-#: ../setup/python2/setup.ui.h:52 ../setup/python3/setup.ui.h:52 ++#: ../setup/python2/setup.ui.h:53 ../setup/python3/setup.ui.h:53 + msgid "Key Binding" + msgstr "" + +-#: ../setup/python2/setup.ui.h:54 ../setup/python3/setup.ui.h:54 ++#: ../setup/python2/setup.ui.h:55 ../setup/python3/setup.ui.h:55 + msgid "Romaji" + msgstr "" + +-#: ../setup/python2/setup.ui.h:56 ../setup/python3/setup.ui.h:56 ++#: ../setup/python2/setup.ui.h:57 ../setup/python3/setup.ui.h:57 + msgid "Kana" + msgstr "" + +-#: ../setup/python2/setup.ui.h:57 ../setup/python3/setup.ui.h:57 ++#: ../setup/python2/setup.ui.h:58 ../setup/python3/setup.ui.h:58 + msgid "Keyboad _layout:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:58 ../setup/python3/setup.ui.h:58 ++#: ../setup/python2/setup.ui.h:59 ../setup/python3/setup.ui.h:59 + msgid "Keyboard layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:59 ../setup/python3/setup.ui.h:59 ++#: ../setup/python2/setup.ui.h:60 ../setup/python3/setup.ui.h:60 + msgid "Typing Method" + msgstr "" + +-#: ../setup/python2/setup.ui.h:60 ../setup/python3/setup.ui.h:60 ++#: ../setup/python2/setup.ui.h:61 ../setup/python3/setup.ui.h:61 + msgid "_Left Thumb Shift Key:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:61 ../setup/python3/setup.ui.h:61 ++#: ../setup/python2/setup.ui.h:62 ../setup/python3/setup.ui.h:62 + msgid "Right _Thumb Shift Key:" + msgstr "Δεξί _Thumb Shift:" + +-#: ../setup/python2/setup.ui.h:62 ../setup/python3/setup.ui.h:62 ++#: ../setup/python2/setup.ui.h:63 ../setup/python3/setup.ui.h:63 + msgid "Adjust _input method layout to system keyboard layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:63 ../setup/python3/setup.ui.h:63 ++#: ../setup/python2/setup.ui.h:64 ../setup/python3/setup.ui.h:64 + msgid "Adjust IM layout to XKB layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:64 ../setup/python3/setup.ui.h:64 ++#: ../setup/python2/setup.ui.h:65 ../setup/python3/setup.ui.h:65 + msgid "Input _Method Layout:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:65 ../setup/python3/setup.ui.h:65 ++#: ../setup/python2/setup.ui.h:66 ../setup/python3/setup.ui.h:66 + msgid "Restart IBus when you change the keyboard layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:66 ../setup/python3/setup.ui.h:66 ++#: ../setup/python2/setup.ui.h:67 ../setup/python3/setup.ui.h:67 + msgid "Restart IBus when you change XKB" + msgstr "" + +-#: ../setup/python2/setup.ui.h:67 ../setup/python3/setup.ui.h:67 ++#: ../setup/python2/setup.ui.h:68 ../setup/python3/setup.ui.h:68 + msgid "_Additional Key Arrangement:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:68 ../setup/python3/setup.ui.h:68 ++#: ../setup/python2/setup.ui.h:69 ../setup/python3/setup.ui.h:69 + msgid "" + "'~', '『', '¢', '£' and so on can be output with " + "Thumb Shift key" + msgstr "" + +-#: ../setup/python2/setup.ui.h:69 ../setup/python3/setup.ui.h:69 ++#: ../setup/python2/setup.ui.h:70 ../setup/python3/setup.ui.h:70 + msgid "" + "You do not have to reconfigure the system keyboard layout for \"Additional " + "Key Arrangement\" since this option changes input method layout only in case " + "input method is turned on." + msgstr "" + +-#: ../setup/python2/setup.ui.h:70 ../setup/python3/setup.ui.h:70 ++#: ../setup/python2/setup.ui.h:71 ../setup/python3/setup.ui.h:71 + msgid "" + "You do not have to reconfigure XKB since this option changes IM layout only " + "with IM on." + msgstr "" + +-#: ../setup/python2/setup.ui.h:71 ../setup/python3/setup.ui.h:71 ++#: ../setup/python2/setup.ui.h:72 ../setup/python3/setup.ui.h:72 + msgid "_Enable semi-voiced sound mark with Shift key" + msgstr "" + +-#: ../setup/python2/setup.ui.h:72 ../setup/python3/setup.ui.h:72 ++#: ../setup/python2/setup.ui.h:73 ../setup/python3/setup.ui.h:73 + msgid "Seion + Shift can output Handakuon" + msgstr "Το Seion + Shift εισάγουν handakuon" + +-#: ../setup/python2/setup.ui.h:73 ../setup/python3/setup.ui.h:73 ++#: ../setup/python2/setup.ui.h:74 ../setup/python3/setup.ui.h:74 + msgid "Thumb _Shift Key Table:" + msgstr "Πίνακας πλήκτρων Thumb _Shift:" + +-#: ../setup/python2/setup.ui.h:74 ../setup/python3/setup.ui.h:74 ++#: ../setup/python2/setup.ui.h:75 ../setup/python3/setup.ui.h:75 + msgid "Thumb Shift Layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:75 ../setup/python3/setup.ui.h:75 ++#: ../setup/python2/setup.ui.h:76 ../setup/python3/setup.ui.h:76 + msgid "Thumb Shift" + msgstr "" + +-#: ../setup/python2/setup.ui.h:76 ../setup/python3/setup.ui.h:76 ++#: ../setup/python2/setup.ui.h:77 ../setup/python3/setup.ui.h:77 + msgid "_Edit Dictionary Command:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:77 ../setup/python3/setup.ui.h:77 ++#: ../setup/python2/setup.ui.h:78 ../setup/python3/setup.ui.h:78 + msgid "_Add Word Command:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:78 ../setup/python3/setup.ui.h:78 ++#: ../setup/python2/setup.ui.h:79 ../setup/python3/setup.ui.h:79 + msgid "Default Dictionary Configuration" + msgstr "" + +-#: ../setup/python2/setup.ui.h:79 ../setup/python3/setup.ui.h:79 ++#: ../setup/python2/setup.ui.h:80 ../setup/python3/setup.ui.h:80 + msgid "_View" + msgstr "" + +-#: ../setup/python2/setup.ui.h:80 ../setup/python3/setup.ui.h:80 ++#: ../setup/python2/setup.ui.h:81 ../setup/python3/setup.ui.h:81 + msgid "_Add" + msgstr "_Προσθήκη" + +-#: ../setup/python2/setup.ui.h:81 ../setup/python3/setup.ui.h:81 ++#: ../setup/python2/setup.ui.h:82 ../setup/python3/setup.ui.h:82 + msgid "_Delete" + msgstr "_Διαγραφή" + +-#: ../setup/python2/setup.ui.h:82 ../setup/python3/setup.ui.h:82 ++#: ../setup/python2/setup.ui.h:83 ../setup/python3/setup.ui.h:83 + msgid "_Up" + msgstr "Πά_νω" + +-#: ../setup/python2/setup.ui.h:83 ../setup/python3/setup.ui.h:83 ++#: ../setup/python2/setup.ui.h:84 ../setup/python3/setup.ui.h:84 + msgid "You can change the order on language bar" + msgstr "" + +-#: ../setup/python2/setup.ui.h:84 ../setup/python3/setup.ui.h:84 ++#: ../setup/python2/setup.ui.h:85 ../setup/python3/setup.ui.h:85 + msgid "_Down" + msgstr "_Κάτω" + +-#: ../setup/python2/setup.ui.h:85 ../setup/python3/setup.ui.h:85 ++#: ../setup/python2/setup.ui.h:86 ../setup/python3/setup.ui.h:86 + msgid "Extended Dictionaries" + msgstr "" + +-#: ../setup/python2/setup.ui.h:86 ../setup/python3/setup.ui.h:86 ++#: ../setup/python2/setup.ui.h:87 ../setup/python3/setup.ui.h:87 + msgid "Dictionary" + msgstr "" + +-#: ../setup/python2/setup.ui.h:87 ../setup/python3/setup.ui.h:87 ++#: ../setup/python2/setup.ui.h:88 ../setup/python3/setup.ui.h:88 + msgid "About" + msgstr "" + +-#: ../setup/python2/setup.ui.h:88 ../setup/python3/setup.ui.h:88 ++#: ../setup/python2/setup.ui.h:89 ../setup/python3/setup.ui.h:89 + msgid "_Apply" + msgstr "_Εφαρμογή" + +-#: ../setup/python2/setup.ui.h:91 ../setup/python3/setup.ui.h:91 ++#: ../setup/python2/setup.ui.h:92 ../setup/python3/setup.ui.h:92 + msgid "Edit Shortcut" + msgstr "" + +-#: ../setup/python2/setup.ui.h:92 ../setup/python3/setup.ui.h:92 ++#: ../setup/python2/setup.ui.h:93 ../setup/python3/setup.ui.h:93 + msgid "Key Code:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:93 ../setup/python3/setup.ui.h:93 ++#: ../setup/python2/setup.ui.h:94 ../setup/python3/setup.ui.h:94 + msgid "Modifier:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:94 ../setup/python3/setup.ui.h:94 ++#: ../setup/python2/setup.ui.h:95 ../setup/python3/setup.ui.h:95 + msgid "A_lternate" + msgstr "" + +-#: ../setup/python2/setup.ui.h:95 ../setup/python3/setup.ui.h:95 ++#: ../setup/python2/setup.ui.h:96 ../setup/python3/setup.ui.h:96 + msgid "Co_ntrol" + msgstr "" + +-#: ../setup/python2/setup.ui.h:96 ../setup/python3/setup.ui.h:96 ++#: ../setup/python2/setup.ui.h:97 ../setup/python3/setup.ui.h:97 + msgid "_Shift" + msgstr "" + +-#: ../setup/python2/setup.ui.h:97 ../setup/python3/setup.ui.h:97 ++#: ../setup/python2/setup.ui.h:98 ../setup/python3/setup.ui.h:98 + msgid "_Refresh" + msgstr "_Ανανέωση" + +-#: ../setup/python2/setup.ui.h:98 ../setup/python3/setup.ui.h:98 ++#: ../setup/python2/setup.ui.h:99 ../setup/python3/setup.ui.h:99 + msgid "_Input Characters" + msgstr "" + +-#: ../setup/python2/setup.ui.h:99 ../setup/python3/setup.ui.h:99 ++#: ../setup/python2/setup.ui.h:100 ../setup/python3/setup.ui.h:100 + msgid "_Output Characters" + msgstr "" + +-#: ../setup/python2/setup.ui.h:100 ../setup/python3/setup.ui.h:100 ++#: ../setup/python2/setup.ui.h:101 ../setup/python3/setup.ui.h:101 + msgid "_Left Thumb Shift" + msgstr "" + +-#: ../setup/python2/setup.ui.h:101 ../setup/python3/setup.ui.h:101 ++#: ../setup/python2/setup.ui.h:102 ../setup/python3/setup.ui.h:102 + msgid "_Right Thumb Shift" + msgstr "" + +-#: ../setup/python2/setup.ui.h:102 ../setup/python3/setup.ui.h:102 ++#: ../setup/python2/setup.ui.h:103 ../setup/python3/setup.ui.h:103 + msgid "_Remove" + msgstr "_Αφαίρεση" + +-#: ../setup/python2/setup.ui.h:103 ../setup/python3/setup.ui.h:103 ++#: ../setup/python2/setup.ui.h:104 ../setup/python3/setup.ui.h:104 + msgid "_Close" + msgstr "_Κλείσιμο" + +-#: ../setup/python2/setup.ui.h:104 ../setup/python3/setup.ui.h:104 ++#: ../setup/python2/setup.ui.h:105 ../setup/python3/setup.ui.h:105 + msgid "_Short Label:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:105 ../setup/python3/setup.ui.h:105 ++#: ../setup/python2/setup.ui.h:106 ../setup/python3/setup.ui.h:106 + msgid "_Description:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:106 ../setup/python3/setup.ui.h:106 ++#: ../setup/python2/setup.ui.h:107 ../setup/python3/setup.ui.h:107 + msgid "_Use your dictionary alone with switching dictionaries" + msgstr "" + +-#: ../setup/python2/setup.ui.h:107 ../setup/python3/setup.ui.h:107 ++#: ../setup/python2/setup.ui.h:108 ../setup/python3/setup.ui.h:108 + msgid "_Embed your dictionary in the system dictionary" + msgstr "" + +-#: ../setup/python2/setup.ui.h:108 ../setup/python3/setup.ui.h:108 ++#: ../setup/python2/setup.ui.h:109 ../setup/python3/setup.ui.h:109 + msgid "Enable the _reverse conversion" + msgstr "" + +-#: ../setup/python2/setup.ui.h:109 ../setup/python3/setup.ui.h:109 ++#: ../setup/python2/setup.ui.h:110 ../setup/python3/setup.ui.h:110 + msgid "The Anthy engine for the IBus input platform" + msgstr "" + +-#: ../setup/python2/setup.ui.h:110 ../setup/python3/setup.ui.h:110 ++#: ../setup/python2/setup.ui.h:111 ../setup/python3/setup.ui.h:111 + msgid "translator_credits" + msgstr "" +diff --git a/po/fr.po b/po/fr.po +index a539258..515df3a 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -9,18 +9,18 @@ msgid "" + msgstr "" + "Project-Id-Version: IBus-Anthy\n" + "Report-Msgid-Bugs-To: http://code.google.com/p/ibus/issues/entry\n" +-"POT-Creation-Date: 2014-08-21 18:57+0900\n" ++"POT-Creation-Date: 2014-08-21 19:30+0900\n" + "PO-Revision-Date: 2014-02-20 10:01+0100\n" + "Last-Translator: Julien Humbert \n" + "Language-Team: French \n" ++"Language: fr\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"Language: fr\n" + "Plural-Forms: nplurals=2; plural=(n > 1);\n" + "X-Generator: Poedit 1.6.4\n" + +-#: ../engine/python2/engine.py:193 ../engine/python3/engine.py:194 ++#: ../engine/python2/engine.py:197 ../engine/python3/engine.py:198 + msgid "" + "Could not enable Anthy.\n" + "The end of the content of the file .anthy/last-record2_default.utf8 in your " +@@ -34,188 +34,188 @@ msgstr "" + "Veuillez corriger le fichier ou le supprimer manuellement, puis redémarrer " + "IBus." + +-#: ../engine/python2/engine.py:241 ../engine/python3/engine.py:242 +-#: ../setup/python2/main.py:408 ../setup/python3/main.py:413 ++#: ../engine/python2/engine.py:245 ../engine/python3/engine.py:246 ++#: ../setup/python2/main.py:412 ../setup/python3/main.py:417 + msgid "Preferences - Anthy" + msgstr "Préférences – Anthy" + +-#: ../engine/python2/engine.py:243 ../engine/python3/engine.py:244 ++#: ../engine/python2/engine.py:247 ../engine/python3/engine.py:248 + msgid "Configure Anthy" + msgstr "Configurer Anthy" + + #. Translators: Specify the order of %s with your translation. + #. It will be "Input Mode (A)" for example. +-#: ../engine/python2/engine.py:280 ../engine/python2/engine.py:368 +-#: ../engine/python2/engine.py:435 ../engine/python2/engine.py:511 +-#: ../engine/python2/engine.py:842 ../engine/python2/engine.py:870 +-#: ../engine/python2/engine.py:894 ../engine/python2/engine.py:920 +-#: ../engine/python2/engine.py:982 ../engine/python3/engine.py:281 +-#: ../engine/python3/engine.py:369 ../engine/python3/engine.py:436 +-#: ../engine/python3/engine.py:512 ../engine/python3/engine.py:837 +-#: ../engine/python3/engine.py:865 ../engine/python3/engine.py:889 +-#: ../engine/python3/engine.py:915 ../engine/python3/engine.py:977 ++#: ../engine/python2/engine.py:351 ../engine/python2/engine.py:439 ++#: ../engine/python2/engine.py:506 ../engine/python2/engine.py:582 ++#: ../engine/python2/engine.py:913 ../engine/python2/engine.py:944 ++#: ../engine/python2/engine.py:968 ../engine/python2/engine.py:994 ++#: ../engine/python2/engine.py:1056 ../engine/python3/engine.py:352 ++#: ../engine/python3/engine.py:440 ../engine/python3/engine.py:507 ++#: ../engine/python3/engine.py:583 ../engine/python3/engine.py:908 ++#: ../engine/python3/engine.py:939 ../engine/python3/engine.py:963 ++#: ../engine/python3/engine.py:989 ../engine/python3/engine.py:1051 + #, python-format + msgid "%(description)s (%(symbol)s)" + msgstr "%(description)s (%(symbol)s)" + +-#: ../engine/python2/engine.py:281 ../engine/python2/engine.py:843 +-#: ../engine/python3/engine.py:282 ../engine/python3/engine.py:838 +-#: ../setup/python2/main.py:393 ../setup/python3/main.py:398 ++#: ../engine/python2/engine.py:352 ../engine/python2/engine.py:914 ++#: ../engine/python3/engine.py:353 ../engine/python3/engine.py:909 ++#: ../setup/python2/main.py:397 ../setup/python3/main.py:402 + msgid "Input mode" + msgstr "Mode de saisie" + +-#: ../engine/python2/engine.py:287 ../engine/python3/engine.py:288 ++#: ../engine/python2/engine.py:358 ../engine/python3/engine.py:359 + msgid "Switch input mode" + msgstr "Changer de mode de saisie" + +-#: ../engine/python2/engine.py:297 ../engine/python3/engine.py:298 ++#: ../engine/python2/engine.py:368 ../engine/python3/engine.py:369 + #: ../setup/python2/setup.ui.h:1 ../setup/python3/setup.ui.h:1 + msgid "Hiragana" + msgstr "Hiragana" + +-#: ../engine/python2/engine.py:306 ../engine/python3/engine.py:307 ++#: ../engine/python2/engine.py:377 ../engine/python3/engine.py:378 + #: ../setup/python2/setup.ui.h:2 ../setup/python3/setup.ui.h:2 + msgid "Katakana" + msgstr "Katakana" + +-#: ../engine/python2/engine.py:315 ../engine/python3/engine.py:316 ++#: ../engine/python2/engine.py:386 ../engine/python3/engine.py:387 + #: ../setup/python2/setup.ui.h:3 ../setup/python3/setup.ui.h:3 + msgid "Halfwidth Katakana" + msgstr "Katakana demi-largeur" + +-#: ../engine/python2/engine.py:324 ../engine/python3/engine.py:325 ++#: ../engine/python2/engine.py:395 ../engine/python3/engine.py:396 + #: ../setup/python2/setup.ui.h:4 ../setup/python3/setup.ui.h:4 + msgid "Latin" + msgstr "Alphabet" + +-#: ../engine/python2/engine.py:333 ../engine/python3/engine.py:334 ++#: ../engine/python2/engine.py:404 ../engine/python3/engine.py:405 + #: ../setup/python2/setup.ui.h:5 ../setup/python3/setup.ui.h:5 + msgid "Wide Latin" + msgstr "Alphabet pleine largeur" + +-#: ../engine/python2/engine.py:369 ../engine/python2/engine.py:871 +-#: ../engine/python2/engine.py:895 ../engine/python3/engine.py:370 +-#: ../engine/python3/engine.py:866 ../engine/python3/engine.py:890 +-#: ../setup/python2/main.py:396 ../setup/python3/main.py:401 ++#: ../engine/python2/engine.py:440 ../engine/python2/engine.py:945 ++#: ../engine/python2/engine.py:969 ../engine/python3/engine.py:441 ++#: ../engine/python3/engine.py:940 ../engine/python3/engine.py:964 ++#: ../setup/python2/main.py:400 ../setup/python3/main.py:405 + msgid "Typing method" + msgstr "Méthode de saisie" + +-#: ../engine/python2/engine.py:375 ../engine/python3/engine.py:376 ++#: ../engine/python2/engine.py:446 ../engine/python3/engine.py:447 + msgid "Switch typing method" + msgstr "Changer de méthode de saisie" + +-#: ../engine/python2/engine.py:385 ../engine/python3/engine.py:386 ++#: ../engine/python2/engine.py:456 ../engine/python3/engine.py:457 + #: ../setup/python2/setup.ui.h:12 ../setup/python3/setup.ui.h:12 + msgid "Romaji" + msgstr "Romaji" + +-#: ../engine/python2/engine.py:394 ../engine/python3/engine.py:395 ++#: ../engine/python2/engine.py:465 ../engine/python3/engine.py:466 + #: ../setup/python2/setup.ui.h:13 ../setup/python3/setup.ui.h:13 + msgid "Kana" + msgstr "Kana" + +-#: ../engine/python2/engine.py:403 ../engine/python3/engine.py:404 ++#: ../engine/python2/engine.py:474 ../engine/python3/engine.py:475 + #: ../setup/python2/setup.ui.h:14 ../setup/python3/setup.ui.h:14 + msgid "Thumb shift" + msgstr "Thumb shift" + +-#: ../engine/python2/engine.py:436 ../engine/python2/engine.py:921 +-#: ../engine/python3/engine.py:437 ../engine/python3/engine.py:916 +-#: ../setup/python2/main.py:399 ../setup/python3/main.py:404 ++#: ../engine/python2/engine.py:507 ../engine/python2/engine.py:995 ++#: ../engine/python3/engine.py:508 ../engine/python3/engine.py:990 ++#: ../setup/python2/main.py:403 ../setup/python3/main.py:408 + msgid "Segment mode" + msgstr "Mode segments" + +-#: ../engine/python2/engine.py:442 ../engine/python3/engine.py:443 ++#: ../engine/python2/engine.py:513 ../engine/python3/engine.py:514 + msgid "Switch conversion mode" + msgstr "Changer de méthode de conversion" + +-#: ../engine/python2/engine.py:452 ../engine/python3/engine.py:453 ++#: ../engine/python2/engine.py:523 ../engine/python3/engine.py:524 + #: ../setup/python2/setup.ui.h:15 ../setup/python3/setup.ui.h:15 + msgid "Multiple segment" + msgstr "Segments multiples" + +-#: ../engine/python2/engine.py:461 ../engine/python3/engine.py:462 ++#: ../engine/python2/engine.py:532 ../engine/python3/engine.py:533 + #: ../setup/python2/setup.ui.h:16 ../setup/python3/setup.ui.h:16 + msgid "Single segment" + msgstr "Segments simples" + +-#: ../engine/python2/engine.py:470 ../engine/python3/engine.py:471 ++#: ../engine/python2/engine.py:541 ../engine/python3/engine.py:542 + #: ../setup/python2/setup.ui.h:17 ../setup/python3/setup.ui.h:17 + msgid "Immediate conversion (multiple segment)" + msgstr "Conversion immédiate (segments multiples)" + +-#: ../engine/python2/engine.py:479 ../engine/python3/engine.py:480 ++#: ../engine/python2/engine.py:550 ../engine/python3/engine.py:551 + #: ../setup/python2/setup.ui.h:18 ../setup/python3/setup.ui.h:18 + msgid "Immediate conversion (single segment)" + msgstr "Conversion immédiate (segments simples)" + +-#: ../engine/python2/engine.py:512 ../engine/python2/engine.py:983 +-#: ../engine/python3/engine.py:513 ../engine/python3/engine.py:978 +-#: ../setup/python2/main.py:402 ../setup/python3/main.py:407 ++#: ../engine/python2/engine.py:583 ../engine/python2/engine.py:1057 ++#: ../engine/python3/engine.py:584 ../engine/python3/engine.py:1052 ++#: ../setup/python2/main.py:406 ../setup/python3/main.py:411 + msgid "Dictionary mode" + msgstr "Mode dictionnaire" + +-#: ../engine/python2/engine.py:518 ../engine/python3/engine.py:519 ++#: ../engine/python2/engine.py:589 ../engine/python3/engine.py:590 + msgid "Switch dictionary" + msgstr "Changer de dictionnaire" + +-#: ../engine/python2/engine.py:601 ../engine/python3/engine.py:601 +-#: ../setup/python2/main.py:405 ../setup/python3/main.py:410 ++#: ../engine/python2/engine.py:672 ../engine/python3/engine.py:672 ++#: ../setup/python2/main.py:409 ../setup/python3/main.py:414 + msgid "Dictionary - Anthy" + msgstr "Dictionnaire – Anthy" + + #. Translators: "Dic" means 'dictionary', One kanji may be good. +-#: ../engine/python2/engine.py:607 ../engine/python3/engine.py:606 ++#: ../engine/python2/engine.py:678 ../engine/python3/engine.py:677 + msgid "Dic" + msgstr "Dico" + +-#: ../engine/python2/engine.py:614 ../engine/python3/engine.py:613 ++#: ../engine/python2/engine.py:685 ../engine/python3/engine.py:684 + msgid "Configure dictionaries" + msgstr "Configurer les dictionnaires" + +-#: ../engine/python2/engine.py:624 ../engine/python3/engine.py:623 ++#: ../engine/python2/engine.py:695 ../engine/python3/engine.py:694 + msgid "Edit dictionaries" + msgstr "Modifier les dictionnaires" + +-#: ../engine/python2/engine.py:626 ../engine/python3/engine.py:625 ++#: ../engine/python2/engine.py:697 ../engine/python3/engine.py:696 + msgid "Launch the dictionary tool" + msgstr "Lancer l’utilitaire de modification de dictionnaires" + +-#: ../engine/python2/engine.py:633 ../engine/python3/engine.py:632 ++#: ../engine/python2/engine.py:704 ../engine/python3/engine.py:703 + msgid "Add words" + msgstr "Ajouter de nouveaux mots" + +-#: ../engine/python2/engine.py:635 ../engine/python3/engine.py:634 ++#: ../engine/python2/engine.py:706 ../engine/python3/engine.py:705 + msgid "Add words to the dictionary" + msgstr "Ajouter de nouveaux mots dans le dictionnaire" + +-#: ../setup/python2/anthyprefs.py.in:1104 ../setup/python2/setup.ui.h:35 +-#: ../setup/python3/anthyprefs.py.in:1097 ../setup/python3/setup.ui.h:35 ++#: ../setup/python2/anthyprefs.py.in:1106 ../setup/python2/setup.ui.h:36 ++#: ../setup/python3/anthyprefs.py.in:1099 ../setup/python3/setup.ui.h:36 + msgid "General" + msgstr "Paramètres généraux" + +-#: ../setup/python2/anthyprefs.py.in:1115 +-#: ../setup/python3/anthyprefs.py.in:1108 ++#: ../setup/python2/anthyprefs.py.in:1117 ++#: ../setup/python3/anthyprefs.py.in:1110 + msgid "Zip Code Conversion" + msgstr "Conversion des codes postaux" + +-#: ../setup/python2/anthyprefs.py.in:1126 +-#: ../setup/python3/anthyprefs.py.in:1119 ++#: ../setup/python2/anthyprefs.py.in:1128 ++#: ../setup/python3/anthyprefs.py.in:1121 + msgid "Symbol" + msgstr "Symboles" + +-#: ../setup/python2/anthyprefs.py.in:1137 +-#: ../setup/python3/anthyprefs.py.in:1130 ++#: ../setup/python2/anthyprefs.py.in:1139 ++#: ../setup/python3/anthyprefs.py.in:1132 + msgid "Old Character Style" + msgstr "Anciens caractères" + +-#: ../setup/python2/anthyprefs.py.in:1147 +-#: ../setup/python3/anthyprefs.py.in:1140 ++#: ../setup/python2/anthyprefs.py.in:1149 ++#: ../setup/python3/anthyprefs.py.in:1142 + msgid "Era" + msgstr "Ère" + +-#: ../setup/python2/anthyprefs.py.in:1157 +-#: ../setup/python3/anthyprefs.py.in:1150 ++#: ../setup/python2/anthyprefs.py.in:1159 ++#: ../setup/python3/anthyprefs.py.in:1152 + msgid "Emoji" + msgstr "" + +@@ -234,193 +234,193 @@ msgstr "Configuration du moteur IBus Anthy" + msgid "ibus is not running." + msgstr "ibus n’est pas lancé." + +-#: ../setup/python2/main.py:180 ../setup/python3/main.py:183 ++#: ../setup/python2/main.py:181 ../setup/python3/main.py:184 + msgid "Menu label" + msgstr "Label du menu" + +-#: ../setup/python2/main.py:199 ../setup/python3/main.py:202 ++#: ../setup/python2/main.py:200 ../setup/python3/main.py:203 + msgid "Command" + msgstr "Commande" + +-#: ../setup/python2/main.py:203 ../setup/python3/main.py:206 ++#: ../setup/python2/main.py:204 ../setup/python3/main.py:207 + msgid "Shortcut" + msgstr "Raccourci" + +-#: ../setup/python2/main.py:248 ../setup/python3/main.py:251 ++#: ../setup/python2/main.py:249 ../setup/python3/main.py:252 + msgid "Description" + msgstr "Description" + + #. Translators: "Embd" is an abbreviation of "embedded". +-#: ../setup/python2/main.py:256 ../setup/python3/main.py:259 ++#: ../setup/python2/main.py:257 ../setup/python3/main.py:260 + msgid "Embd" + msgstr "Incorporé" + + #. Translators: "Sgl" is an abbreviation of "single". +-#: ../setup/python2/main.py:264 ../setup/python3/main.py:267 ++#: ../setup/python2/main.py:265 ../setup/python3/main.py:268 + msgid "Sgl" + msgstr "Seul" + +-#: ../setup/python2/main.py:439 ../setup/python2/main.py:475 +-#: ../setup/python3/main.py:444 ../setup/python3/main.py:480 ++#: ../setup/python2/main.py:443 ../setup/python2/main.py:479 ++#: ../setup/python3/main.py:448 ../setup/python3/main.py:484 + msgid "Input Chars" + msgstr "Caractère(s) d’entrée" + +-#: ../setup/python2/main.py:441 ../setup/python2/main.py:477 +-#: ../setup/python3/main.py:446 ../setup/python3/main.py:482 ++#: ../setup/python2/main.py:445 ../setup/python2/main.py:481 ++#: ../setup/python3/main.py:450 ../setup/python3/main.py:486 + msgid "Output Chars" + msgstr "Caractère(s) de sortie" + +-#: ../setup/python2/main.py:523 ../setup/python3/main.py:528 ++#: ../setup/python2/main.py:527 ../setup/python3/main.py:532 + msgid "Input" + msgstr "Entrée" + +-#: ../setup/python2/main.py:525 ../setup/python3/main.py:530 ++#: ../setup/python2/main.py:529 ../setup/python3/main.py:534 + msgid "Single" + msgstr "Seul" + +-#: ../setup/python2/main.py:527 ../setup/python3/main.py:532 ++#: ../setup/python2/main.py:531 ../setup/python3/main.py:536 + msgid "Left" + msgstr "Gauche" + +-#: ../setup/python2/main.py:529 ../setup/python3/main.py:534 ++#: ../setup/python2/main.py:533 ../setup/python3/main.py:538 + msgid "Right" + msgstr "Droite" + +-#: ../setup/python2/main.py:611 ../setup/python3/main.py:616 ++#: ../setup/python2/main.py:615 ../setup/python3/main.py:620 + msgid "Customize Romaji Key Table" + msgstr "Modifier la table des touches Romaji" + +-#: ../setup/python2/main.py:612 ../setup/python2/setup.ui.h:53 +-#: ../setup/python3/main.py:617 ../setup/python3/setup.ui.h:53 ++#: ../setup/python2/main.py:616 ../setup/python2/setup.ui.h:54 ++#: ../setup/python3/main.py:621 ../setup/python3/setup.ui.h:54 + msgid "_Romaji Key Table:" + msgstr "Table des touches _Romaji :" + +-#: ../setup/python2/main.py:613 ../setup/python2/main.py:619 +-#: ../setup/python3/main.py:618 ../setup/python3/main.py:624 ++#: ../setup/python2/main.py:617 ../setup/python2/main.py:623 ++#: ../setup/python3/main.py:622 ../setup/python3/main.py:628 + msgid "_Output Chars" + msgstr "Caractère(s) de _sortie" + +-#: ../setup/python2/main.py:614 ../setup/python2/main.py:1114 +-#: ../setup/python2/main.py:1196 ../setup/python2/setup.ui.h:26 +-#: ../setup/python3/main.py:619 ../setup/python3/main.py:1108 +-#: ../setup/python3/main.py:1190 ../setup/python3/setup.ui.h:26 ++#: ../setup/python2/main.py:618 ../setup/python2/main.py:1118 ++#: ../setup/python2/main.py:1200 ../setup/python2/setup.ui.h:26 ++#: ../setup/python3/main.py:623 ../setup/python3/main.py:1112 ++#: ../setup/python3/main.py:1194 ../setup/python3/setup.ui.h:26 + msgid "Default" + msgstr "Par défaut" + +-#: ../setup/python2/main.py:617 ../setup/python3/main.py:622 ++#: ../setup/python2/main.py:621 ../setup/python3/main.py:626 + msgid "Customize Kana Key Table" + msgstr "Modifier la table des touches Kana" + +-#: ../setup/python2/main.py:618 ../setup/python2/setup.ui.h:55 +-#: ../setup/python3/main.py:623 ../setup/python3/setup.ui.h:55 ++#: ../setup/python2/main.py:622 ../setup/python2/setup.ui.h:56 ++#: ../setup/python3/main.py:627 ../setup/python3/setup.ui.h:56 + msgid "_Kana Key Table:" + msgstr "Table des touches _Kana :" + +-#: ../setup/python2/main.py:620 ../setup/python3/main.py:625 ++#: ../setup/python2/main.py:624 ../setup/python3/main.py:629 + msgid "Japanese Keyboard Layout" + msgstr "Disposition clavier japonais" + +-#: ../setup/python2/main.py:621 ../setup/python3/main.py:626 ++#: ../setup/python2/main.py:625 ../setup/python3/main.py:630 + msgid "U.S. Keyboard Layout" + msgstr "Disposition clavier américain" + +-#: ../setup/python2/main.py:624 ../setup/python3/main.py:629 ++#: ../setup/python2/main.py:628 ../setup/python3/main.py:633 + msgid "Customize Thumb Shift Key Table" + msgstr "Modifier la table des touches de la méthode Thumb Shift" + +-#: ../setup/python2/main.py:625 ../setup/python3/main.py:630 ++#: ../setup/python2/main.py:629 ../setup/python3/main.py:634 + msgid "_Thumb Shift Key Table:" + msgstr "Table des touches de la méthode Thumb _Shift :" + +-#: ../setup/python2/main.py:626 ../setup/python3/main.py:631 ++#: ../setup/python2/main.py:630 ../setup/python3/main.py:635 + msgid "Single _Output Chars" + msgstr "Caractère(s) de s_ortie unique(s)" + +-#: ../setup/python2/main.py:627 ../setup/python3/main.py:632 ++#: ../setup/python2/main.py:631 ../setup/python3/main.py:636 + msgid "Base" + msgstr "Basique" + +-#: ../setup/python2/main.py:628 ../setup/python3/main.py:633 ++#: ../setup/python2/main.py:632 ../setup/python3/main.py:637 + msgid "NICOLA-J key extension" + msgstr "Extension de touches NICOLA-J" + +-#: ../setup/python2/main.py:629 ../setup/python3/main.py:634 ++#: ../setup/python2/main.py:633 ../setup/python3/main.py:638 + msgid "NICOLA-A key extension" + msgstr "Extension de touches NICOLA-A" + +-#: ../setup/python2/main.py:630 ../setup/python3/main.py:635 ++#: ../setup/python2/main.py:634 ../setup/python3/main.py:639 + msgid "NICOLA-F key extension" + msgstr "Extension de touches NICOLA-F" + +-#: ../setup/python2/main.py:631 ../setup/python3/main.py:636 ++#: ../setup/python2/main.py:635 ../setup/python3/main.py:640 + msgid "FMV KB231-J key extension" + msgstr "Extension de touches FMV KB231-J" + +-#: ../setup/python2/main.py:632 ../setup/python3/main.py:637 ++#: ../setup/python2/main.py:636 ../setup/python3/main.py:641 + msgid "FMV KB231-A key extension" + msgstr "Extension de touches FMV KB231-A" + +-#: ../setup/python2/main.py:633 ../setup/python3/main.py:638 ++#: ../setup/python2/main.py:637 ../setup/python3/main.py:642 + msgid "FMV KB231-F key extension" + msgstr "Extension de touches FMV KB231-F" + +-#: ../setup/python2/main.py:634 ../setup/python3/main.py:639 ++#: ../setup/python2/main.py:638 ../setup/python3/main.py:643 + msgid "FMV KB611-J key extension" + msgstr "Extension de touches FMV KB611-J" + +-#: ../setup/python2/main.py:635 ../setup/python3/main.py:640 ++#: ../setup/python2/main.py:639 ../setup/python3/main.py:644 + msgid "FMV KB611-A key extension" + msgstr "Extension de touches FMV KB611-A" + +-#: ../setup/python2/main.py:636 ../setup/python3/main.py:641 ++#: ../setup/python2/main.py:640 ../setup/python3/main.py:645 + msgid "FMV KB611-F key extension" + msgstr "Extension de touches FMV KB611-F" + +-#: ../setup/python2/main.py:780 ../setup/python3/main.py:785 ++#: ../setup/python2/main.py:784 ../setup/python3/main.py:789 + msgid "Your choosed file has already been added: " + msgstr "Le fichier que vous avez sélectionné a déjà été ajouté : " + +-#: ../setup/python2/main.py:784 ../setup/python3/main.py:789 ++#: ../setup/python2/main.py:788 ../setup/python3/main.py:793 + msgid "The file you have chosen does not exist: " + msgstr "Le fichier que vous avez sélectionné n’existe pas : " + +-#: ../setup/python2/main.py:788 ../setup/python3/main.py:793 ++#: ../setup/python2/main.py:792 ../setup/python3/main.py:797 + msgid "Your choosed file is a directory: " + msgstr "Le fichier que vous avez sélectionné est un dossier : " + +-#: ../setup/python2/main.py:792 ../setup/python3/main.py:797 ++#: ../setup/python2/main.py:796 ../setup/python3/main.py:801 + msgid "You cannot add dictionaries in the anthy private directory: " + msgstr "" + "Vous ne pouvez pas ajouter de dictionnaire dans le dossier privé d’Anthy : " + +-#: ../setup/python2/main.py:799 ../setup/python3/main.py:804 ++#: ../setup/python2/main.py:803 ../setup/python3/main.py:808 + msgid "Your file path is not good: " + msgstr "Le chemin du fichier sélectionné est incorrect : " + +-#: ../setup/python2/main.py:978 ../setup/python3/main.py:981 ++#: ../setup/python2/main.py:982 ../setup/python3/main.py:985 + msgid "The engine xml file does not exist: " + msgstr "Le fichier xml du moteur n’existe pas : " + +-#: ../setup/python2/main.py:1094 ../setup/python3/main.py:1088 ++#: ../setup/python2/main.py:1098 ../setup/python3/main.py:1092 + msgid "" + "Anthy keyboard layout is changed. Please restart ibus to reload the layout." + msgstr "" + "La disposition clavier Anthy a changée. Veuillez redémarrer ibus pour " + "charger la nouvelle disposition." + +-#: ../setup/python2/main.py:1157 ../setup/python3/main.py:1151 ++#: ../setup/python2/main.py:1161 ../setup/python3/main.py:1155 + msgid "Confirmation" + msgstr "Confirmer" + +-#: ../setup/python2/main.py:1159 ../setup/python3/main.py:1153 ++#: ../setup/python2/main.py:1163 ../setup/python3/main.py:1157 + msgid "You are about to close the setup dialog, is that OK?" + msgstr "Êtes-vous sûr de bien vouloir fermer la fenêtre de configuration ?" + +-#: ../setup/python2/main.py:1174 ../setup/python3/main.py:1168 ++#: ../setup/python2/main.py:1178 ../setup/python3/main.py:1172 + msgid "Notice!" + msgstr "Attention !" + +-#: ../setup/python2/main.py:1176 ../setup/python3/main.py:1170 ++#: ../setup/python2/main.py:1180 ../setup/python3/main.py:1174 + msgid "" + "You are about to close the setup dialog without saving your changes, is that " + "OK?" +@@ -428,89 +428,89 @@ msgstr "" + "Êtes-vous sûr de vouloir fermer la fenêtre de configuration sans sauver les " + "modifications ?" + +-#: ../setup/python2/main.py:1297 ../setup/python3/main.py:1291 ++#: ../setup/python2/main.py:1301 ../setup/python3/main.py:1295 + msgid "Please specify Input Chars" + msgstr "Veuillez spécifier les caractères d’entrée" + +-#: ../setup/python2/main.py:1300 ../setup/python3/main.py:1294 ++#: ../setup/python2/main.py:1304 ../setup/python3/main.py:1298 + msgid "Please specify Output Chars" + msgstr "Veuillez spécifier les caractères de sortie" + +-#: ../setup/python2/main.py:1303 ../setup/python3/main.py:1297 ++#: ../setup/python2/main.py:1307 ../setup/python3/main.py:1301 + msgid "Please specify Left Thumb Shift Chars" + msgstr "Veuillez spécifier les caractères Thumb Shift Gauche" + +-#: ../setup/python2/main.py:1306 ../setup/python3/main.py:1300 ++#: ../setup/python2/main.py:1310 ../setup/python3/main.py:1304 + msgid "Please specify Right Thumb Shift Chars" + msgstr "Veuillez spécifier les caractères Thumb Shift Droit" + +-#: ../setup/python2/main.py:1319 ../setup/python2/main.py:1363 +-#: ../setup/python3/main.py:1313 ../setup/python3/main.py:1357 ++#: ../setup/python2/main.py:1323 ../setup/python2/main.py:1367 ++#: ../setup/python3/main.py:1317 ../setup/python3/main.py:1361 + msgid "Your custom key is not assigned in any sections. Maybe a bug." + msgstr "" + "Votre touche personnalisée n’est assignée à aucune section. Cela est sans " + "doute un bogue." + +-#: ../setup/python2/main.py:1429 ../setup/python2/main.py:1516 +-#: ../setup/python3/main.py:1423 ../setup/python3/main.py:1510 ++#: ../setup/python2/main.py:1433 ../setup/python2/main.py:1520 ++#: ../setup/python3/main.py:1427 ../setup/python3/main.py:1514 + msgid "Your file does not exist: " + msgstr "Le fichier que vous avez sélectionné n’existe pas : " + +-#: ../setup/python2/main.py:1439 ../setup/python3/main.py:1433 ++#: ../setup/python2/main.py:1443 ../setup/python3/main.py:1437 + msgid "Open Dictionary File" + msgstr "Ouvrir un fichier de dictionnaire" + +-#: ../setup/python2/main.py:1442 ../setup/python2/main.py:1448 +-#: ../setup/python2/setup.ui.h:89 ../setup/python3/main.py:1436 +-#: ../setup/python3/main.py:1442 ../setup/python3/setup.ui.h:89 ++#: ../setup/python2/main.py:1446 ../setup/python2/main.py:1452 ++#: ../setup/python2/setup.ui.h:90 ../setup/python3/main.py:1440 ++#: ../setup/python3/main.py:1446 ../setup/python3/setup.ui.h:90 + msgid "_Cancel" + msgstr "A_nnuler" + +-#: ../setup/python2/main.py:1443 ../setup/python3/main.py:1437 ++#: ../setup/python2/main.py:1447 ../setup/python3/main.py:1441 + msgid "_Open" + msgstr "_Ouvrir" + +-#: ../setup/python2/main.py:1446 ../setup/python3/main.py:1440 ++#: ../setup/python2/main.py:1450 ../setup/python3/main.py:1444 + msgid "Edit Dictionary File" + msgstr "Modifier le fichier de dictionnaire" + +-#: ../setup/python2/main.py:1449 ../setup/python2/main.py:1544 +-#: ../setup/python2/setup.ui.h:90 ../setup/python3/main.py:1443 +-#: ../setup/python3/main.py:1538 ../setup/python3/setup.ui.h:90 ++#: ../setup/python2/main.py:1453 ../setup/python2/main.py:1548 ++#: ../setup/python2/setup.ui.h:91 ../setup/python3/main.py:1447 ++#: ../setup/python3/main.py:1542 ../setup/python3/setup.ui.h:91 + msgid "_OK" + msgstr "_Valider" + +-#: ../setup/python2/main.py:1460 ../setup/python3/main.py:1454 ++#: ../setup/python2/main.py:1464 ../setup/python3/main.py:1458 + msgid "Your choosed file is not correct." + msgstr "Le fichier que vous avez sélectionné est incorrect." + +-#: ../setup/python2/main.py:1489 ../setup/python3/main.py:1483 ++#: ../setup/python2/main.py:1493 ../setup/python3/main.py:1487 + msgid "You cannot delete the system dictionary." + msgstr "Vous ne pouvez pas supprimer le dictionnaire système." + +-#: ../setup/python2/main.py:1512 ../setup/python3/main.py:1506 ++#: ../setup/python2/main.py:1516 ../setup/python3/main.py:1510 + msgid "Your file is not good." + msgstr "Le fichier que vous avez sélectionné n’est pas bon." + +-#: ../setup/python2/main.py:1542 ../setup/python3/main.py:1536 ++#: ../setup/python2/main.py:1546 ../setup/python3/main.py:1540 + msgid "View Dictionary File" + msgstr "Voir le fichier de dictionnaire" + +-#: ../setup/python2/main.py:1694 ../setup/python3/main.py:1688 ++#: ../setup/python2/main.py:1698 ../setup/python3/main.py:1692 + msgid "Please press a key (or a key combination)" + msgstr "Veuillez appuyer sur une touche (ou une combinaison de touches)" + +-#: ../setup/python2/main.py:1695 ../setup/python3/main.py:1689 ++#: ../setup/python2/main.py:1699 ../setup/python3/main.py:1693 + msgid "The dialog will be closed when the key is released" + msgstr "La fenêtre se fermera lorsque la touche sera relâchée" + +-#: ../setup/python2/main.py:1715 ../setup/python2/main.py:1736 +-#: ../setup/python3/main.py:1709 ../setup/python3/main.py:1730 ++#: ../setup/python2/main.py:1719 ../setup/python2/main.py:1740 ++#: ../setup/python3/main.py:1713 ../setup/python3/main.py:1734 + msgid "Invalid keysym" + msgstr "« keysym » invalide" + +-#: ../setup/python2/main.py:1716 ../setup/python2/main.py:1737 +-#: ../setup/python3/main.py:1710 ../setup/python3/main.py:1731 ++#: ../setup/python2/main.py:1720 ../setup/python2/main.py:1741 ++#: ../setup/python3/main.py:1714 ../setup/python3/main.py:1735 + msgid "This keysym is not valid" + msgstr "Ce « keysym » n’est pas valide" + +@@ -595,50 +595,55 @@ msgid "Initial Setting" + msgstr "Configuration initiale" + + #: ../setup/python2/setup.ui.h:34 ../setup/python3/setup.ui.h:34 ++#, fuzzy ++msgid "_Show input mode icon" ++msgstr "Changer de mode de saisie" ++ ++#: ../setup/python2/setup.ui.h:35 ../setup/python3/setup.ui.h:35 + msgid "Menu Visibility on Status Icon" + msgstr "Visibilité du menu sur l’icône de statut" + +-#: ../setup/python2/setup.ui.h:36 ../setup/python3/setup.ui.h:36 ++#: ../setup/python2/setup.ui.h:37 ../setup/python3/setup.ui.h:37 + msgid "_Period Style:" + msgstr "Style de _Ponctuation :" + +-#: ../setup/python2/setup.ui.h:37 ../setup/python3/setup.ui.h:37 ++#: ../setup/python2/setup.ui.h:38 ../setup/python3/setup.ui.h:38 + msgid "Symbo_l Style:" + msgstr "Style de _Symboles :" + +-#: ../setup/python2/setup.ui.h:38 ../setup/python3/setup.ui.h:38 ++#: ../setup/python2/setup.ui.h:39 ../setup/python3/setup.ui.h:39 + msgid "Numpad _Key Type:" + msgstr "Touches du pa_vé numérique :" + +-#: ../setup/python2/setup.ui.h:39 ../setup/python3/setup.ui.h:39 ++#: ../setup/python2/setup.ui.h:40 ../setup/python3/setup.ui.h:40 + msgid "_Behavior on Period:" + msgstr "Comportement _lors de la ponctuation :" + +-#: ../setup/python2/setup.ui.h:40 ../setup/python3/setup.ui.h:40 ++#: ../setup/python2/setup.ui.h:41 ../setup/python3/setup.ui.h:41 + msgid "Behavior on _Focus Out:" + msgstr "Comportement à la perte du _focus :" + +-#: ../setup/python2/setup.ui.h:41 ../setup/python3/setup.ui.h:41 ++#: ../setup/python2/setup.ui.h:42 ../setup/python3/setup.ui.h:42 + msgid "Behavior" + msgstr "Comportement" + +-#: ../setup/python2/setup.ui.h:42 ../setup/python3/setup.ui.h:42 ++#: ../setup/python2/setup.ui.h:43 ../setup/python3/setup.ui.h:43 + msgid "Candidate _Window Page Size:" + msgstr "_Taille de la fenêtre de la liste des candidats :" + +-#: ../setup/python2/setup.ui.h:43 ../setup/python3/setup.ui.h:43 ++#: ../setup/python2/setup.ui.h:44 ../setup/python3/setup.ui.h:44 + msgid "Convert _symbols with the one column width" + msgstr "Convertir les s_ymboles en symboles d’une seule colonne de largeur" + +-#: ../setup/python2/setup.ui.h:44 ../setup/python3/setup.ui.h:44 ++#: ../setup/python2/setup.ui.h:45 ../setup/python3/setup.ui.h:45 + msgid "Convert _numbers with the one column width" + msgstr "Convertir les ch_iffres en chiffres d’une seule colonne de largeur" + +-#: ../setup/python2/setup.ui.h:45 ../setup/python3/setup.ui.h:45 ++#: ../setup/python2/setup.ui.h:46 ../setup/python3/setup.ui.h:46 + msgid "Con_vert spaces with the one column width" + msgstr "Convertir les _espaces en espaces d’une seule colonne de largeur" + +-#: ../setup/python2/setup.ui.h:46 ../setup/python3/setup.ui.h:46 ++#: ../setup/python2/setup.ui.h:47 ../setup/python3/setup.ui.h:47 + msgid "" + "Swi_tch “Hiragana” and “Latin” with Shift key and Hiragana–Katakana key in " + "preedit" +@@ -646,83 +651,83 @@ msgstr "" + "Permuter entre les modes « Hiragana » et « Latin » avec la touche Maj et la " + "touche Hiragana-Katakana en pré-édition" + +-#: ../setup/python2/setup.ui.h:47 ../setup/python3/setup.ui.h:47 ++#: ../setup/python2/setup.ui.h:48 ../setup/python3/setup.ui.h:48 + msgid "Other" + msgstr "Autres options" + +-#: ../setup/python2/setup.ui.h:48 ../setup/python3/setup.ui.h:48 ++#: ../setup/python2/setup.ui.h:49 ../setup/python3/setup.ui.h:49 + msgid "Conversion" + msgstr "Mode de conversion " + +-#: ../setup/python2/setup.ui.h:49 ../setup/python3/setup.ui.h:49 ++#: ../setup/python2/setup.ui.h:50 ../setup/python3/setup.ui.h:50 + msgid "_Shortcut Type:" + msgstr "Raccourcis _claviers :" + +-#: ../setup/python2/setup.ui.h:50 ../setup/python3/setup.ui.h:50 ++#: ../setup/python2/setup.ui.h:51 ../setup/python3/setup.ui.h:51 + msgid "De_fault" + msgstr "Par dé_faut" + +-#: ../setup/python2/setup.ui.h:51 ../setup/python3/setup.ui.h:51 ++#: ../setup/python2/setup.ui.h:52 ../setup/python3/setup.ui.h:52 + msgid "_Edit" + msgstr "_Modifier" + +-#: ../setup/python2/setup.ui.h:52 ../setup/python3/setup.ui.h:52 ++#: ../setup/python2/setup.ui.h:53 ../setup/python3/setup.ui.h:53 + msgid "Key Binding" + msgstr "Raccourcis claviers" + +-#: ../setup/python2/setup.ui.h:54 ../setup/python3/setup.ui.h:54 ++#: ../setup/python2/setup.ui.h:55 ../setup/python3/setup.ui.h:55 + msgid "Romaji" + msgstr "Romaji" + +-#: ../setup/python2/setup.ui.h:56 ../setup/python3/setup.ui.h:56 ++#: ../setup/python2/setup.ui.h:57 ../setup/python3/setup.ui.h:57 + msgid "Kana" + msgstr "Kana" + +-#: ../setup/python2/setup.ui.h:57 ../setup/python3/setup.ui.h:57 ++#: ../setup/python2/setup.ui.h:58 ../setup/python3/setup.ui.h:58 + msgid "Keyboad _layout:" + msgstr "Disposition c_lavier :" + +-#: ../setup/python2/setup.ui.h:58 ../setup/python3/setup.ui.h:58 ++#: ../setup/python2/setup.ui.h:59 ../setup/python3/setup.ui.h:59 + msgid "Keyboard layout" + msgstr "Disposition clavier" + +-#: ../setup/python2/setup.ui.h:59 ../setup/python3/setup.ui.h:59 ++#: ../setup/python2/setup.ui.h:60 ../setup/python3/setup.ui.h:60 + msgid "Typing Method" + msgstr "Méthode de saisie" + +-#: ../setup/python2/setup.ui.h:60 ../setup/python3/setup.ui.h:60 ++#: ../setup/python2/setup.ui.h:61 ../setup/python3/setup.ui.h:61 + msgid "_Left Thumb Shift Key:" + msgstr "Touche Thumb Shift _Gauche :" + +-#: ../setup/python2/setup.ui.h:61 ../setup/python3/setup.ui.h:61 ++#: ../setup/python2/setup.ui.h:62 ../setup/python3/setup.ui.h:62 + msgid "Right _Thumb Shift Key:" + msgstr "Touche Thumb Shift _Droite :" + +-#: ../setup/python2/setup.ui.h:62 ../setup/python3/setup.ui.h:62 ++#: ../setup/python2/setup.ui.h:63 ../setup/python3/setup.ui.h:63 + msgid "Adjust _input method layout to system keyboard layout" + msgstr "Utiliser la disposition clavier système pour la méthode d’entrée" + +-#: ../setup/python2/setup.ui.h:63 ../setup/python3/setup.ui.h:63 ++#: ../setup/python2/setup.ui.h:64 ../setup/python3/setup.ui.h:64 + msgid "Adjust IM layout to XKB layout" + msgstr "Utilise la disposition clavier utilisée par XKB pour l’IME" + +-#: ../setup/python2/setup.ui.h:64 ../setup/python3/setup.ui.h:64 ++#: ../setup/python2/setup.ui.h:65 ../setup/python3/setup.ui.h:65 + msgid "Input _Method Layout:" + msgstr "Disposition de la _Méthode de saisie :" + +-#: ../setup/python2/setup.ui.h:65 ../setup/python3/setup.ui.h:65 ++#: ../setup/python2/setup.ui.h:66 ../setup/python3/setup.ui.h:66 + msgid "Restart IBus when you change the keyboard layout" + msgstr "Redémarrez IBus lorsque vous changer la disposition clavier système." + +-#: ../setup/python2/setup.ui.h:66 ../setup/python3/setup.ui.h:66 ++#: ../setup/python2/setup.ui.h:67 ../setup/python3/setup.ui.h:67 + msgid "Restart IBus when you change XKB" + msgstr "Redémarrez IBus lorsque vous changer la configuration XKB" + +-#: ../setup/python2/setup.ui.h:67 ../setup/python3/setup.ui.h:67 ++#: ../setup/python2/setup.ui.h:68 ../setup/python3/setup.ui.h:68 + msgid "_Additional Key Arrangement:" + msgstr "_Arrangements des Touches Additionnelles :" + +-#: ../setup/python2/setup.ui.h:68 ../setup/python3/setup.ui.h:68 ++#: ../setup/python2/setup.ui.h:69 ../setup/python3/setup.ui.h:69 + msgid "" + "'~', '『', '¢', '£' and so on can be output with " + "Thumb Shift key" +@@ -730,7 +735,7 @@ msgstr "" + "'~', '『', '¢', '£', etc. peuvent être tapés avec la " + "méthode Thumb Shift" + +-#: ../setup/python2/setup.ui.h:69 ../setup/python3/setup.ui.h:69 ++#: ../setup/python2/setup.ui.h:70 ../setup/python3/setup.ui.h:70 + msgid "" + "You do not have to reconfigure the system keyboard layout for \"Additional " + "Key Arrangement\" since this option changes input method layout only in case " +@@ -741,7 +746,7 @@ msgstr "" + "option ne change la disposition de la méthode de saisie que lorsque la " + "méthode de saisie est activée." + +-#: ../setup/python2/setup.ui.h:70 ../setup/python3/setup.ui.h:70 ++#: ../setup/python2/setup.ui.h:71 ../setup/python3/setup.ui.h:71 + msgid "" + "You do not have to reconfigure XKB since this option changes IM layout only " + "with IM on." +@@ -749,155 +754,155 @@ msgstr "" + "Vous n’avez pas besoin de reconfigurer XKB, puisque cette option ne change " + "que la disposition de l’IME lorsque l’IME est activé." + +-#: ../setup/python2/setup.ui.h:71 ../setup/python3/setup.ui.h:71 ++#: ../setup/python2/setup.ui.h:72 ../setup/python3/setup.ui.h:72 + msgid "_Enable semi-voiced sound mark with Shift key" + msgstr "Activer les « semi-_voiced sound mark » avec la touche Majuscule" + +-#: ../setup/python2/setup.ui.h:72 ../setup/python3/setup.ui.h:72 ++#: ../setup/python2/setup.ui.h:73 ../setup/python3/setup.ui.h:73 + msgid "Seion + Shift can output Handakuon" + msgstr "Seion + Majuscule peut imprimer Handakuon" + +-#: ../setup/python2/setup.ui.h:73 ../setup/python3/setup.ui.h:73 ++#: ../setup/python2/setup.ui.h:74 ../setup/python3/setup.ui.h:74 + msgid "Thumb _Shift Key Table:" + msgstr "Table des touches Thumb _Shift :" + +-#: ../setup/python2/setup.ui.h:74 ../setup/python3/setup.ui.h:74 ++#: ../setup/python2/setup.ui.h:75 ../setup/python3/setup.ui.h:75 + msgid "Thumb Shift Layout" + msgstr "Disposition Thumb Shift" + +-#: ../setup/python2/setup.ui.h:75 ../setup/python3/setup.ui.h:75 ++#: ../setup/python2/setup.ui.h:76 ../setup/python3/setup.ui.h:76 + msgid "Thumb Shift" + msgstr "Thumb Shift" + +-#: ../setup/python2/setup.ui.h:76 ../setup/python3/setup.ui.h:76 ++#: ../setup/python2/setup.ui.h:77 ../setup/python3/setup.ui.h:77 + msgid "_Edit Dictionary Command:" + msgstr "Commande permettant l’éd_ition du Dictionnaire :" + +-#: ../setup/python2/setup.ui.h:77 ../setup/python3/setup.ui.h:77 ++#: ../setup/python2/setup.ui.h:78 ../setup/python3/setup.ui.h:78 + msgid "_Add Word Command:" + msgstr "Commande permettant l’a_jout d’un mot :" + +-#: ../setup/python2/setup.ui.h:78 ../setup/python3/setup.ui.h:78 ++#: ../setup/python2/setup.ui.h:79 ../setup/python3/setup.ui.h:79 + msgid "Default Dictionary Configuration" + msgstr "Configuration du Dictionnaire par Défaut" + +-#: ../setup/python2/setup.ui.h:79 ../setup/python3/setup.ui.h:79 ++#: ../setup/python2/setup.ui.h:80 ../setup/python3/setup.ui.h:80 + msgid "_View" + msgstr "_Voir" + +-#: ../setup/python2/setup.ui.h:80 ../setup/python3/setup.ui.h:80 ++#: ../setup/python2/setup.ui.h:81 ../setup/python3/setup.ui.h:81 + msgid "_Add" + msgstr "A_jouter" + +-#: ../setup/python2/setup.ui.h:81 ../setup/python3/setup.ui.h:81 ++#: ../setup/python2/setup.ui.h:82 ../setup/python3/setup.ui.h:82 + msgid "_Delete" + msgstr "_Supprimer" + +-#: ../setup/python2/setup.ui.h:82 ../setup/python3/setup.ui.h:82 ++#: ../setup/python2/setup.ui.h:83 ../setup/python3/setup.ui.h:83 + msgid "_Up" + msgstr "_Monter" + +-#: ../setup/python2/setup.ui.h:83 ../setup/python3/setup.ui.h:83 ++#: ../setup/python2/setup.ui.h:84 ../setup/python3/setup.ui.h:84 + msgid "You can change the order on language bar" + msgstr "Vous pouvez changer l’ordre dans la barre de langue" + +-#: ../setup/python2/setup.ui.h:84 ../setup/python3/setup.ui.h:84 ++#: ../setup/python2/setup.ui.h:85 ../setup/python3/setup.ui.h:85 + msgid "_Down" + msgstr "_Descendre" + +-#: ../setup/python2/setup.ui.h:85 ../setup/python3/setup.ui.h:85 ++#: ../setup/python2/setup.ui.h:86 ../setup/python3/setup.ui.h:86 + msgid "Extended Dictionaries" + msgstr "Dictionnaires supplémentaires" + +-#: ../setup/python2/setup.ui.h:86 ../setup/python3/setup.ui.h:86 ++#: ../setup/python2/setup.ui.h:87 ../setup/python3/setup.ui.h:87 + msgid "Dictionary" + msgstr "Dictionnaire" + +-#: ../setup/python2/setup.ui.h:87 ../setup/python3/setup.ui.h:87 ++#: ../setup/python2/setup.ui.h:88 ../setup/python3/setup.ui.h:88 + msgid "About" + msgstr "À propos" + +-#: ../setup/python2/setup.ui.h:88 ../setup/python3/setup.ui.h:88 ++#: ../setup/python2/setup.ui.h:89 ../setup/python3/setup.ui.h:89 + msgid "_Apply" + msgstr "A_ppliquer" + +-#: ../setup/python2/setup.ui.h:91 ../setup/python3/setup.ui.h:91 ++#: ../setup/python2/setup.ui.h:92 ../setup/python3/setup.ui.h:92 + msgid "Edit Shortcut" + msgstr "Éditer le raccourci" + +-#: ../setup/python2/setup.ui.h:92 ../setup/python3/setup.ui.h:92 ++#: ../setup/python2/setup.ui.h:93 ../setup/python3/setup.ui.h:93 + msgid "Key Code:" + msgstr "Touche :" + +-#: ../setup/python2/setup.ui.h:93 ../setup/python3/setup.ui.h:93 ++#: ../setup/python2/setup.ui.h:94 ../setup/python3/setup.ui.h:94 + msgid "Modifier:" + msgstr "Modificateur :" + +-#: ../setup/python2/setup.ui.h:94 ../setup/python3/setup.ui.h:94 ++#: ../setup/python2/setup.ui.h:95 ../setup/python3/setup.ui.h:95 + msgid "A_lternate" + msgstr "A_lternatif" + +-#: ../setup/python2/setup.ui.h:95 ../setup/python3/setup.ui.h:95 ++#: ../setup/python2/setup.ui.h:96 ../setup/python3/setup.ui.h:96 + msgid "Co_ntrol" + msgstr "Co_ntrol" + +-#: ../setup/python2/setup.ui.h:96 ../setup/python3/setup.ui.h:96 ++#: ../setup/python2/setup.ui.h:97 ../setup/python3/setup.ui.h:97 + msgid "_Shift" + msgstr "_Majuscule" + +-#: ../setup/python2/setup.ui.h:97 ../setup/python3/setup.ui.h:97 ++#: ../setup/python2/setup.ui.h:98 ../setup/python3/setup.ui.h:98 + msgid "_Refresh" + msgstr "A_ctualiser" + +-#: ../setup/python2/setup.ui.h:98 ../setup/python3/setup.ui.h:98 ++#: ../setup/python2/setup.ui.h:99 ../setup/python3/setup.ui.h:99 + msgid "_Input Characters" + msgstr "Caractère(s) d’_entrée" + +-#: ../setup/python2/setup.ui.h:99 ../setup/python3/setup.ui.h:99 ++#: ../setup/python2/setup.ui.h:100 ../setup/python3/setup.ui.h:100 + msgid "_Output Characters" + msgstr "Caractères de s_ortie" + +-#: ../setup/python2/setup.ui.h:100 ../setup/python3/setup.ui.h:100 ++#: ../setup/python2/setup.ui.h:101 ../setup/python3/setup.ui.h:101 + msgid "_Left Thumb Shift" + msgstr "Thumb Shift _Gauche" + +-#: ../setup/python2/setup.ui.h:101 ../setup/python3/setup.ui.h:101 ++#: ../setup/python2/setup.ui.h:102 ../setup/python3/setup.ui.h:102 + msgid "_Right Thumb Shift" + msgstr "Thumb Shift D_roit" + +-#: ../setup/python2/setup.ui.h:102 ../setup/python3/setup.ui.h:102 ++#: ../setup/python2/setup.ui.h:103 ../setup/python3/setup.ui.h:103 + msgid "_Remove" + msgstr "_Enlever" + +-#: ../setup/python2/setup.ui.h:103 ../setup/python3/setup.ui.h:103 ++#: ../setup/python2/setup.ui.h:104 ../setup/python3/setup.ui.h:104 + msgid "_Close" + msgstr "_Fermer" + +-#: ../setup/python2/setup.ui.h:104 ../setup/python3/setup.ui.h:104 ++#: ../setup/python2/setup.ui.h:105 ../setup/python3/setup.ui.h:105 + msgid "_Short Label:" + msgstr "_Label court :" + +-#: ../setup/python2/setup.ui.h:105 ../setup/python3/setup.ui.h:105 ++#: ../setup/python2/setup.ui.h:106 ../setup/python3/setup.ui.h:106 + msgid "_Description:" + msgstr "_Description :" + +-#: ../setup/python2/setup.ui.h:106 ../setup/python3/setup.ui.h:106 ++#: ../setup/python2/setup.ui.h:107 ../setup/python3/setup.ui.h:107 + msgid "_Use your dictionary alone with switching dictionaries" + msgstr "" + "_Utiliser votre dictionnaire tout seul lors du basculement des dictionnaires" + +-#: ../setup/python2/setup.ui.h:107 ../setup/python3/setup.ui.h:107 ++#: ../setup/python2/setup.ui.h:108 ../setup/python3/setup.ui.h:108 + msgid "_Embed your dictionary in the system dictionary" + msgstr "Inclur_e votre dictionnaire dans le dictionnaire système" + +-#: ../setup/python2/setup.ui.h:108 ../setup/python3/setup.ui.h:108 ++#: ../setup/python2/setup.ui.h:109 ../setup/python3/setup.ui.h:109 + msgid "Enable the _reverse conversion" + msgstr "Activer la conversion inversée" + +-#: ../setup/python2/setup.ui.h:109 ../setup/python3/setup.ui.h:109 ++#: ../setup/python2/setup.ui.h:110 ../setup/python3/setup.ui.h:110 + msgid "The Anthy engine for the IBus input platform" + msgstr "Le moteur Anthy pour la plateforme de saisie IBus" + +-#: ../setup/python2/setup.ui.h:110 ../setup/python3/setup.ui.h:110 ++#: ../setup/python2/setup.ui.h:111 ../setup/python3/setup.ui.h:111 + msgid "translator_credits" + msgstr "Julien Humbert " +diff --git a/po/ja.po b/po/ja.po +index 408955d..9167d20 100644 +--- a/po/ja.po ++++ b/po/ja.po +@@ -9,7 +9,7 @@ msgid "" + msgstr "" + "Project-Id-Version: IBus-Anthy\n" + "Report-Msgid-Bugs-To: http://code.google.com/p/ibus/issues/entry\n" +-"POT-Creation-Date: 2014-08-21 18:57+0900\n" ++"POT-Creation-Date: 2014-08-21 19:25+0900\n" + "PO-Revision-Date: 2014-02-18 08:42+0000\n" + "Last-Translator: UTUMI Hirosi \n" + "Language-Team: Japanese \n" +@@ -19,7 +19,7 @@ msgstr "" + "Language: ja\n" + "Plural-Forms: nplurals=1; plural=0;\n" + +-#: ../engine/python2/engine.py:193 ../engine/python3/engine.py:194 ++#: ../engine/python2/engine.py:197 ../engine/python3/engine.py:198 + msgid "" + "Could not enable Anthy.\n" + "The end of the content of the file .anthy/last-record2_default.utf8 in your " +@@ -27,188 +27,188 @@ msgid "" + "Please fix the file or remove it by manual and restart IBus." + msgstr "Anthy を有効にできませんでした。\nホームディレクトリにある .anthy/last-record2_default.utf8 の中身の最後が '\\n' でありません。つまり正しくないテキストフォーマットです。\n手動でファイルを修正するか削除して IBus をリスタートしてください。" + +-#: ../engine/python2/engine.py:241 ../engine/python3/engine.py:242 +-#: ../setup/python2/main.py:408 ../setup/python3/main.py:413 ++#: ../engine/python2/engine.py:245 ../engine/python3/engine.py:246 ++#: ../setup/python2/main.py:412 ../setup/python3/main.py:417 + msgid "Preferences - Anthy" + msgstr "設定 - Anthy" + +-#: ../engine/python2/engine.py:243 ../engine/python3/engine.py:244 ++#: ../engine/python2/engine.py:247 ../engine/python3/engine.py:248 + msgid "Configure Anthy" + msgstr "Anthy を構成します" + + #. Translators: Specify the order of %s with your translation. + #. It will be "Input Mode (A)" for example. +-#: ../engine/python2/engine.py:280 ../engine/python2/engine.py:368 +-#: ../engine/python2/engine.py:435 ../engine/python2/engine.py:511 +-#: ../engine/python2/engine.py:842 ../engine/python2/engine.py:870 +-#: ../engine/python2/engine.py:894 ../engine/python2/engine.py:920 +-#: ../engine/python2/engine.py:982 ../engine/python3/engine.py:281 +-#: ../engine/python3/engine.py:369 ../engine/python3/engine.py:436 +-#: ../engine/python3/engine.py:512 ../engine/python3/engine.py:837 +-#: ../engine/python3/engine.py:865 ../engine/python3/engine.py:889 +-#: ../engine/python3/engine.py:915 ../engine/python3/engine.py:977 ++#: ../engine/python2/engine.py:351 ../engine/python2/engine.py:439 ++#: ../engine/python2/engine.py:506 ../engine/python2/engine.py:582 ++#: ../engine/python2/engine.py:913 ../engine/python2/engine.py:944 ++#: ../engine/python2/engine.py:968 ../engine/python2/engine.py:994 ++#: ../engine/python2/engine.py:1056 ../engine/python3/engine.py:352 ++#: ../engine/python3/engine.py:440 ../engine/python3/engine.py:507 ++#: ../engine/python3/engine.py:583 ../engine/python3/engine.py:908 ++#: ../engine/python3/engine.py:939 ../engine/python3/engine.py:963 ++#: ../engine/python3/engine.py:989 ../engine/python3/engine.py:1051 + #, python-format + msgid "%(description)s (%(symbol)s)" + msgstr "%(description)s (%(symbol)s)" + +-#: ../engine/python2/engine.py:281 ../engine/python2/engine.py:843 +-#: ../engine/python3/engine.py:282 ../engine/python3/engine.py:838 +-#: ../setup/python2/main.py:393 ../setup/python3/main.py:398 ++#: ../engine/python2/engine.py:352 ../engine/python2/engine.py:914 ++#: ../engine/python3/engine.py:353 ../engine/python3/engine.py:909 ++#: ../setup/python2/main.py:397 ../setup/python3/main.py:402 + msgid "Input mode" + msgstr "入力モード" + +-#: ../engine/python2/engine.py:287 ../engine/python3/engine.py:288 ++#: ../engine/python2/engine.py:358 ../engine/python3/engine.py:359 + msgid "Switch input mode" + msgstr "入力モードを切り替えます" + +-#: ../engine/python2/engine.py:297 ../engine/python3/engine.py:298 ++#: ../engine/python2/engine.py:368 ../engine/python3/engine.py:369 + #: ../setup/python2/setup.ui.h:1 ../setup/python3/setup.ui.h:1 + msgid "Hiragana" + msgstr "ひらがな" + +-#: ../engine/python2/engine.py:306 ../engine/python3/engine.py:307 ++#: ../engine/python2/engine.py:377 ../engine/python3/engine.py:378 + #: ../setup/python2/setup.ui.h:2 ../setup/python3/setup.ui.h:2 + msgid "Katakana" + msgstr "カタカナ" + +-#: ../engine/python2/engine.py:315 ../engine/python3/engine.py:316 ++#: ../engine/python2/engine.py:386 ../engine/python3/engine.py:387 + #: ../setup/python2/setup.ui.h:3 ../setup/python3/setup.ui.h:3 + msgid "Halfwidth Katakana" + msgstr "半角カタカナ" + +-#: ../engine/python2/engine.py:324 ../engine/python3/engine.py:325 ++#: ../engine/python2/engine.py:395 ../engine/python3/engine.py:396 + #: ../setup/python2/setup.ui.h:4 ../setup/python3/setup.ui.h:4 + msgid "Latin" + msgstr "英数" + +-#: ../engine/python2/engine.py:333 ../engine/python3/engine.py:334 ++#: ../engine/python2/engine.py:404 ../engine/python3/engine.py:405 + #: ../setup/python2/setup.ui.h:5 ../setup/python3/setup.ui.h:5 + msgid "Wide Latin" + msgstr "全角英数" + +-#: ../engine/python2/engine.py:369 ../engine/python2/engine.py:871 +-#: ../engine/python2/engine.py:895 ../engine/python3/engine.py:370 +-#: ../engine/python3/engine.py:866 ../engine/python3/engine.py:890 +-#: ../setup/python2/main.py:396 ../setup/python3/main.py:401 ++#: ../engine/python2/engine.py:440 ../engine/python2/engine.py:945 ++#: ../engine/python2/engine.py:969 ../engine/python3/engine.py:441 ++#: ../engine/python3/engine.py:940 ../engine/python3/engine.py:964 ++#: ../setup/python2/main.py:400 ../setup/python3/main.py:405 + msgid "Typing method" + msgstr "入力タイプ" + +-#: ../engine/python2/engine.py:375 ../engine/python3/engine.py:376 ++#: ../engine/python2/engine.py:446 ../engine/python3/engine.py:447 + msgid "Switch typing method" + msgstr "入力タイプを切り替えます" + +-#: ../engine/python2/engine.py:385 ../engine/python3/engine.py:386 ++#: ../engine/python2/engine.py:456 ../engine/python3/engine.py:457 + #: ../setup/python2/setup.ui.h:12 ../setup/python3/setup.ui.h:12 + msgid "Romaji" + msgstr "ローマ字" + +-#: ../engine/python2/engine.py:394 ../engine/python3/engine.py:395 ++#: ../engine/python2/engine.py:465 ../engine/python3/engine.py:466 + #: ../setup/python2/setup.ui.h:13 ../setup/python3/setup.ui.h:13 + msgid "Kana" + msgstr "かな" + +-#: ../engine/python2/engine.py:403 ../engine/python3/engine.py:404 ++#: ../engine/python2/engine.py:474 ../engine/python3/engine.py:475 + #: ../setup/python2/setup.ui.h:14 ../setup/python3/setup.ui.h:14 + msgid "Thumb shift" + msgstr "親指シフト" + +-#: ../engine/python2/engine.py:436 ../engine/python2/engine.py:921 +-#: ../engine/python3/engine.py:437 ../engine/python3/engine.py:916 +-#: ../setup/python2/main.py:399 ../setup/python3/main.py:404 ++#: ../engine/python2/engine.py:507 ../engine/python2/engine.py:995 ++#: ../engine/python3/engine.py:508 ../engine/python3/engine.py:990 ++#: ../setup/python2/main.py:403 ../setup/python3/main.py:408 + msgid "Segment mode" + msgstr "文節モード" + +-#: ../engine/python2/engine.py:442 ../engine/python3/engine.py:443 ++#: ../engine/python2/engine.py:513 ../engine/python3/engine.py:514 + msgid "Switch conversion mode" + msgstr "変換モードを切り替えます" + +-#: ../engine/python2/engine.py:452 ../engine/python3/engine.py:453 ++#: ../engine/python2/engine.py:523 ../engine/python3/engine.py:524 + #: ../setup/python2/setup.ui.h:15 ../setup/python3/setup.ui.h:15 + msgid "Multiple segment" + msgstr "連文節" + +-#: ../engine/python2/engine.py:461 ../engine/python3/engine.py:462 ++#: ../engine/python2/engine.py:532 ../engine/python3/engine.py:533 + #: ../setup/python2/setup.ui.h:16 ../setup/python3/setup.ui.h:16 + msgid "Single segment" + msgstr "単文節" + +-#: ../engine/python2/engine.py:470 ../engine/python3/engine.py:471 ++#: ../engine/python2/engine.py:541 ../engine/python3/engine.py:542 + #: ../setup/python2/setup.ui.h:17 ../setup/python3/setup.ui.h:17 + msgid "Immediate conversion (multiple segment)" + msgstr "逐次変換 (連文節)" + +-#: ../engine/python2/engine.py:479 ../engine/python3/engine.py:480 ++#: ../engine/python2/engine.py:550 ../engine/python3/engine.py:551 + #: ../setup/python2/setup.ui.h:18 ../setup/python3/setup.ui.h:18 + msgid "Immediate conversion (single segment)" + msgstr "逐次変換 (単文節)" + +-#: ../engine/python2/engine.py:512 ../engine/python2/engine.py:983 +-#: ../engine/python3/engine.py:513 ../engine/python3/engine.py:978 +-#: ../setup/python2/main.py:402 ../setup/python3/main.py:407 ++#: ../engine/python2/engine.py:583 ../engine/python2/engine.py:1057 ++#: ../engine/python3/engine.py:584 ../engine/python3/engine.py:1052 ++#: ../setup/python2/main.py:406 ../setup/python3/main.py:411 + msgid "Dictionary mode" + msgstr "辞書モード" + +-#: ../engine/python2/engine.py:518 ../engine/python3/engine.py:519 ++#: ../engine/python2/engine.py:589 ../engine/python3/engine.py:590 + msgid "Switch dictionary" + msgstr "辞書を切り替えます" + +-#: ../engine/python2/engine.py:601 ../engine/python3/engine.py:601 +-#: ../setup/python2/main.py:405 ../setup/python3/main.py:410 ++#: ../engine/python2/engine.py:672 ../engine/python3/engine.py:672 ++#: ../setup/python2/main.py:409 ../setup/python3/main.py:414 + msgid "Dictionary - Anthy" + msgstr "辞書 - Anthy" + + #. Translators: "Dic" means 'dictionary', One kanji may be good. +-#: ../engine/python2/engine.py:607 ../engine/python3/engine.py:606 ++#: ../engine/python2/engine.py:678 ../engine/python3/engine.py:677 + msgid "Dic" + msgstr "辞" + +-#: ../engine/python2/engine.py:614 ../engine/python3/engine.py:613 ++#: ../engine/python2/engine.py:685 ../engine/python3/engine.py:684 + msgid "Configure dictionaries" + msgstr "辞書を構成します" + +-#: ../engine/python2/engine.py:624 ../engine/python3/engine.py:623 ++#: ../engine/python2/engine.py:695 ../engine/python3/engine.py:694 + msgid "Edit dictionaries" + msgstr "辞書を編集する" + +-#: ../engine/python2/engine.py:626 ../engine/python3/engine.py:625 ++#: ../engine/python2/engine.py:697 ../engine/python3/engine.py:696 + msgid "Launch the dictionary tool" + msgstr "辞書ツールを起動する" + +-#: ../engine/python2/engine.py:633 ../engine/python3/engine.py:632 ++#: ../engine/python2/engine.py:704 ../engine/python3/engine.py:703 + msgid "Add words" + msgstr "単語を追加する" + +-#: ../engine/python2/engine.py:635 ../engine/python3/engine.py:634 ++#: ../engine/python2/engine.py:706 ../engine/python3/engine.py:705 + msgid "Add words to the dictionary" + msgstr "辞書に単語を追加する" + +-#: ../setup/python2/anthyprefs.py.in:1104 ../setup/python2/setup.ui.h:35 +-#: ../setup/python3/anthyprefs.py.in:1097 ../setup/python3/setup.ui.h:35 ++#: ../setup/python2/anthyprefs.py.in:1106 ../setup/python2/setup.ui.h:36 ++#: ../setup/python3/anthyprefs.py.in:1099 ../setup/python3/setup.ui.h:36 + msgid "General" + msgstr "一般" + +-#: ../setup/python2/anthyprefs.py.in:1115 +-#: ../setup/python3/anthyprefs.py.in:1108 ++#: ../setup/python2/anthyprefs.py.in:1117 ++#: ../setup/python3/anthyprefs.py.in:1110 + msgid "Zip Code Conversion" + msgstr "郵便番号変換" + +-#: ../setup/python2/anthyprefs.py.in:1126 +-#: ../setup/python3/anthyprefs.py.in:1119 ++#: ../setup/python2/anthyprefs.py.in:1128 ++#: ../setup/python3/anthyprefs.py.in:1121 + msgid "Symbol" + msgstr "記号" + +-#: ../setup/python2/anthyprefs.py.in:1137 +-#: ../setup/python3/anthyprefs.py.in:1130 ++#: ../setup/python2/anthyprefs.py.in:1139 ++#: ../setup/python3/anthyprefs.py.in:1132 + msgid "Old Character Style" + msgstr "旧字体" + +-#: ../setup/python2/anthyprefs.py.in:1147 +-#: ../setup/python3/anthyprefs.py.in:1140 ++#: ../setup/python2/anthyprefs.py.in:1149 ++#: ../setup/python3/anthyprefs.py.in:1142 + msgid "Era" + msgstr "年号" + +-#: ../setup/python2/anthyprefs.py.in:1157 +-#: ../setup/python3/anthyprefs.py.in:1150 ++#: ../setup/python2/anthyprefs.py.in:1159 ++#: ../setup/python3/anthyprefs.py.in:1152 + msgid "Emoji" + msgstr "絵文字" + +@@ -227,276 +227,276 @@ msgstr "IBus Anthy エンジンの設定" + msgid "ibus is not running." + msgstr "ibus が起動していません。" + +-#: ../setup/python2/main.py:180 ../setup/python3/main.py:183 ++#: ../setup/python2/main.py:181 ../setup/python3/main.py:184 + msgid "Menu label" + msgstr "メニューラベル" + +-#: ../setup/python2/main.py:199 ../setup/python3/main.py:202 ++#: ../setup/python2/main.py:200 ../setup/python3/main.py:203 + msgid "Command" + msgstr "コマンド" + +-#: ../setup/python2/main.py:203 ../setup/python3/main.py:206 ++#: ../setup/python2/main.py:204 ../setup/python3/main.py:207 + msgid "Shortcut" + msgstr "ショートカット" + +-#: ../setup/python2/main.py:248 ../setup/python3/main.py:251 ++#: ../setup/python2/main.py:249 ../setup/python3/main.py:252 + msgid "Description" + msgstr "説明" + + #. Translators: "Embd" is an abbreviation of "embedded". +-#: ../setup/python2/main.py:256 ../setup/python3/main.py:259 ++#: ../setup/python2/main.py:257 ../setup/python3/main.py:260 + msgid "Embd" + msgstr "組" + + #. Translators: "Sgl" is an abbreviation of "single". +-#: ../setup/python2/main.py:264 ../setup/python3/main.py:267 ++#: ../setup/python2/main.py:265 ../setup/python3/main.py:268 + msgid "Sgl" + msgstr "単" + +-#: ../setup/python2/main.py:439 ../setup/python2/main.py:475 +-#: ../setup/python3/main.py:444 ../setup/python3/main.py:480 ++#: ../setup/python2/main.py:443 ../setup/python2/main.py:479 ++#: ../setup/python3/main.py:448 ../setup/python3/main.py:484 + msgid "Input Chars" + msgstr "入力文字" + +-#: ../setup/python2/main.py:441 ../setup/python2/main.py:477 +-#: ../setup/python3/main.py:446 ../setup/python3/main.py:482 ++#: ../setup/python2/main.py:445 ../setup/python2/main.py:481 ++#: ../setup/python3/main.py:450 ../setup/python3/main.py:486 + msgid "Output Chars" + msgstr "出力文字" + +-#: ../setup/python2/main.py:523 ../setup/python3/main.py:528 ++#: ../setup/python2/main.py:527 ../setup/python3/main.py:532 + msgid "Input" + msgstr "入力" + +-#: ../setup/python2/main.py:525 ../setup/python3/main.py:530 ++#: ../setup/python2/main.py:529 ../setup/python3/main.py:534 + msgid "Single" + msgstr "単" + +-#: ../setup/python2/main.py:527 ../setup/python3/main.py:532 ++#: ../setup/python2/main.py:531 ../setup/python3/main.py:536 + msgid "Left" + msgstr "左" + +-#: ../setup/python2/main.py:529 ../setup/python3/main.py:534 ++#: ../setup/python2/main.py:533 ../setup/python3/main.py:538 + msgid "Right" + msgstr "右" + +-#: ../setup/python2/main.py:611 ../setup/python3/main.py:616 ++#: ../setup/python2/main.py:615 ../setup/python3/main.py:620 + msgid "Customize Romaji Key Table" + msgstr "ローマ字キーテーブルのカスタマイズ" + +-#: ../setup/python2/main.py:612 ../setup/python2/setup.ui.h:53 +-#: ../setup/python3/main.py:617 ../setup/python3/setup.ui.h:53 ++#: ../setup/python2/main.py:616 ../setup/python2/setup.ui.h:54 ++#: ../setup/python3/main.py:621 ../setup/python3/setup.ui.h:54 + msgid "_Romaji Key Table:" + msgstr "ローマ字キーテーブル(_R):" + +-#: ../setup/python2/main.py:613 ../setup/python2/main.py:619 +-#: ../setup/python3/main.py:618 ../setup/python3/main.py:624 ++#: ../setup/python2/main.py:617 ../setup/python2/main.py:623 ++#: ../setup/python3/main.py:622 ../setup/python3/main.py:628 + msgid "_Output Chars" + msgstr "出力文字(_O)" + +-#: ../setup/python2/main.py:614 ../setup/python2/main.py:1114 +-#: ../setup/python2/main.py:1196 ../setup/python2/setup.ui.h:26 +-#: ../setup/python3/main.py:619 ../setup/python3/main.py:1108 +-#: ../setup/python3/main.py:1190 ../setup/python3/setup.ui.h:26 ++#: ../setup/python2/main.py:618 ../setup/python2/main.py:1118 ++#: ../setup/python2/main.py:1200 ../setup/python2/setup.ui.h:26 ++#: ../setup/python3/main.py:623 ../setup/python3/main.py:1112 ++#: ../setup/python3/main.py:1194 ../setup/python3/setup.ui.h:26 + msgid "Default" + msgstr "デフォルト" + +-#: ../setup/python2/main.py:617 ../setup/python3/main.py:622 ++#: ../setup/python2/main.py:621 ../setup/python3/main.py:626 + msgid "Customize Kana Key Table" + msgstr "かなキーテーブルのカスタマイズ" + +-#: ../setup/python2/main.py:618 ../setup/python2/setup.ui.h:55 +-#: ../setup/python3/main.py:623 ../setup/python3/setup.ui.h:55 ++#: ../setup/python2/main.py:622 ../setup/python2/setup.ui.h:56 ++#: ../setup/python3/main.py:627 ../setup/python3/setup.ui.h:56 + msgid "_Kana Key Table:" + msgstr "かなキーテーブル(_K):" + +-#: ../setup/python2/main.py:620 ../setup/python3/main.py:625 ++#: ../setup/python2/main.py:624 ../setup/python3/main.py:629 + msgid "Japanese Keyboard Layout" + msgstr "日本語キーボードレイアウト" + +-#: ../setup/python2/main.py:621 ../setup/python3/main.py:626 ++#: ../setup/python2/main.py:625 ../setup/python3/main.py:630 + msgid "U.S. Keyboard Layout" + msgstr "U.S. キーボードレイアウト" + +-#: ../setup/python2/main.py:624 ../setup/python3/main.py:629 ++#: ../setup/python2/main.py:628 ../setup/python3/main.py:633 + msgid "Customize Thumb Shift Key Table" + msgstr "親指シフトキーテーブルのカスタマイズ" + +-#: ../setup/python2/main.py:625 ../setup/python3/main.py:630 ++#: ../setup/python2/main.py:629 ../setup/python3/main.py:634 + msgid "_Thumb Shift Key Table:" + msgstr "親指シフトキーテーブル(_T):" + +-#: ../setup/python2/main.py:626 ../setup/python3/main.py:631 ++#: ../setup/python2/main.py:630 ../setup/python3/main.py:635 + msgid "Single _Output Chars" + msgstr "単出力文字(_O)" + +-#: ../setup/python2/main.py:627 ../setup/python3/main.py:632 ++#: ../setup/python2/main.py:631 ../setup/python3/main.py:636 + msgid "Base" + msgstr "基本" + +-#: ../setup/python2/main.py:628 ../setup/python3/main.py:633 ++#: ../setup/python2/main.py:632 ../setup/python3/main.py:637 + msgid "NICOLA-J key extension" + msgstr "NICOLA-J キー拡張" + +-#: ../setup/python2/main.py:629 ../setup/python3/main.py:634 ++#: ../setup/python2/main.py:633 ../setup/python3/main.py:638 + msgid "NICOLA-A key extension" + msgstr "NICOLA-A キー拡張" + +-#: ../setup/python2/main.py:630 ../setup/python3/main.py:635 ++#: ../setup/python2/main.py:634 ../setup/python3/main.py:639 + msgid "NICOLA-F key extension" + msgstr "NICOLA-F キー拡張" + +-#: ../setup/python2/main.py:631 ../setup/python3/main.py:636 ++#: ../setup/python2/main.py:635 ../setup/python3/main.py:640 + msgid "FMV KB231-J key extension" + msgstr "FMV KB231-J キー拡張" + +-#: ../setup/python2/main.py:632 ../setup/python3/main.py:637 ++#: ../setup/python2/main.py:636 ../setup/python3/main.py:641 + msgid "FMV KB231-A key extension" + msgstr "FMV KB231-A キー拡張" + +-#: ../setup/python2/main.py:633 ../setup/python3/main.py:638 ++#: ../setup/python2/main.py:637 ../setup/python3/main.py:642 + msgid "FMV KB231-F key extension" + msgstr "FMV KB231-F キー拡張" + +-#: ../setup/python2/main.py:634 ../setup/python3/main.py:639 ++#: ../setup/python2/main.py:638 ../setup/python3/main.py:643 + msgid "FMV KB611-J key extension" + msgstr "FMV KB611-J キー拡張" + +-#: ../setup/python2/main.py:635 ../setup/python3/main.py:640 ++#: ../setup/python2/main.py:639 ../setup/python3/main.py:644 + msgid "FMV KB611-A key extension" + msgstr "FMV KB611-A キー拡張" + +-#: ../setup/python2/main.py:636 ../setup/python3/main.py:641 ++#: ../setup/python2/main.py:640 ../setup/python3/main.py:645 + msgid "FMV KB611-F key extension" + msgstr "FMV KB611-F キー拡張" + +-#: ../setup/python2/main.py:780 ../setup/python3/main.py:785 ++#: ../setup/python2/main.py:784 ../setup/python3/main.py:789 + msgid "Your choosed file has already been added: " + msgstr "選択したファイルはすでに追加されています: " + +-#: ../setup/python2/main.py:784 ../setup/python3/main.py:789 ++#: ../setup/python2/main.py:788 ../setup/python3/main.py:793 + msgid "The file you have chosen does not exist: " + msgstr "選択したファイルは存在しません: " + +-#: ../setup/python2/main.py:788 ../setup/python3/main.py:793 ++#: ../setup/python2/main.py:792 ../setup/python3/main.py:797 + msgid "Your choosed file is a directory: " + msgstr "選択したファイルはディレクトリです: " + +-#: ../setup/python2/main.py:792 ../setup/python3/main.py:797 ++#: ../setup/python2/main.py:796 ../setup/python3/main.py:801 + msgid "You cannot add dictionaries in the anthy private directory: " + msgstr "Anthy 私用ディレクトリにあるファイルを追加することはできません: " + +-#: ../setup/python2/main.py:799 ../setup/python3/main.py:804 ++#: ../setup/python2/main.py:803 ../setup/python3/main.py:808 + msgid "Your file path is not good: " + msgstr "ファイルパスはよくないです: " + +-#: ../setup/python2/main.py:978 ../setup/python3/main.py:981 ++#: ../setup/python2/main.py:982 ../setup/python3/main.py:985 + msgid "The engine xml file does not exist: " + msgstr "エンジン xml ファイルは存在しません: " + +-#: ../setup/python2/main.py:1094 ../setup/python3/main.py:1088 ++#: ../setup/python2/main.py:1098 ../setup/python3/main.py:1092 + msgid "" + "Anthy keyboard layout is changed. Please restart ibus to reload the layout." + msgstr "Anthy キーボードレイアウトが変更されました。レイアウトを再読み込みするために ibus を再起動してください。" + +-#: ../setup/python2/main.py:1157 ../setup/python3/main.py:1151 ++#: ../setup/python2/main.py:1161 ../setup/python3/main.py:1155 + msgid "Confirmation" + msgstr "確認" + +-#: ../setup/python2/main.py:1159 ../setup/python3/main.py:1153 ++#: ../setup/python2/main.py:1163 ../setup/python3/main.py:1157 + msgid "You are about to close the setup dialog, is that OK?" + msgstr "この設定ツールを終了します。よろしいですか?" + +-#: ../setup/python2/main.py:1174 ../setup/python3/main.py:1168 ++#: ../setup/python2/main.py:1178 ../setup/python3/main.py:1172 + msgid "Notice!" + msgstr "注意!" + +-#: ../setup/python2/main.py:1176 ../setup/python3/main.py:1170 ++#: ../setup/python2/main.py:1180 ../setup/python3/main.py:1174 + msgid "" + "You are about to close the setup dialog without saving your changes, is that " + "OK?" + msgstr "変更を保存せずに終了します。よろしいですか?" + +-#: ../setup/python2/main.py:1297 ../setup/python3/main.py:1291 ++#: ../setup/python2/main.py:1301 ../setup/python3/main.py:1295 + msgid "Please specify Input Chars" + msgstr "入力文字を指定してください" + +-#: ../setup/python2/main.py:1300 ../setup/python3/main.py:1294 ++#: ../setup/python2/main.py:1304 ../setup/python3/main.py:1298 + msgid "Please specify Output Chars" + msgstr "出力文字を指定してください" + +-#: ../setup/python2/main.py:1303 ../setup/python3/main.py:1297 ++#: ../setup/python2/main.py:1307 ../setup/python3/main.py:1301 + msgid "Please specify Left Thumb Shift Chars" + msgstr "左親指シフト文字を指定してください" + +-#: ../setup/python2/main.py:1306 ../setup/python3/main.py:1300 ++#: ../setup/python2/main.py:1310 ../setup/python3/main.py:1304 + msgid "Please specify Right Thumb Shift Chars" + msgstr "右親指シフト文字を指定してください" + +-#: ../setup/python2/main.py:1319 ../setup/python2/main.py:1363 +-#: ../setup/python3/main.py:1313 ../setup/python3/main.py:1357 ++#: ../setup/python2/main.py:1323 ../setup/python2/main.py:1367 ++#: ../setup/python3/main.py:1317 ../setup/python3/main.py:1361 + msgid "Your custom key is not assigned in any sections. Maybe a bug." + msgstr "カスタムキーがどのセクションにも割り当てられていません。たぶんバグです。" + +-#: ../setup/python2/main.py:1429 ../setup/python2/main.py:1516 +-#: ../setup/python3/main.py:1423 ../setup/python3/main.py:1510 ++#: ../setup/python2/main.py:1433 ../setup/python2/main.py:1520 ++#: ../setup/python3/main.py:1427 ../setup/python3/main.py:1514 + msgid "Your file does not exist: " + msgstr "ファイルは存在しません: " + +-#: ../setup/python2/main.py:1439 ../setup/python3/main.py:1433 ++#: ../setup/python2/main.py:1443 ../setup/python3/main.py:1437 + msgid "Open Dictionary File" + msgstr "辞書ファイルを開く" + +-#: ../setup/python2/main.py:1442 ../setup/python2/main.py:1448 +-#: ../setup/python2/setup.ui.h:89 ../setup/python3/main.py:1436 +-#: ../setup/python3/main.py:1442 ../setup/python3/setup.ui.h:89 ++#: ../setup/python2/main.py:1446 ../setup/python2/main.py:1452 ++#: ../setup/python2/setup.ui.h:90 ../setup/python3/main.py:1440 ++#: ../setup/python3/main.py:1446 ../setup/python3/setup.ui.h:90 + msgid "_Cancel" + msgstr "キャンセル(_C)" + +-#: ../setup/python2/main.py:1443 ../setup/python3/main.py:1437 ++#: ../setup/python2/main.py:1447 ../setup/python3/main.py:1441 + msgid "_Open" + msgstr "開く(_O)" + +-#: ../setup/python2/main.py:1446 ../setup/python3/main.py:1440 ++#: ../setup/python2/main.py:1450 ../setup/python3/main.py:1444 + msgid "Edit Dictionary File" + msgstr "辞書ファイルの編集" + +-#: ../setup/python2/main.py:1449 ../setup/python2/main.py:1544 +-#: ../setup/python2/setup.ui.h:90 ../setup/python3/main.py:1443 +-#: ../setup/python3/main.py:1538 ../setup/python3/setup.ui.h:90 ++#: ../setup/python2/main.py:1453 ../setup/python2/main.py:1548 ++#: ../setup/python2/setup.ui.h:91 ../setup/python3/main.py:1447 ++#: ../setup/python3/main.py:1542 ../setup/python3/setup.ui.h:91 + msgid "_OK" + msgstr "OK(_O)" + +-#: ../setup/python2/main.py:1460 ../setup/python3/main.py:1454 ++#: ../setup/python2/main.py:1464 ../setup/python3/main.py:1458 + msgid "Your choosed file is not correct." + msgstr "選択したファイルは正しくありません。" + +-#: ../setup/python2/main.py:1489 ../setup/python3/main.py:1483 ++#: ../setup/python2/main.py:1493 ../setup/python3/main.py:1487 + msgid "You cannot delete the system dictionary." + msgstr "システム辞書を削除することはできません。" + +-#: ../setup/python2/main.py:1512 ../setup/python3/main.py:1506 ++#: ../setup/python2/main.py:1516 ../setup/python3/main.py:1510 + msgid "Your file is not good." + msgstr "ファイルは良くないです。" + +-#: ../setup/python2/main.py:1542 ../setup/python3/main.py:1536 ++#: ../setup/python2/main.py:1546 ../setup/python3/main.py:1540 + msgid "View Dictionary File" + msgstr "辞書ファイルの表示" + +-#: ../setup/python2/main.py:1694 ../setup/python3/main.py:1688 ++#: ../setup/python2/main.py:1698 ../setup/python3/main.py:1692 + msgid "Please press a key (or a key combination)" + msgstr "キーを入力してください" + +-#: ../setup/python2/main.py:1695 ../setup/python3/main.py:1689 ++#: ../setup/python2/main.py:1699 ../setup/python3/main.py:1693 + msgid "The dialog will be closed when the key is released" + msgstr "このダイアログはキーリリース時に閉じられます" + +-#: ../setup/python2/main.py:1715 ../setup/python2/main.py:1736 +-#: ../setup/python3/main.py:1709 ../setup/python3/main.py:1730 ++#: ../setup/python2/main.py:1719 ../setup/python2/main.py:1740 ++#: ../setup/python3/main.py:1713 ../setup/python3/main.py:1734 + msgid "Invalid keysym" + msgstr "無効なキーシンボル" + +-#: ../setup/python2/main.py:1716 ../setup/python2/main.py:1737 +-#: ../setup/python3/main.py:1710 ../setup/python3/main.py:1731 ++#: ../setup/python2/main.py:1720 ../setup/python2/main.py:1741 ++#: ../setup/python3/main.py:1714 ../setup/python3/main.py:1735 + msgid "This keysym is not valid" + msgstr "このキーシンボルは有効ではありません" + +@@ -581,298 +581,302 @@ msgid "Initial Setting" + msgstr "初期値の設定" + + #: ../setup/python2/setup.ui.h:34 ../setup/python3/setup.ui.h:34 ++msgid "_Show input mode icon" ++msgstr "入力モードのアイコンを表示する(_S)" ++ ++#: ../setup/python2/setup.ui.h:35 ../setup/python3/setup.ui.h:35 + msgid "Menu Visibility on Status Icon" + msgstr "ステータスアイコン上のメニューの表示" + +-#: ../setup/python2/setup.ui.h:36 ../setup/python3/setup.ui.h:36 ++#: ../setup/python2/setup.ui.h:37 ../setup/python3/setup.ui.h:37 + msgid "_Period Style:" + msgstr "句読点スタイル(_P):" + +-#: ../setup/python2/setup.ui.h:37 ../setup/python3/setup.ui.h:37 ++#: ../setup/python2/setup.ui.h:38 ../setup/python3/setup.ui.h:38 + msgid "Symbo_l Style:" + msgstr "記号スタイル(_L):" + +-#: ../setup/python2/setup.ui.h:38 ../setup/python3/setup.ui.h:38 ++#: ../setup/python2/setup.ui.h:39 ../setup/python3/setup.ui.h:39 + msgid "Numpad _Key Type:" + msgstr "テンキータイプ(_K):" + +-#: ../setup/python2/setup.ui.h:39 ../setup/python3/setup.ui.h:39 ++#: ../setup/python2/setup.ui.h:40 ../setup/python3/setup.ui.h:40 + msgid "_Behavior on Period:" + msgstr "句読点入力時の動作(_B):" + +-#: ../setup/python2/setup.ui.h:40 ../setup/python3/setup.ui.h:40 ++#: ../setup/python2/setup.ui.h:41 ../setup/python3/setup.ui.h:41 + msgid "Behavior on _Focus Out:" + msgstr "フォーカスアウト時の動作(_F):" + +-#: ../setup/python2/setup.ui.h:41 ../setup/python3/setup.ui.h:41 ++#: ../setup/python2/setup.ui.h:42 ../setup/python3/setup.ui.h:42 + msgid "Behavior" + msgstr "動作" + +-#: ../setup/python2/setup.ui.h:42 ../setup/python3/setup.ui.h:42 ++#: ../setup/python2/setup.ui.h:43 ../setup/python3/setup.ui.h:43 + msgid "Candidate _Window Page Size:" + msgstr "候補ウインドウの項目数(_W):" + +-#: ../setup/python2/setup.ui.h:43 ../setup/python3/setup.ui.h:43 ++#: ../setup/python2/setup.ui.h:44 ../setup/python3/setup.ui.h:44 + msgid "Convert _symbols with the one column width" + msgstr "記号を半角で変換する(_S)" + +-#: ../setup/python2/setup.ui.h:44 ../setup/python3/setup.ui.h:44 ++#: ../setup/python2/setup.ui.h:45 ../setup/python3/setup.ui.h:45 + msgid "Convert _numbers with the one column width" + msgstr "数字を半角で変換する(_N)" + +-#: ../setup/python2/setup.ui.h:45 ../setup/python3/setup.ui.h:45 ++#: ../setup/python2/setup.ui.h:46 ../setup/python3/setup.ui.h:46 + msgid "Con_vert spaces with the one column width" + msgstr "空白を半角で変換する(_V)" + +-#: ../setup/python2/setup.ui.h:46 ../setup/python3/setup.ui.h:46 ++#: ../setup/python2/setup.ui.h:47 ../setup/python3/setup.ui.h:47 + msgid "" + "Swi_tch “Hiragana” and “Latin” with Shift key and Hiragana–Katakana key in " + "preedit" + msgstr "前変換候補において「ひらがな」と「英数」をシフトキーとひらがな・カタカナキーで切り替える(_T)" + +-#: ../setup/python2/setup.ui.h:47 ../setup/python3/setup.ui.h:47 ++#: ../setup/python2/setup.ui.h:48 ../setup/python3/setup.ui.h:48 + msgid "Other" + msgstr "その他" + +-#: ../setup/python2/setup.ui.h:48 ../setup/python3/setup.ui.h:48 ++#: ../setup/python2/setup.ui.h:49 ../setup/python3/setup.ui.h:49 + msgid "Conversion" + msgstr "変換" + +-#: ../setup/python2/setup.ui.h:49 ../setup/python3/setup.ui.h:49 ++#: ../setup/python2/setup.ui.h:50 ../setup/python3/setup.ui.h:50 + msgid "_Shortcut Type:" + msgstr "ショートカットタイプ(_S):" + +-#: ../setup/python2/setup.ui.h:50 ../setup/python3/setup.ui.h:50 ++#: ../setup/python2/setup.ui.h:51 ../setup/python3/setup.ui.h:51 + msgid "De_fault" + msgstr "デフォルト(_F)" + +-#: ../setup/python2/setup.ui.h:51 ../setup/python3/setup.ui.h:51 ++#: ../setup/python2/setup.ui.h:52 ../setup/python3/setup.ui.h:52 + msgid "_Edit" + msgstr "編集(_E)" + +-#: ../setup/python2/setup.ui.h:52 ../setup/python3/setup.ui.h:52 ++#: ../setup/python2/setup.ui.h:53 ../setup/python3/setup.ui.h:53 + msgid "Key Binding" + msgstr "キー割り当て" + +-#: ../setup/python2/setup.ui.h:54 ../setup/python3/setup.ui.h:54 ++#: ../setup/python2/setup.ui.h:55 ../setup/python3/setup.ui.h:55 + msgid "Romaji" + msgstr "ローマ字" + +-#: ../setup/python2/setup.ui.h:56 ../setup/python3/setup.ui.h:56 ++#: ../setup/python2/setup.ui.h:57 ../setup/python3/setup.ui.h:57 + msgid "Kana" + msgstr "かな" + +-#: ../setup/python2/setup.ui.h:57 ../setup/python3/setup.ui.h:57 ++#: ../setup/python2/setup.ui.h:58 ../setup/python3/setup.ui.h:58 + msgid "Keyboad _layout:" + msgstr "キーボードレイアウト(_L):" + +-#: ../setup/python2/setup.ui.h:58 ../setup/python3/setup.ui.h:58 ++#: ../setup/python2/setup.ui.h:59 ../setup/python3/setup.ui.h:59 + msgid "Keyboard layout" + msgstr "キーボードレイアウト" + +-#: ../setup/python2/setup.ui.h:59 ../setup/python3/setup.ui.h:59 ++#: ../setup/python2/setup.ui.h:60 ../setup/python3/setup.ui.h:60 + msgid "Typing Method" + msgstr "入力タイプ" + +-#: ../setup/python2/setup.ui.h:60 ../setup/python3/setup.ui.h:60 ++#: ../setup/python2/setup.ui.h:61 ../setup/python3/setup.ui.h:61 + msgid "_Left Thumb Shift Key:" + msgstr "左親指シフトキー(_L):" + +-#: ../setup/python2/setup.ui.h:61 ../setup/python3/setup.ui.h:61 ++#: ../setup/python2/setup.ui.h:62 ../setup/python3/setup.ui.h:62 + msgid "Right _Thumb Shift Key:" + msgstr "右親指シフトキー(_T):" + +-#: ../setup/python2/setup.ui.h:62 ../setup/python3/setup.ui.h:62 ++#: ../setup/python2/setup.ui.h:63 ../setup/python3/setup.ui.h:63 + msgid "Adjust _input method layout to system keyboard layout" + msgstr "インプットメソッドレイアウトをシステムキーボードレイアウトに合わせる(_I)" + +-#: ../setup/python2/setup.ui.h:63 ../setup/python3/setup.ui.h:63 ++#: ../setup/python2/setup.ui.h:64 ../setup/python3/setup.ui.h:64 + msgid "Adjust IM layout to XKB layout" + msgstr "IM レイアウトを XKB レイアウトに合わせる" + +-#: ../setup/python2/setup.ui.h:64 ../setup/python3/setup.ui.h:64 ++#: ../setup/python2/setup.ui.h:65 ../setup/python3/setup.ui.h:65 + msgid "Input _Method Layout:" + msgstr "インプットメソッドレイアウト(_M):" + +-#: ../setup/python2/setup.ui.h:65 ../setup/python3/setup.ui.h:65 ++#: ../setup/python2/setup.ui.h:66 ../setup/python3/setup.ui.h:66 + msgid "Restart IBus when you change the keyboard layout" + msgstr "キーボードレイアウトを変更するときは IBus をリスタートしてください" + +-#: ../setup/python2/setup.ui.h:66 ../setup/python3/setup.ui.h:66 ++#: ../setup/python2/setup.ui.h:67 ../setup/python3/setup.ui.h:67 + msgid "Restart IBus when you change XKB" + msgstr "XKB を変更するときは IBus を再起動してください" + +-#: ../setup/python2/setup.ui.h:67 ../setup/python3/setup.ui.h:67 ++#: ../setup/python2/setup.ui.h:68 ../setup/python3/setup.ui.h:68 + msgid "_Additional Key Arrangement:" + msgstr "追加のキー割り当て(_A):" + +-#: ../setup/python2/setup.ui.h:68 ../setup/python3/setup.ui.h:68 ++#: ../setup/python2/setup.ui.h:69 ../setup/python3/setup.ui.h:69 + msgid "" + "'~', '『', '¢', '£' and so on can be output with " + "Thumb Shift key" + msgstr "親指シフトキーで '~', '『', '¢', '£' 等を入力することが可能です" + +-#: ../setup/python2/setup.ui.h:69 ../setup/python3/setup.ui.h:69 ++#: ../setup/python2/setup.ui.h:70 ../setup/python3/setup.ui.h:70 + msgid "" + "You do not have to reconfigure the system keyboard layout for \"Additional " + "Key Arrangement\" since this option changes input method layout only in case " + "input method is turned on." + msgstr "このオプションはインプットメソッドがオンの場合にインプットメソッドレイアウトのみを変更するので「追加のキー割り当て」のためにシステムキーボードレイアウトを再構成する必要はありません。" + +-#: ../setup/python2/setup.ui.h:70 ../setup/python3/setup.ui.h:70 ++#: ../setup/python2/setup.ui.h:71 ../setup/python3/setup.ui.h:71 + msgid "" + "You do not have to reconfigure XKB since this option changes IM layout only " + "with IM on." + msgstr "このオプションは IM オンで IM レイアウトのみを変更するので XKB を再構成する必要はありません。" + +-#: ../setup/python2/setup.ui.h:71 ../setup/python3/setup.ui.h:71 ++#: ../setup/python2/setup.ui.h:72 ../setup/python3/setup.ui.h:72 + msgid "_Enable semi-voiced sound mark with Shift key" + msgstr "シフトキーで半濁点を可能にする(_E)" + +-#: ../setup/python2/setup.ui.h:72 ../setup/python3/setup.ui.h:72 ++#: ../setup/python2/setup.ui.h:73 ../setup/python3/setup.ui.h:73 + msgid "Seion + Shift can output Handakuon" + msgstr "清音 + シフトで半濁音を出力することが可能です" + +-#: ../setup/python2/setup.ui.h:73 ../setup/python3/setup.ui.h:73 ++#: ../setup/python2/setup.ui.h:74 ../setup/python3/setup.ui.h:74 + msgid "Thumb _Shift Key Table:" + msgstr "親指シフトキーテーブル(_S):" + +-#: ../setup/python2/setup.ui.h:74 ../setup/python3/setup.ui.h:74 ++#: ../setup/python2/setup.ui.h:75 ../setup/python3/setup.ui.h:75 + msgid "Thumb Shift Layout" + msgstr "親指シフトレイアウト" + +-#: ../setup/python2/setup.ui.h:75 ../setup/python3/setup.ui.h:75 ++#: ../setup/python2/setup.ui.h:76 ../setup/python3/setup.ui.h:76 + msgid "Thumb Shift" + msgstr "親指シフト" + +-#: ../setup/python2/setup.ui.h:76 ../setup/python3/setup.ui.h:76 ++#: ../setup/python2/setup.ui.h:77 ../setup/python3/setup.ui.h:77 + msgid "_Edit Dictionary Command:" + msgstr "辞書の編集コマンド(_E):" + +-#: ../setup/python2/setup.ui.h:77 ../setup/python3/setup.ui.h:77 ++#: ../setup/python2/setup.ui.h:78 ../setup/python3/setup.ui.h:78 + msgid "_Add Word Command:" + msgstr "単語の追加コマンド(_A):" + +-#: ../setup/python2/setup.ui.h:78 ../setup/python3/setup.ui.h:78 ++#: ../setup/python2/setup.ui.h:79 ../setup/python3/setup.ui.h:79 + msgid "Default Dictionary Configuration" + msgstr "デフォルト辞書の構成" + +-#: ../setup/python2/setup.ui.h:79 ../setup/python3/setup.ui.h:79 ++#: ../setup/python2/setup.ui.h:80 ../setup/python3/setup.ui.h:80 + msgid "_View" + msgstr "表示(_V)" + +-#: ../setup/python2/setup.ui.h:80 ../setup/python3/setup.ui.h:80 ++#: ../setup/python2/setup.ui.h:81 ../setup/python3/setup.ui.h:81 + msgid "_Add" + msgstr "追加(_A)" + +-#: ../setup/python2/setup.ui.h:81 ../setup/python3/setup.ui.h:81 ++#: ../setup/python2/setup.ui.h:82 ../setup/python3/setup.ui.h:82 + msgid "_Delete" + msgstr "削除(_D)" + +-#: ../setup/python2/setup.ui.h:82 ../setup/python3/setup.ui.h:82 ++#: ../setup/python2/setup.ui.h:83 ../setup/python3/setup.ui.h:83 + msgid "_Up" + msgstr "上へ(_U)" + +-#: ../setup/python2/setup.ui.h:83 ../setup/python3/setup.ui.h:83 ++#: ../setup/python2/setup.ui.h:84 ../setup/python3/setup.ui.h:84 + msgid "You can change the order on language bar" + msgstr "言語バー上で順序を変更することが可能です" + +-#: ../setup/python2/setup.ui.h:84 ../setup/python3/setup.ui.h:84 ++#: ../setup/python2/setup.ui.h:85 ../setup/python3/setup.ui.h:85 + msgid "_Down" + msgstr "下へ(_D)" + +-#: ../setup/python2/setup.ui.h:85 ../setup/python3/setup.ui.h:85 ++#: ../setup/python2/setup.ui.h:86 ../setup/python3/setup.ui.h:86 + msgid "Extended Dictionaries" + msgstr "拡張辞書" + +-#: ../setup/python2/setup.ui.h:86 ../setup/python3/setup.ui.h:86 ++#: ../setup/python2/setup.ui.h:87 ../setup/python3/setup.ui.h:87 + msgid "Dictionary" + msgstr "辞書" + +-#: ../setup/python2/setup.ui.h:87 ../setup/python3/setup.ui.h:87 ++#: ../setup/python2/setup.ui.h:88 ../setup/python3/setup.ui.h:88 + msgid "About" + msgstr "情報" + +-#: ../setup/python2/setup.ui.h:88 ../setup/python3/setup.ui.h:88 ++#: ../setup/python2/setup.ui.h:89 ../setup/python3/setup.ui.h:89 + msgid "_Apply" + msgstr "適用(_A)" + +-#: ../setup/python2/setup.ui.h:91 ../setup/python3/setup.ui.h:91 ++#: ../setup/python2/setup.ui.h:92 ../setup/python3/setup.ui.h:92 + msgid "Edit Shortcut" + msgstr "ショートカットの編集" + +-#: ../setup/python2/setup.ui.h:92 ../setup/python3/setup.ui.h:92 ++#: ../setup/python2/setup.ui.h:93 ../setup/python3/setup.ui.h:93 + msgid "Key Code:" + msgstr "キーコード:" + +-#: ../setup/python2/setup.ui.h:93 ../setup/python3/setup.ui.h:93 ++#: ../setup/python2/setup.ui.h:94 ../setup/python3/setup.ui.h:94 + msgid "Modifier:" + msgstr "キー修飾:" + +-#: ../setup/python2/setup.ui.h:94 ../setup/python3/setup.ui.h:94 ++#: ../setup/python2/setup.ui.h:95 ../setup/python3/setup.ui.h:95 + msgid "A_lternate" + msgstr "A_lt" + +-#: ../setup/python2/setup.ui.h:95 ../setup/python3/setup.ui.h:95 ++#: ../setup/python2/setup.ui.h:96 ../setup/python3/setup.ui.h:96 + msgid "Co_ntrol" + msgstr "Co_ntrol" + +-#: ../setup/python2/setup.ui.h:96 ../setup/python3/setup.ui.h:96 ++#: ../setup/python2/setup.ui.h:97 ../setup/python3/setup.ui.h:97 + msgid "_Shift" + msgstr "_Shift" + +-#: ../setup/python2/setup.ui.h:97 ../setup/python3/setup.ui.h:97 ++#: ../setup/python2/setup.ui.h:98 ../setup/python3/setup.ui.h:98 + msgid "_Refresh" + msgstr "更新(_R)" + +-#: ../setup/python2/setup.ui.h:98 ../setup/python3/setup.ui.h:98 ++#: ../setup/python2/setup.ui.h:99 ../setup/python3/setup.ui.h:99 + msgid "_Input Characters" + msgstr "入力文字(_I)" + +-#: ../setup/python2/setup.ui.h:99 ../setup/python3/setup.ui.h:99 ++#: ../setup/python2/setup.ui.h:100 ../setup/python3/setup.ui.h:100 + msgid "_Output Characters" + msgstr "出力文字(_O)" + +-#: ../setup/python2/setup.ui.h:100 ../setup/python3/setup.ui.h:100 ++#: ../setup/python2/setup.ui.h:101 ../setup/python3/setup.ui.h:101 + msgid "_Left Thumb Shift" + msgstr "左親指シフト(_L)" + +-#: ../setup/python2/setup.ui.h:101 ../setup/python3/setup.ui.h:101 ++#: ../setup/python2/setup.ui.h:102 ../setup/python3/setup.ui.h:102 + msgid "_Right Thumb Shift" + msgstr "右親指シフト(_R)" + +-#: ../setup/python2/setup.ui.h:102 ../setup/python3/setup.ui.h:102 ++#: ../setup/python2/setup.ui.h:103 ../setup/python3/setup.ui.h:103 + msgid "_Remove" + msgstr "削除(_R)" + +-#: ../setup/python2/setup.ui.h:103 ../setup/python3/setup.ui.h:103 ++#: ../setup/python2/setup.ui.h:104 ../setup/python3/setup.ui.h:104 + msgid "_Close" + msgstr "閉じる(_C)" + +-#: ../setup/python2/setup.ui.h:104 ../setup/python3/setup.ui.h:104 ++#: ../setup/python2/setup.ui.h:105 ../setup/python3/setup.ui.h:105 + msgid "_Short Label:" + msgstr "短ラベル(_S):" + +-#: ../setup/python2/setup.ui.h:105 ../setup/python3/setup.ui.h:105 ++#: ../setup/python2/setup.ui.h:106 ../setup/python3/setup.ui.h:106 + msgid "_Description:" + msgstr "説明(_D):" + +-#: ../setup/python2/setup.ui.h:106 ../setup/python3/setup.ui.h:106 ++#: ../setup/python2/setup.ui.h:107 ../setup/python3/setup.ui.h:107 + msgid "_Use your dictionary alone with switching dictionaries" + msgstr "辞書を切り替えることで選択した辞書を単独で使用する(_U)" + +-#: ../setup/python2/setup.ui.h:107 ../setup/python3/setup.ui.h:107 ++#: ../setup/python2/setup.ui.h:108 ../setup/python3/setup.ui.h:108 + msgid "_Embed your dictionary in the system dictionary" + msgstr "システム辞書にユーザー辞書を組み込む(_E)" + +-#: ../setup/python2/setup.ui.h:108 ../setup/python3/setup.ui.h:108 ++#: ../setup/python2/setup.ui.h:109 ../setup/python3/setup.ui.h:109 + msgid "Enable the _reverse conversion" + msgstr "逆変換を可能にする(_R)" + +-#: ../setup/python2/setup.ui.h:109 ../setup/python3/setup.ui.h:109 ++#: ../setup/python2/setup.ui.h:110 ../setup/python3/setup.ui.h:110 + msgid "The Anthy engine for the IBus input platform" + msgstr "IBus 入力プラットフォーム用 Anthy エンジン" + +-#: ../setup/python2/setup.ui.h:110 ../setup/python3/setup.ui.h:110 ++#: ../setup/python2/setup.ui.h:111 ../setup/python3/setup.ui.h:111 + msgid "translator_credits" + msgstr "UTUMI Hirosi " +diff --git a/po/zh_CN.po b/po/zh_CN.po +index cf4f026..db9b54e 100644 +--- a/po/zh_CN.po ++++ b/po/zh_CN.po +@@ -11,17 +11,17 @@ msgid "" + msgstr "" + "Project-Id-Version: IBus-Anthy\n" + "Report-Msgid-Bugs-To: http://code.google.com/p/ibus/issues/entry\n" +-"POT-Creation-Date: 2014-08-21 18:57+0900\n" ++"POT-Creation-Date: 2014-08-21 19:31+0900\n" + "PO-Revision-Date: 2014-02-18 08:42+0000\n" + "Last-Translator: Peng Huang \n" + "Language-Team: Peng Huang \n" ++"Language: zh_CN\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" +-"Language: zh_CN\n" + "Plural-Forms: nplurals=1; plural=0;\n" + +-#: ../engine/python2/engine.py:193 ../engine/python3/engine.py:194 ++#: ../engine/python2/engine.py:197 ../engine/python3/engine.py:198 + msgid "" + "Could not enable Anthy.\n" + "The end of the content of the file .anthy/last-record2_default.utf8 in your " +@@ -29,188 +29,188 @@ msgid "" + "Please fix the file or remove it by manual and restart IBus." + msgstr "" + +-#: ../engine/python2/engine.py:241 ../engine/python3/engine.py:242 +-#: ../setup/python2/main.py:408 ../setup/python3/main.py:413 ++#: ../engine/python2/engine.py:245 ../engine/python3/engine.py:246 ++#: ../setup/python2/main.py:412 ../setup/python3/main.py:417 + msgid "Preferences - Anthy" + msgstr "- Anthy" + +-#: ../engine/python2/engine.py:243 ../engine/python3/engine.py:244 ++#: ../engine/python2/engine.py:247 ../engine/python3/engine.py:248 + msgid "Configure Anthy" + msgstr "" + + #. Translators: Specify the order of %s with your translation. + #. It will be "Input Mode (A)" for example. +-#: ../engine/python2/engine.py:280 ../engine/python2/engine.py:368 +-#: ../engine/python2/engine.py:435 ../engine/python2/engine.py:511 +-#: ../engine/python2/engine.py:842 ../engine/python2/engine.py:870 +-#: ../engine/python2/engine.py:894 ../engine/python2/engine.py:920 +-#: ../engine/python2/engine.py:982 ../engine/python3/engine.py:281 +-#: ../engine/python3/engine.py:369 ../engine/python3/engine.py:436 +-#: ../engine/python3/engine.py:512 ../engine/python3/engine.py:837 +-#: ../engine/python3/engine.py:865 ../engine/python3/engine.py:889 +-#: ../engine/python3/engine.py:915 ../engine/python3/engine.py:977 ++#: ../engine/python2/engine.py:351 ../engine/python2/engine.py:439 ++#: ../engine/python2/engine.py:506 ../engine/python2/engine.py:582 ++#: ../engine/python2/engine.py:913 ../engine/python2/engine.py:944 ++#: ../engine/python2/engine.py:968 ../engine/python2/engine.py:994 ++#: ../engine/python2/engine.py:1056 ../engine/python3/engine.py:352 ++#: ../engine/python3/engine.py:440 ../engine/python3/engine.py:507 ++#: ../engine/python3/engine.py:583 ../engine/python3/engine.py:908 ++#: ../engine/python3/engine.py:939 ../engine/python3/engine.py:963 ++#: ../engine/python3/engine.py:989 ../engine/python3/engine.py:1051 + #, python-format + msgid "%(description)s (%(symbol)s)" + msgstr "" + +-#: ../engine/python2/engine.py:281 ../engine/python2/engine.py:843 +-#: ../engine/python3/engine.py:282 ../engine/python3/engine.py:838 +-#: ../setup/python2/main.py:393 ../setup/python3/main.py:398 ++#: ../engine/python2/engine.py:352 ../engine/python2/engine.py:914 ++#: ../engine/python3/engine.py:353 ../engine/python3/engine.py:909 ++#: ../setup/python2/main.py:397 ../setup/python3/main.py:402 + msgid "Input mode" + msgstr "" + +-#: ../engine/python2/engine.py:287 ../engine/python3/engine.py:288 ++#: ../engine/python2/engine.py:358 ../engine/python3/engine.py:359 + msgid "Switch input mode" + msgstr "切换输入模式" + +-#: ../engine/python2/engine.py:297 ../engine/python3/engine.py:298 ++#: ../engine/python2/engine.py:368 ../engine/python3/engine.py:369 + #: ../setup/python2/setup.ui.h:1 ../setup/python3/setup.ui.h:1 + msgid "Hiragana" + msgstr "平假名" + +-#: ../engine/python2/engine.py:306 ../engine/python3/engine.py:307 ++#: ../engine/python2/engine.py:377 ../engine/python3/engine.py:378 + #: ../setup/python2/setup.ui.h:2 ../setup/python3/setup.ui.h:2 + msgid "Katakana" + msgstr "片假名" + +-#: ../engine/python2/engine.py:315 ../engine/python3/engine.py:316 ++#: ../engine/python2/engine.py:386 ../engine/python3/engine.py:387 + #: ../setup/python2/setup.ui.h:3 ../setup/python3/setup.ui.h:3 + msgid "Halfwidth Katakana" + msgstr "" + +-#: ../engine/python2/engine.py:324 ../engine/python3/engine.py:325 ++#: ../engine/python2/engine.py:395 ../engine/python3/engine.py:396 + #: ../setup/python2/setup.ui.h:4 ../setup/python3/setup.ui.h:4 + msgid "Latin" + msgstr "英数" + +-#: ../engine/python2/engine.py:333 ../engine/python3/engine.py:334 ++#: ../engine/python2/engine.py:404 ../engine/python3/engine.py:405 + #: ../setup/python2/setup.ui.h:5 ../setup/python3/setup.ui.h:5 + msgid "Wide Latin" + msgstr "全角英数" + +-#: ../engine/python2/engine.py:369 ../engine/python2/engine.py:871 +-#: ../engine/python2/engine.py:895 ../engine/python3/engine.py:370 +-#: ../engine/python3/engine.py:866 ../engine/python3/engine.py:890 +-#: ../setup/python2/main.py:396 ../setup/python3/main.py:401 ++#: ../engine/python2/engine.py:440 ../engine/python2/engine.py:945 ++#: ../engine/python2/engine.py:969 ../engine/python3/engine.py:441 ++#: ../engine/python3/engine.py:940 ../engine/python3/engine.py:964 ++#: ../setup/python2/main.py:400 ../setup/python3/main.py:405 + msgid "Typing method" + msgstr "" + +-#: ../engine/python2/engine.py:375 ../engine/python3/engine.py:376 ++#: ../engine/python2/engine.py:446 ../engine/python3/engine.py:447 + msgid "Switch typing method" + msgstr "" + +-#: ../engine/python2/engine.py:385 ../engine/python3/engine.py:386 ++#: ../engine/python2/engine.py:456 ../engine/python3/engine.py:457 + #: ../setup/python2/setup.ui.h:12 ../setup/python3/setup.ui.h:12 + msgid "Romaji" + msgstr "罗马字" + +-#: ../engine/python2/engine.py:394 ../engine/python3/engine.py:395 ++#: ../engine/python2/engine.py:465 ../engine/python3/engine.py:466 + #: ../setup/python2/setup.ui.h:13 ../setup/python3/setup.ui.h:13 + msgid "Kana" + msgstr "假名" + +-#: ../engine/python2/engine.py:403 ../engine/python3/engine.py:404 ++#: ../engine/python2/engine.py:474 ../engine/python3/engine.py:475 + #: ../setup/python2/setup.ui.h:14 ../setup/python3/setup.ui.h:14 + msgid "Thumb shift" + msgstr "" + +-#: ../engine/python2/engine.py:436 ../engine/python2/engine.py:921 +-#: ../engine/python3/engine.py:437 ../engine/python3/engine.py:916 +-#: ../setup/python2/main.py:399 ../setup/python3/main.py:404 ++#: ../engine/python2/engine.py:507 ../engine/python2/engine.py:995 ++#: ../engine/python3/engine.py:508 ../engine/python3/engine.py:990 ++#: ../setup/python2/main.py:403 ../setup/python3/main.py:408 + msgid "Segment mode" + msgstr "" + +-#: ../engine/python2/engine.py:442 ../engine/python3/engine.py:443 ++#: ../engine/python2/engine.py:513 ../engine/python3/engine.py:514 + msgid "Switch conversion mode" + msgstr "" + +-#: ../engine/python2/engine.py:452 ../engine/python3/engine.py:453 ++#: ../engine/python2/engine.py:523 ../engine/python3/engine.py:524 + #: ../setup/python2/setup.ui.h:15 ../setup/python3/setup.ui.h:15 + msgid "Multiple segment" + msgstr "" + +-#: ../engine/python2/engine.py:461 ../engine/python3/engine.py:462 ++#: ../engine/python2/engine.py:532 ../engine/python3/engine.py:533 + #: ../setup/python2/setup.ui.h:16 ../setup/python3/setup.ui.h:16 + msgid "Single segment" + msgstr "" + +-#: ../engine/python2/engine.py:470 ../engine/python3/engine.py:471 ++#: ../engine/python2/engine.py:541 ../engine/python3/engine.py:542 + #: ../setup/python2/setup.ui.h:17 ../setup/python3/setup.ui.h:17 + msgid "Immediate conversion (multiple segment)" + msgstr "" + +-#: ../engine/python2/engine.py:479 ../engine/python3/engine.py:480 ++#: ../engine/python2/engine.py:550 ../engine/python3/engine.py:551 + #: ../setup/python2/setup.ui.h:18 ../setup/python3/setup.ui.h:18 + msgid "Immediate conversion (single segment)" + msgstr "" + +-#: ../engine/python2/engine.py:512 ../engine/python2/engine.py:983 +-#: ../engine/python3/engine.py:513 ../engine/python3/engine.py:978 +-#: ../setup/python2/main.py:402 ../setup/python3/main.py:407 ++#: ../engine/python2/engine.py:583 ../engine/python2/engine.py:1057 ++#: ../engine/python3/engine.py:584 ../engine/python3/engine.py:1052 ++#: ../setup/python2/main.py:406 ../setup/python3/main.py:411 + msgid "Dictionary mode" + msgstr "" + +-#: ../engine/python2/engine.py:518 ../engine/python3/engine.py:519 ++#: ../engine/python2/engine.py:589 ../engine/python3/engine.py:590 + msgid "Switch dictionary" + msgstr "" + +-#: ../engine/python2/engine.py:601 ../engine/python3/engine.py:601 +-#: ../setup/python2/main.py:405 ../setup/python3/main.py:410 ++#: ../engine/python2/engine.py:672 ../engine/python3/engine.py:672 ++#: ../setup/python2/main.py:409 ../setup/python3/main.py:414 + msgid "Dictionary - Anthy" + msgstr "词典 - Anthy" + + #. Translators: "Dic" means 'dictionary', One kanji may be good. +-#: ../engine/python2/engine.py:607 ../engine/python3/engine.py:606 ++#: ../engine/python2/engine.py:678 ../engine/python3/engine.py:677 + msgid "Dic" + msgstr "" + +-#: ../engine/python2/engine.py:614 ../engine/python3/engine.py:613 ++#: ../engine/python2/engine.py:685 ../engine/python3/engine.py:684 + msgid "Configure dictionaries" + msgstr "" + +-#: ../engine/python2/engine.py:624 ../engine/python3/engine.py:623 ++#: ../engine/python2/engine.py:695 ../engine/python3/engine.py:694 + msgid "Edit dictionaries" + msgstr "" + +-#: ../engine/python2/engine.py:626 ../engine/python3/engine.py:625 ++#: ../engine/python2/engine.py:697 ../engine/python3/engine.py:696 + msgid "Launch the dictionary tool" + msgstr "" + +-#: ../engine/python2/engine.py:633 ../engine/python3/engine.py:632 ++#: ../engine/python2/engine.py:704 ../engine/python3/engine.py:703 + msgid "Add words" + msgstr "" + +-#: ../engine/python2/engine.py:635 ../engine/python3/engine.py:634 ++#: ../engine/python2/engine.py:706 ../engine/python3/engine.py:705 + msgid "Add words to the dictionary" + msgstr "" + +-#: ../setup/python2/anthyprefs.py.in:1104 ../setup/python2/setup.ui.h:35 +-#: ../setup/python3/anthyprefs.py.in:1097 ../setup/python3/setup.ui.h:35 ++#: ../setup/python2/anthyprefs.py.in:1106 ../setup/python2/setup.ui.h:36 ++#: ../setup/python3/anthyprefs.py.in:1099 ../setup/python3/setup.ui.h:36 + msgid "General" + msgstr "" + +-#: ../setup/python2/anthyprefs.py.in:1115 +-#: ../setup/python3/anthyprefs.py.in:1108 ++#: ../setup/python2/anthyprefs.py.in:1117 ++#: ../setup/python3/anthyprefs.py.in:1110 + msgid "Zip Code Conversion" + msgstr "" + +-#: ../setup/python2/anthyprefs.py.in:1126 +-#: ../setup/python3/anthyprefs.py.in:1119 ++#: ../setup/python2/anthyprefs.py.in:1128 ++#: ../setup/python3/anthyprefs.py.in:1121 + msgid "Symbol" + msgstr "" + +-#: ../setup/python2/anthyprefs.py.in:1137 +-#: ../setup/python3/anthyprefs.py.in:1130 ++#: ../setup/python2/anthyprefs.py.in:1139 ++#: ../setup/python3/anthyprefs.py.in:1132 + msgid "Old Character Style" + msgstr "" + +-#: ../setup/python2/anthyprefs.py.in:1147 +-#: ../setup/python3/anthyprefs.py.in:1140 ++#: ../setup/python2/anthyprefs.py.in:1149 ++#: ../setup/python3/anthyprefs.py.in:1142 + msgid "Era" + msgstr "" + +-#: ../setup/python2/anthyprefs.py.in:1157 +-#: ../setup/python3/anthyprefs.py.in:1150 ++#: ../setup/python2/anthyprefs.py.in:1159 ++#: ../setup/python3/anthyprefs.py.in:1152 + msgid "Emoji" + msgstr "" + +@@ -229,276 +229,276 @@ msgstr "" + msgid "ibus is not running." + msgstr "" + +-#: ../setup/python2/main.py:180 ../setup/python3/main.py:183 ++#: ../setup/python2/main.py:181 ../setup/python3/main.py:184 + msgid "Menu label" + msgstr "" + +-#: ../setup/python2/main.py:199 ../setup/python3/main.py:202 ++#: ../setup/python2/main.py:200 ../setup/python3/main.py:203 + msgid "Command" + msgstr "" + +-#: ../setup/python2/main.py:203 ../setup/python3/main.py:206 ++#: ../setup/python2/main.py:204 ../setup/python3/main.py:207 + msgid "Shortcut" + msgstr "捷径" + +-#: ../setup/python2/main.py:248 ../setup/python3/main.py:251 ++#: ../setup/python2/main.py:249 ../setup/python3/main.py:252 + msgid "Description" + msgstr "描述" + + #. Translators: "Embd" is an abbreviation of "embedded". +-#: ../setup/python2/main.py:256 ../setup/python3/main.py:259 ++#: ../setup/python2/main.py:257 ../setup/python3/main.py:260 + msgid "Embd" + msgstr "" + + #. Translators: "Sgl" is an abbreviation of "single". +-#: ../setup/python2/main.py:264 ../setup/python3/main.py:267 ++#: ../setup/python2/main.py:265 ../setup/python3/main.py:268 + msgid "Sgl" + msgstr "" + +-#: ../setup/python2/main.py:439 ../setup/python2/main.py:475 +-#: ../setup/python3/main.py:444 ../setup/python3/main.py:480 ++#: ../setup/python2/main.py:443 ../setup/python2/main.py:479 ++#: ../setup/python3/main.py:448 ../setup/python3/main.py:484 + msgid "Input Chars" + msgstr "" + +-#: ../setup/python2/main.py:441 ../setup/python2/main.py:477 +-#: ../setup/python3/main.py:446 ../setup/python3/main.py:482 ++#: ../setup/python2/main.py:445 ../setup/python2/main.py:481 ++#: ../setup/python3/main.py:450 ../setup/python3/main.py:486 + msgid "Output Chars" + msgstr "" + +-#: ../setup/python2/main.py:523 ../setup/python3/main.py:528 ++#: ../setup/python2/main.py:527 ../setup/python3/main.py:532 + msgid "Input" + msgstr "输入" + +-#: ../setup/python2/main.py:525 ../setup/python3/main.py:530 ++#: ../setup/python2/main.py:529 ../setup/python3/main.py:534 + msgid "Single" + msgstr "" + +-#: ../setup/python2/main.py:527 ../setup/python3/main.py:532 ++#: ../setup/python2/main.py:531 ../setup/python3/main.py:536 + msgid "Left" + msgstr "" + +-#: ../setup/python2/main.py:529 ../setup/python3/main.py:534 ++#: ../setup/python2/main.py:533 ../setup/python3/main.py:538 + msgid "Right" + msgstr "" + +-#: ../setup/python2/main.py:611 ../setup/python3/main.py:616 ++#: ../setup/python2/main.py:615 ../setup/python3/main.py:620 + msgid "Customize Romaji Key Table" + msgstr "" + +-#: ../setup/python2/main.py:612 ../setup/python2/setup.ui.h:53 +-#: ../setup/python3/main.py:617 ../setup/python3/setup.ui.h:53 ++#: ../setup/python2/main.py:616 ../setup/python2/setup.ui.h:54 ++#: ../setup/python3/main.py:621 ../setup/python3/setup.ui.h:54 + msgid "_Romaji Key Table:" + msgstr "" + +-#: ../setup/python2/main.py:613 ../setup/python2/main.py:619 +-#: ../setup/python3/main.py:618 ../setup/python3/main.py:624 ++#: ../setup/python2/main.py:617 ../setup/python2/main.py:623 ++#: ../setup/python3/main.py:622 ../setup/python3/main.py:628 + msgid "_Output Chars" + msgstr "" + +-#: ../setup/python2/main.py:614 ../setup/python2/main.py:1114 +-#: ../setup/python2/main.py:1196 ../setup/python2/setup.ui.h:26 +-#: ../setup/python3/main.py:619 ../setup/python3/main.py:1108 +-#: ../setup/python3/main.py:1190 ../setup/python3/setup.ui.h:26 ++#: ../setup/python2/main.py:618 ../setup/python2/main.py:1118 ++#: ../setup/python2/main.py:1200 ../setup/python2/setup.ui.h:26 ++#: ../setup/python3/main.py:623 ../setup/python3/main.py:1112 ++#: ../setup/python3/main.py:1194 ../setup/python3/setup.ui.h:26 + msgid "Default" + msgstr "" + +-#: ../setup/python2/main.py:617 ../setup/python3/main.py:622 ++#: ../setup/python2/main.py:621 ../setup/python3/main.py:626 + msgid "Customize Kana Key Table" + msgstr "" + +-#: ../setup/python2/main.py:618 ../setup/python2/setup.ui.h:55 +-#: ../setup/python3/main.py:623 ../setup/python3/setup.ui.h:55 ++#: ../setup/python2/main.py:622 ../setup/python2/setup.ui.h:56 ++#: ../setup/python3/main.py:627 ../setup/python3/setup.ui.h:56 + msgid "_Kana Key Table:" + msgstr "" + +-#: ../setup/python2/main.py:620 ../setup/python3/main.py:625 ++#: ../setup/python2/main.py:624 ../setup/python3/main.py:629 + msgid "Japanese Keyboard Layout" + msgstr "" + +-#: ../setup/python2/main.py:621 ../setup/python3/main.py:626 ++#: ../setup/python2/main.py:625 ../setup/python3/main.py:630 + msgid "U.S. Keyboard Layout" + msgstr "" + +-#: ../setup/python2/main.py:624 ../setup/python3/main.py:629 ++#: ../setup/python2/main.py:628 ../setup/python3/main.py:633 + msgid "Customize Thumb Shift Key Table" + msgstr "" + +-#: ../setup/python2/main.py:625 ../setup/python3/main.py:630 ++#: ../setup/python2/main.py:629 ../setup/python3/main.py:634 + msgid "_Thumb Shift Key Table:" + msgstr "" + +-#: ../setup/python2/main.py:626 ../setup/python3/main.py:631 ++#: ../setup/python2/main.py:630 ../setup/python3/main.py:635 + msgid "Single _Output Chars" + msgstr "" + +-#: ../setup/python2/main.py:627 ../setup/python3/main.py:632 ++#: ../setup/python2/main.py:631 ../setup/python3/main.py:636 + msgid "Base" + msgstr "" + +-#: ../setup/python2/main.py:628 ../setup/python3/main.py:633 ++#: ../setup/python2/main.py:632 ../setup/python3/main.py:637 + msgid "NICOLA-J key extension" + msgstr "" + +-#: ../setup/python2/main.py:629 ../setup/python3/main.py:634 ++#: ../setup/python2/main.py:633 ../setup/python3/main.py:638 + msgid "NICOLA-A key extension" + msgstr "" + +-#: ../setup/python2/main.py:630 ../setup/python3/main.py:635 ++#: ../setup/python2/main.py:634 ../setup/python3/main.py:639 + msgid "NICOLA-F key extension" + msgstr "" + +-#: ../setup/python2/main.py:631 ../setup/python3/main.py:636 ++#: ../setup/python2/main.py:635 ../setup/python3/main.py:640 + msgid "FMV KB231-J key extension" + msgstr "" + +-#: ../setup/python2/main.py:632 ../setup/python3/main.py:637 ++#: ../setup/python2/main.py:636 ../setup/python3/main.py:641 + msgid "FMV KB231-A key extension" + msgstr "" + +-#: ../setup/python2/main.py:633 ../setup/python3/main.py:638 ++#: ../setup/python2/main.py:637 ../setup/python3/main.py:642 + msgid "FMV KB231-F key extension" + msgstr "" + +-#: ../setup/python2/main.py:634 ../setup/python3/main.py:639 ++#: ../setup/python2/main.py:638 ../setup/python3/main.py:643 + msgid "FMV KB611-J key extension" + msgstr "" + +-#: ../setup/python2/main.py:635 ../setup/python3/main.py:640 ++#: ../setup/python2/main.py:639 ../setup/python3/main.py:644 + msgid "FMV KB611-A key extension" + msgstr "" + +-#: ../setup/python2/main.py:636 ../setup/python3/main.py:641 ++#: ../setup/python2/main.py:640 ../setup/python3/main.py:645 + msgid "FMV KB611-F key extension" + msgstr "" + +-#: ../setup/python2/main.py:780 ../setup/python3/main.py:785 ++#: ../setup/python2/main.py:784 ../setup/python3/main.py:789 + msgid "Your choosed file has already been added: " + msgstr "" + +-#: ../setup/python2/main.py:784 ../setup/python3/main.py:789 ++#: ../setup/python2/main.py:788 ../setup/python3/main.py:793 + msgid "The file you have chosen does not exist: " + msgstr "" + +-#: ../setup/python2/main.py:788 ../setup/python3/main.py:793 ++#: ../setup/python2/main.py:792 ../setup/python3/main.py:797 + msgid "Your choosed file is a directory: " + msgstr "" + +-#: ../setup/python2/main.py:792 ../setup/python3/main.py:797 ++#: ../setup/python2/main.py:796 ../setup/python3/main.py:801 + msgid "You cannot add dictionaries in the anthy private directory: " + msgstr "" + +-#: ../setup/python2/main.py:799 ../setup/python3/main.py:804 ++#: ../setup/python2/main.py:803 ../setup/python3/main.py:808 + msgid "Your file path is not good: " + msgstr "" + +-#: ../setup/python2/main.py:978 ../setup/python3/main.py:981 ++#: ../setup/python2/main.py:982 ../setup/python3/main.py:985 + msgid "The engine xml file does not exist: " + msgstr "" + +-#: ../setup/python2/main.py:1094 ../setup/python3/main.py:1088 ++#: ../setup/python2/main.py:1098 ../setup/python3/main.py:1092 + msgid "" + "Anthy keyboard layout is changed. Please restart ibus to reload the layout." + msgstr "" + +-#: ../setup/python2/main.py:1157 ../setup/python3/main.py:1151 ++#: ../setup/python2/main.py:1161 ../setup/python3/main.py:1155 + msgid "Confirmation" + msgstr "" + +-#: ../setup/python2/main.py:1159 ../setup/python3/main.py:1153 ++#: ../setup/python2/main.py:1163 ../setup/python3/main.py:1157 + msgid "You are about to close the setup dialog, is that OK?" + msgstr "" + +-#: ../setup/python2/main.py:1174 ../setup/python3/main.py:1168 ++#: ../setup/python2/main.py:1178 ../setup/python3/main.py:1172 + msgid "Notice!" + msgstr "" + +-#: ../setup/python2/main.py:1176 ../setup/python3/main.py:1170 ++#: ../setup/python2/main.py:1180 ../setup/python3/main.py:1174 + msgid "" + "You are about to close the setup dialog without saving your changes, is that " + "OK?" + msgstr "" + +-#: ../setup/python2/main.py:1297 ../setup/python3/main.py:1291 ++#: ../setup/python2/main.py:1301 ../setup/python3/main.py:1295 + msgid "Please specify Input Chars" + msgstr "" + +-#: ../setup/python2/main.py:1300 ../setup/python3/main.py:1294 ++#: ../setup/python2/main.py:1304 ../setup/python3/main.py:1298 + msgid "Please specify Output Chars" + msgstr "" + +-#: ../setup/python2/main.py:1303 ../setup/python3/main.py:1297 ++#: ../setup/python2/main.py:1307 ../setup/python3/main.py:1301 + msgid "Please specify Left Thumb Shift Chars" + msgstr "" + +-#: ../setup/python2/main.py:1306 ../setup/python3/main.py:1300 ++#: ../setup/python2/main.py:1310 ../setup/python3/main.py:1304 + msgid "Please specify Right Thumb Shift Chars" + msgstr "" + +-#: ../setup/python2/main.py:1319 ../setup/python2/main.py:1363 +-#: ../setup/python3/main.py:1313 ../setup/python3/main.py:1357 ++#: ../setup/python2/main.py:1323 ../setup/python2/main.py:1367 ++#: ../setup/python3/main.py:1317 ../setup/python3/main.py:1361 + msgid "Your custom key is not assigned in any sections. Maybe a bug." + msgstr "" + +-#: ../setup/python2/main.py:1429 ../setup/python2/main.py:1516 +-#: ../setup/python3/main.py:1423 ../setup/python3/main.py:1510 ++#: ../setup/python2/main.py:1433 ../setup/python2/main.py:1520 ++#: ../setup/python3/main.py:1427 ../setup/python3/main.py:1514 + msgid "Your file does not exist: " + msgstr "" + +-#: ../setup/python2/main.py:1439 ../setup/python3/main.py:1433 ++#: ../setup/python2/main.py:1443 ../setup/python3/main.py:1437 + msgid "Open Dictionary File" + msgstr "" + +-#: ../setup/python2/main.py:1442 ../setup/python2/main.py:1448 +-#: ../setup/python2/setup.ui.h:89 ../setup/python3/main.py:1436 +-#: ../setup/python3/main.py:1442 ../setup/python3/setup.ui.h:89 ++#: ../setup/python2/main.py:1446 ../setup/python2/main.py:1452 ++#: ../setup/python2/setup.ui.h:90 ../setup/python3/main.py:1440 ++#: ../setup/python3/main.py:1446 ../setup/python3/setup.ui.h:90 + msgid "_Cancel" + msgstr "取消(_C)" + +-#: ../setup/python2/main.py:1443 ../setup/python3/main.py:1437 ++#: ../setup/python2/main.py:1447 ../setup/python3/main.py:1441 + msgid "_Open" + msgstr "打开(_O)" + +-#: ../setup/python2/main.py:1446 ../setup/python3/main.py:1440 ++#: ../setup/python2/main.py:1450 ../setup/python3/main.py:1444 + msgid "Edit Dictionary File" + msgstr "" + +-#: ../setup/python2/main.py:1449 ../setup/python2/main.py:1544 +-#: ../setup/python2/setup.ui.h:90 ../setup/python3/main.py:1443 +-#: ../setup/python3/main.py:1538 ../setup/python3/setup.ui.h:90 ++#: ../setup/python2/main.py:1453 ../setup/python2/main.py:1548 ++#: ../setup/python2/setup.ui.h:91 ../setup/python3/main.py:1447 ++#: ../setup/python3/main.py:1542 ../setup/python3/setup.ui.h:91 + msgid "_OK" + msgstr "确定(_O)" + +-#: ../setup/python2/main.py:1460 ../setup/python3/main.py:1454 ++#: ../setup/python2/main.py:1464 ../setup/python3/main.py:1458 + msgid "Your choosed file is not correct." + msgstr "" + +-#: ../setup/python2/main.py:1489 ../setup/python3/main.py:1483 ++#: ../setup/python2/main.py:1493 ../setup/python3/main.py:1487 + msgid "You cannot delete the system dictionary." + msgstr "" + +-#: ../setup/python2/main.py:1512 ../setup/python3/main.py:1506 ++#: ../setup/python2/main.py:1516 ../setup/python3/main.py:1510 + msgid "Your file is not good." + msgstr "" + +-#: ../setup/python2/main.py:1542 ../setup/python3/main.py:1536 ++#: ../setup/python2/main.py:1546 ../setup/python3/main.py:1540 + msgid "View Dictionary File" + msgstr "" + +-#: ../setup/python2/main.py:1694 ../setup/python3/main.py:1688 ++#: ../setup/python2/main.py:1698 ../setup/python3/main.py:1692 + msgid "Please press a key (or a key combination)" + msgstr "" + +-#: ../setup/python2/main.py:1695 ../setup/python3/main.py:1689 ++#: ../setup/python2/main.py:1699 ../setup/python3/main.py:1693 + msgid "The dialog will be closed when the key is released" + msgstr "" + +-#: ../setup/python2/main.py:1715 ../setup/python2/main.py:1736 +-#: ../setup/python3/main.py:1709 ../setup/python3/main.py:1730 ++#: ../setup/python2/main.py:1719 ../setup/python2/main.py:1740 ++#: ../setup/python3/main.py:1713 ../setup/python3/main.py:1734 + msgid "Invalid keysym" + msgstr "" + +-#: ../setup/python2/main.py:1716 ../setup/python2/main.py:1737 +-#: ../setup/python3/main.py:1710 ../setup/python3/main.py:1731 ++#: ../setup/python2/main.py:1720 ../setup/python2/main.py:1741 ++#: ../setup/python3/main.py:1714 ../setup/python3/main.py:1735 + msgid "This keysym is not valid" + msgstr "" + +@@ -583,298 +583,303 @@ msgid "Initial Setting" + msgstr "" + + #: ../setup/python2/setup.ui.h:34 ../setup/python3/setup.ui.h:34 ++#, fuzzy ++msgid "_Show input mode icon" ++msgstr "切换输入模式" ++ ++#: ../setup/python2/setup.ui.h:35 ../setup/python3/setup.ui.h:35 + msgid "Menu Visibility on Status Icon" + msgstr "" + +-#: ../setup/python2/setup.ui.h:36 ../setup/python3/setup.ui.h:36 ++#: ../setup/python2/setup.ui.h:37 ../setup/python3/setup.ui.h:37 + msgid "_Period Style:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:37 ../setup/python3/setup.ui.h:37 ++#: ../setup/python2/setup.ui.h:38 ../setup/python3/setup.ui.h:38 + msgid "Symbo_l Style:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:38 ../setup/python3/setup.ui.h:38 ++#: ../setup/python2/setup.ui.h:39 ../setup/python3/setup.ui.h:39 + msgid "Numpad _Key Type:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:39 ../setup/python3/setup.ui.h:39 ++#: ../setup/python2/setup.ui.h:40 ../setup/python3/setup.ui.h:40 + msgid "_Behavior on Period:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:40 ../setup/python3/setup.ui.h:40 ++#: ../setup/python2/setup.ui.h:41 ../setup/python3/setup.ui.h:41 + msgid "Behavior on _Focus Out:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:41 ../setup/python3/setup.ui.h:41 ++#: ../setup/python2/setup.ui.h:42 ../setup/python3/setup.ui.h:42 + msgid "Behavior" + msgstr "" + +-#: ../setup/python2/setup.ui.h:42 ../setup/python3/setup.ui.h:42 ++#: ../setup/python2/setup.ui.h:43 ../setup/python3/setup.ui.h:43 + msgid "Candidate _Window Page Size:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:43 ../setup/python3/setup.ui.h:43 ++#: ../setup/python2/setup.ui.h:44 ../setup/python3/setup.ui.h:44 + msgid "Convert _symbols with the one column width" + msgstr "" + +-#: ../setup/python2/setup.ui.h:44 ../setup/python3/setup.ui.h:44 ++#: ../setup/python2/setup.ui.h:45 ../setup/python3/setup.ui.h:45 + msgid "Convert _numbers with the one column width" + msgstr "" + +-#: ../setup/python2/setup.ui.h:45 ../setup/python3/setup.ui.h:45 ++#: ../setup/python2/setup.ui.h:46 ../setup/python3/setup.ui.h:46 + msgid "Con_vert spaces with the one column width" + msgstr "" + +-#: ../setup/python2/setup.ui.h:46 ../setup/python3/setup.ui.h:46 ++#: ../setup/python2/setup.ui.h:47 ../setup/python3/setup.ui.h:47 + msgid "" + "Swi_tch “Hiragana” and “Latin” with Shift key and Hiragana–Katakana key in " + "preedit" + msgstr "" + +-#: ../setup/python2/setup.ui.h:47 ../setup/python3/setup.ui.h:47 ++#: ../setup/python2/setup.ui.h:48 ../setup/python3/setup.ui.h:48 + msgid "Other" + msgstr "" + +-#: ../setup/python2/setup.ui.h:48 ../setup/python3/setup.ui.h:48 ++#: ../setup/python2/setup.ui.h:49 ../setup/python3/setup.ui.h:49 + msgid "Conversion" + msgstr "" + +-#: ../setup/python2/setup.ui.h:49 ../setup/python3/setup.ui.h:49 ++#: ../setup/python2/setup.ui.h:50 ../setup/python3/setup.ui.h:50 + msgid "_Shortcut Type:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:50 ../setup/python3/setup.ui.h:50 ++#: ../setup/python2/setup.ui.h:51 ../setup/python3/setup.ui.h:51 + msgid "De_fault" + msgstr "" + +-#: ../setup/python2/setup.ui.h:51 ../setup/python3/setup.ui.h:51 ++#: ../setup/python2/setup.ui.h:52 ../setup/python3/setup.ui.h:52 + msgid "_Edit" + msgstr "编辑(_E)" + +-#: ../setup/python2/setup.ui.h:52 ../setup/python3/setup.ui.h:52 ++#: ../setup/python2/setup.ui.h:53 ../setup/python3/setup.ui.h:53 + msgid "Key Binding" + msgstr "" + +-#: ../setup/python2/setup.ui.h:54 ../setup/python3/setup.ui.h:54 ++#: ../setup/python2/setup.ui.h:55 ../setup/python3/setup.ui.h:55 + msgid "Romaji" + msgstr "" + +-#: ../setup/python2/setup.ui.h:56 ../setup/python3/setup.ui.h:56 ++#: ../setup/python2/setup.ui.h:57 ../setup/python3/setup.ui.h:57 + msgid "Kana" + msgstr "" + +-#: ../setup/python2/setup.ui.h:57 ../setup/python3/setup.ui.h:57 ++#: ../setup/python2/setup.ui.h:58 ../setup/python3/setup.ui.h:58 + msgid "Keyboad _layout:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:58 ../setup/python3/setup.ui.h:58 ++#: ../setup/python2/setup.ui.h:59 ../setup/python3/setup.ui.h:59 + msgid "Keyboard layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:59 ../setup/python3/setup.ui.h:59 ++#: ../setup/python2/setup.ui.h:60 ../setup/python3/setup.ui.h:60 + msgid "Typing Method" + msgstr "" + +-#: ../setup/python2/setup.ui.h:60 ../setup/python3/setup.ui.h:60 ++#: ../setup/python2/setup.ui.h:61 ../setup/python3/setup.ui.h:61 + msgid "_Left Thumb Shift Key:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:61 ../setup/python3/setup.ui.h:61 ++#: ../setup/python2/setup.ui.h:62 ../setup/python3/setup.ui.h:62 + msgid "Right _Thumb Shift Key:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:62 ../setup/python3/setup.ui.h:62 ++#: ../setup/python2/setup.ui.h:63 ../setup/python3/setup.ui.h:63 + msgid "Adjust _input method layout to system keyboard layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:63 ../setup/python3/setup.ui.h:63 ++#: ../setup/python2/setup.ui.h:64 ../setup/python3/setup.ui.h:64 + msgid "Adjust IM layout to XKB layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:64 ../setup/python3/setup.ui.h:64 ++#: ../setup/python2/setup.ui.h:65 ../setup/python3/setup.ui.h:65 + msgid "Input _Method Layout:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:65 ../setup/python3/setup.ui.h:65 ++#: ../setup/python2/setup.ui.h:66 ../setup/python3/setup.ui.h:66 + msgid "Restart IBus when you change the keyboard layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:66 ../setup/python3/setup.ui.h:66 ++#: ../setup/python2/setup.ui.h:67 ../setup/python3/setup.ui.h:67 + msgid "Restart IBus when you change XKB" + msgstr "" + +-#: ../setup/python2/setup.ui.h:67 ../setup/python3/setup.ui.h:67 ++#: ../setup/python2/setup.ui.h:68 ../setup/python3/setup.ui.h:68 + msgid "_Additional Key Arrangement:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:68 ../setup/python3/setup.ui.h:68 ++#: ../setup/python2/setup.ui.h:69 ../setup/python3/setup.ui.h:69 + msgid "" + "'~', '『', '¢', '£' and so on can be output with " + "Thumb Shift key" + msgstr "" + +-#: ../setup/python2/setup.ui.h:69 ../setup/python3/setup.ui.h:69 ++#: ../setup/python2/setup.ui.h:70 ../setup/python3/setup.ui.h:70 + msgid "" + "You do not have to reconfigure the system keyboard layout for \"Additional " + "Key Arrangement\" since this option changes input method layout only in case " + "input method is turned on." + msgstr "" + +-#: ../setup/python2/setup.ui.h:70 ../setup/python3/setup.ui.h:70 ++#: ../setup/python2/setup.ui.h:71 ../setup/python3/setup.ui.h:71 + msgid "" + "You do not have to reconfigure XKB since this option changes IM layout only " + "with IM on." + msgstr "" + +-#: ../setup/python2/setup.ui.h:71 ../setup/python3/setup.ui.h:71 ++#: ../setup/python2/setup.ui.h:72 ../setup/python3/setup.ui.h:72 + msgid "_Enable semi-voiced sound mark with Shift key" + msgstr "" + +-#: ../setup/python2/setup.ui.h:72 ../setup/python3/setup.ui.h:72 ++#: ../setup/python2/setup.ui.h:73 ../setup/python3/setup.ui.h:73 + msgid "Seion + Shift can output Handakuon" + msgstr "" + +-#: ../setup/python2/setup.ui.h:73 ../setup/python3/setup.ui.h:73 ++#: ../setup/python2/setup.ui.h:74 ../setup/python3/setup.ui.h:74 + msgid "Thumb _Shift Key Table:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:74 ../setup/python3/setup.ui.h:74 ++#: ../setup/python2/setup.ui.h:75 ../setup/python3/setup.ui.h:75 + msgid "Thumb Shift Layout" + msgstr "" + +-#: ../setup/python2/setup.ui.h:75 ../setup/python3/setup.ui.h:75 ++#: ../setup/python2/setup.ui.h:76 ../setup/python3/setup.ui.h:76 + msgid "Thumb Shift" + msgstr "" + +-#: ../setup/python2/setup.ui.h:76 ../setup/python3/setup.ui.h:76 ++#: ../setup/python2/setup.ui.h:77 ../setup/python3/setup.ui.h:77 + msgid "_Edit Dictionary Command:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:77 ../setup/python3/setup.ui.h:77 ++#: ../setup/python2/setup.ui.h:78 ../setup/python3/setup.ui.h:78 + msgid "_Add Word Command:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:78 ../setup/python3/setup.ui.h:78 ++#: ../setup/python2/setup.ui.h:79 ../setup/python3/setup.ui.h:79 + msgid "Default Dictionary Configuration" + msgstr "" + +-#: ../setup/python2/setup.ui.h:79 ../setup/python3/setup.ui.h:79 ++#: ../setup/python2/setup.ui.h:80 ../setup/python3/setup.ui.h:80 + msgid "_View" + msgstr "" + +-#: ../setup/python2/setup.ui.h:80 ../setup/python3/setup.ui.h:80 ++#: ../setup/python2/setup.ui.h:81 ../setup/python3/setup.ui.h:81 + msgid "_Add" + msgstr "添加(_A)" + +-#: ../setup/python2/setup.ui.h:81 ../setup/python3/setup.ui.h:81 ++#: ../setup/python2/setup.ui.h:82 ../setup/python3/setup.ui.h:82 + msgid "_Delete" + msgstr "删除(_D)" + +-#: ../setup/python2/setup.ui.h:82 ../setup/python3/setup.ui.h:82 ++#: ../setup/python2/setup.ui.h:83 ../setup/python3/setup.ui.h:83 + msgid "_Up" + msgstr "向上(_U)" + +-#: ../setup/python2/setup.ui.h:83 ../setup/python3/setup.ui.h:83 ++#: ../setup/python2/setup.ui.h:84 ../setup/python3/setup.ui.h:84 + msgid "You can change the order on language bar" + msgstr "" + +-#: ../setup/python2/setup.ui.h:84 ../setup/python3/setup.ui.h:84 ++#: ../setup/python2/setup.ui.h:85 ../setup/python3/setup.ui.h:85 + msgid "_Down" + msgstr "向下(_D)" + +-#: ../setup/python2/setup.ui.h:85 ../setup/python3/setup.ui.h:85 ++#: ../setup/python2/setup.ui.h:86 ../setup/python3/setup.ui.h:86 + msgid "Extended Dictionaries" + msgstr "" + +-#: ../setup/python2/setup.ui.h:86 ../setup/python3/setup.ui.h:86 ++#: ../setup/python2/setup.ui.h:87 ../setup/python3/setup.ui.h:87 + msgid "Dictionary" + msgstr "" + +-#: ../setup/python2/setup.ui.h:87 ../setup/python3/setup.ui.h:87 ++#: ../setup/python2/setup.ui.h:88 ../setup/python3/setup.ui.h:88 + msgid "About" + msgstr "" + +-#: ../setup/python2/setup.ui.h:88 ../setup/python3/setup.ui.h:88 ++#: ../setup/python2/setup.ui.h:89 ../setup/python3/setup.ui.h:89 + msgid "_Apply" + msgstr "应用(_A)" + +-#: ../setup/python2/setup.ui.h:91 ../setup/python3/setup.ui.h:91 ++#: ../setup/python2/setup.ui.h:92 ../setup/python3/setup.ui.h:92 + msgid "Edit Shortcut" + msgstr "" + +-#: ../setup/python2/setup.ui.h:92 ../setup/python3/setup.ui.h:92 ++#: ../setup/python2/setup.ui.h:93 ../setup/python3/setup.ui.h:93 + msgid "Key Code:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:93 ../setup/python3/setup.ui.h:93 ++#: ../setup/python2/setup.ui.h:94 ../setup/python3/setup.ui.h:94 + msgid "Modifier:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:94 ../setup/python3/setup.ui.h:94 ++#: ../setup/python2/setup.ui.h:95 ../setup/python3/setup.ui.h:95 + msgid "A_lternate" + msgstr "" + +-#: ../setup/python2/setup.ui.h:95 ../setup/python3/setup.ui.h:95 ++#: ../setup/python2/setup.ui.h:96 ../setup/python3/setup.ui.h:96 + msgid "Co_ntrol" + msgstr "" + +-#: ../setup/python2/setup.ui.h:96 ../setup/python3/setup.ui.h:96 ++#: ../setup/python2/setup.ui.h:97 ../setup/python3/setup.ui.h:97 + msgid "_Shift" + msgstr "" + +-#: ../setup/python2/setup.ui.h:97 ../setup/python3/setup.ui.h:97 ++#: ../setup/python2/setup.ui.h:98 ../setup/python3/setup.ui.h:98 + msgid "_Refresh" + msgstr "刷新(_R)" + +-#: ../setup/python2/setup.ui.h:98 ../setup/python3/setup.ui.h:98 ++#: ../setup/python2/setup.ui.h:99 ../setup/python3/setup.ui.h:99 + msgid "_Input Characters" + msgstr "" + +-#: ../setup/python2/setup.ui.h:99 ../setup/python3/setup.ui.h:99 ++#: ../setup/python2/setup.ui.h:100 ../setup/python3/setup.ui.h:100 + msgid "_Output Characters" + msgstr "" + +-#: ../setup/python2/setup.ui.h:100 ../setup/python3/setup.ui.h:100 ++#: ../setup/python2/setup.ui.h:101 ../setup/python3/setup.ui.h:101 + msgid "_Left Thumb Shift" + msgstr "" + +-#: ../setup/python2/setup.ui.h:101 ../setup/python3/setup.ui.h:101 ++#: ../setup/python2/setup.ui.h:102 ../setup/python3/setup.ui.h:102 + msgid "_Right Thumb Shift" + msgstr "" + +-#: ../setup/python2/setup.ui.h:102 ../setup/python3/setup.ui.h:102 ++#: ../setup/python2/setup.ui.h:103 ../setup/python3/setup.ui.h:103 + msgid "_Remove" + msgstr "删除(_R)" + +-#: ../setup/python2/setup.ui.h:103 ../setup/python3/setup.ui.h:103 ++#: ../setup/python2/setup.ui.h:104 ../setup/python3/setup.ui.h:104 + msgid "_Close" + msgstr "关闭(_C)" + +-#: ../setup/python2/setup.ui.h:104 ../setup/python3/setup.ui.h:104 ++#: ../setup/python2/setup.ui.h:105 ../setup/python3/setup.ui.h:105 + msgid "_Short Label:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:105 ../setup/python3/setup.ui.h:105 ++#: ../setup/python2/setup.ui.h:106 ../setup/python3/setup.ui.h:106 + msgid "_Description:" + msgstr "" + +-#: ../setup/python2/setup.ui.h:106 ../setup/python3/setup.ui.h:106 ++#: ../setup/python2/setup.ui.h:107 ../setup/python3/setup.ui.h:107 + msgid "_Use your dictionary alone with switching dictionaries" + msgstr "" + +-#: ../setup/python2/setup.ui.h:107 ../setup/python3/setup.ui.h:107 ++#: ../setup/python2/setup.ui.h:108 ../setup/python3/setup.ui.h:108 + msgid "_Embed your dictionary in the system dictionary" + msgstr "" + +-#: ../setup/python2/setup.ui.h:108 ../setup/python3/setup.ui.h:108 ++#: ../setup/python2/setup.ui.h:109 ../setup/python3/setup.ui.h:109 + msgid "Enable the _reverse conversion" + msgstr "" + +-#: ../setup/python2/setup.ui.h:109 ../setup/python3/setup.ui.h:109 ++#: ../setup/python2/setup.ui.h:110 ../setup/python3/setup.ui.h:110 + msgid "The Anthy engine for the IBus input platform" + msgstr "" + +-#: ../setup/python2/setup.ui.h:110 ../setup/python3/setup.ui.h:110 ++#: ../setup/python2/setup.ui.h:111 ../setup/python3/setup.ui.h:111 + msgid "translator_credits" + msgstr "" +-- +1.8.5.3 + +From e388a61d0d9fd676651b6042dc32c59c7e554e40 Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 21 Aug 2014 19:31:44 +0900 +Subject: [PATCH 3/4] Fix to unref pixbuf when propery icon is unrefed. + +--- + engine/python2/engine.py | 1 + + engine/python2/propertyicon.py | 6 ++++++ + engine/python3/engine.py | 1 + + engine/python3/propertyicon.py | 6 ++++++ + 4 files changed, 14 insertions(+) + +diff --git a/engine/python2/engine.py b/engine/python2/engine.py +index 3339eda..5995375 100644 +--- a/engine/python2/engine.py ++++ b/engine/python2/engine.py +@@ -1104,6 +1104,7 @@ class Engine(IBus.EngineSimple): + # It seems do_destroy() is called when launch_engine() is called. + #self.__remove_dict_files() + # It seems super.destroy() does not unref the engine. ++ self.__input_mode_icon.clear() + self.__input_mode_icon = None + + def __join_all_segments(self): +diff --git a/engine/python2/propertyicon.py b/engine/python2/propertyicon.py +index fa5f34f..437e94c 100644 +--- a/engine/python2/propertyicon.py ++++ b/engine/python2/propertyicon.py +@@ -76,6 +76,12 @@ class PropertyIcon(Gtk.StatusIcon): + self.__xkb_icon_pixbufs[symbol] = pixbuf + return pixbuf + ++ def clear(self): ++ self.set_from_icon_name('') ++ self.set_visible(False) ++ self.__xkb_icon_pixbufs = {} ++ self.__xkb_icon_rgba = None ++ + def set_from_symbol(self, symbol): + pixbuf = self.__create_icon_pixbuf_with_string(symbol) + self.set_from_pixbuf(pixbuf) +diff --git a/engine/python3/engine.py b/engine/python3/engine.py +index ab9e8fa..73de005 100644 +--- a/engine/python3/engine.py ++++ b/engine/python3/engine.py +@@ -1099,6 +1099,7 @@ class Engine(IBus.EngineSimple): + # It seems do_destroy() is called when launch_engine() is called. + #self.__remove_dict_files() + # It seems super.destroy() does not unref the engine. ++ self.__input_mode_icon.clear() + self.__input_mode_icon = None + + def __join_all_segments(self): +diff --git a/engine/python3/propertyicon.py b/engine/python3/propertyicon.py +index fa5f34f..437e94c 100644 +--- a/engine/python3/propertyicon.py ++++ b/engine/python3/propertyicon.py +@@ -76,6 +76,12 @@ class PropertyIcon(Gtk.StatusIcon): + self.__xkb_icon_pixbufs[symbol] = pixbuf + return pixbuf + ++ def clear(self): ++ self.set_from_icon_name('') ++ self.set_visible(False) ++ self.__xkb_icon_pixbufs = {} ++ self.__xkb_icon_rgba = None ++ + def set_from_symbol(self, symbol): + pixbuf = self.__create_icon_pixbuf_with_string(symbol) + self.set_from_pixbuf(pixbuf) +-- +1.8.5.3 + +From 41ee4feea5f4341e106ed6d258a213692cdd0bca Mon Sep 17 00:00:00 2001 +From: fujiwarat +Date: Thu, 21 Aug 2014 19:31:50 +0900 +Subject: [PATCH 4/4] Fix None object has clear() in input mode icon. + (#1097364) + +--- + engine/python2/engine.py | 3 ++- + engine/python3/engine.py | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/engine/python2/engine.py b/engine/python2/engine.py +index 5995375..cc37bb7 100644 +--- a/engine/python2/engine.py ++++ b/engine/python2/engine.py +@@ -1104,7 +1104,8 @@ class Engine(IBus.EngineSimple): + # It seems do_destroy() is called when launch_engine() is called. + #self.__remove_dict_files() + # It seems super.destroy() does not unref the engine. +- self.__input_mode_icon.clear() ++ if self.__input_mode_icon != None: ++ self.__input_mode_icon.clear() + self.__input_mode_icon = None + + def __join_all_segments(self): +diff --git a/engine/python3/engine.py b/engine/python3/engine.py +index 73de005..e97a98b 100644 +--- a/engine/python3/engine.py ++++ b/engine/python3/engine.py +@@ -1099,7 +1099,8 @@ class Engine(IBus.EngineSimple): + # It seems do_destroy() is called when launch_engine() is called. + #self.__remove_dict_files() + # It seems super.destroy() does not unref the engine. +- self.__input_mode_icon.clear() ++ if self.__input_mode_icon != None: ++ self.__input_mode_icon.clear() + self.__input_mode_icon = None + + def __join_all_segments(self): +-- +1.8.5.3 + diff --git a/ibus-anthy.spec b/ibus-anthy.spec index e6b83a8..697e77b 100644 --- a/ibus-anthy.spec +++ b/ibus-anthy.spec @@ -13,8 +13,8 @@ %global __python %{__python3} Name: ibus-anthy -Version: 1.5.5 -Release: 9%{?dist} +Version: 1.5.6 +Release: 1%{?dist} Summary: The Anthy engine for IBus input platform License: GPLv2+ Group: System Environment/Libraries @@ -24,7 +24,8 @@ Source0: %{name}-%{version}.tar.gz # Upstreamed patches. # Patch0: %%{name}-HEAD.patch -Patch0: %{name}-HEAD.patch +# Add an input mode icon until ibus-ui-gtk3 is fixed. +Patch1: %%{name}-xx-input-mode.patch BuildRequires: anthy-devel BuildRequires: desktop-file-utils @@ -81,7 +82,7 @@ for developers. %prep %setup -q # %%patch0 -p1 -%patch0 -p1 +%patch1 -p1 -b .input-mode %build autoreconf @@ -157,6 +158,10 @@ touch --no-create %{_datadir}/icons/hicolor || : %{_libdir}/libanthygobject-%{sub_version}.so %changelog +* Tue Sep 16 2014 Takao Fujiwara - 1.5.6-1 +- Bumped to 1.5.6 +- Added ibus-anthy-xx-input-mode.patch from ibus-anthy-HEAD.patch. + * Sat Aug 16 2014 Fedora Release Engineering - 1.5.5-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild diff --git a/sources b/sources index 8cf9c6e..91def0f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -0d21a3e24cfd7be22521475a63392276 ibus-anthy-1.5.5.tar.gz +240d049304172f86473c73784fbe577a ibus-anthy-1.5.6.tar.gz