らんだむな記憶

blogというものを体験してみようか!的なー

ibusの設定

コンソールから「ibusの設定」を起動すると変なエラーが出ていることに気付いた。

$ ibus-setup 
Traceback (most recent call last):
  File "/usr/share/ibus/setup/main.py", line 330, in __button_engine_add_cb
    dialog.set_engines(self.__engines)
  File "/usr/share/ibus/setup/enginedialog.py", line 335, in set_engines
    untrans = IBus.get_untranslated_language_name(e.get_language())
  File "/usr/lib/python2.7/dist-packages/gi/module.py", line 320, in __getattr__
    return getattr(self._introspection_module, name)
  File "/usr/lib/python2.7/dist-packages/gi/module.py", line 139, in __getattr__
    self.__name__, name))
AttributeError: 'gi.repository.IBus' object has no attribute 'get_untranslated_language_name'

あぁ... ダメなにおいがする...。
/usr/share/ibus/setup/enginedialog.py を開いて335行目付近を調べる。

    def set_engines(self, engines):
        self.__engines_for_lang = {}
        self.__untrans_for_lang = {}
        for e in engines:
            l = IBus.get_language_name(e.get_language())
            if l == None:
                l = ''
            if l not in self.__engines_for_lang:
                self.__engines_for_lang[l] = []
            i18n.init_textdomain(e.get_textdomain())
            self.__engines_for_lang[l].append(e)

            # Retrieve Untranslated language names.
            untrans = IBus.get_untranslated_language_name(e.get_language()) # ★★★
            if untrans == None:
                untrans = ''
            self.__untrans_for_lang[l] = untrans

★をつけた場所を以下のようにすれば、この箇所でのエラーはとりあえずなくなる。

            untrans = None