[Pkg-ime-devel] Bug#758385: ibus: Cannot choose any input method on ibus-setup

Kunihiko Imai bak at d2.dion.ne.jp
Sun Aug 24 03:30:53 UTC 2014


Hi,

Ok, ibus-setup cannot run under C locale, I understand.

On Aug 23, 2014 at 15:08, Osamu Aoki wrote:

 >> 2. run "ibus-setup" on a gnome-terminal.
 >>
 >>        $ LANG=C ibus-setup

This 'LANG=C' is for getting dialog messages in English.
This C locale setting is not a main issue.


Then reproducing procedure with English messages:

0. Assume the user is not an American English speaker, for example,
    is a British English speaker.

1. run "dpkg-reconfigure locales" and
	- deselect en_US.UTF-8 locale.
	- select en_GB.UTF-8 locale.

2. run "ibus-setup" on a gnome-terminal.

	$ LANG=en_GB.UTF-8 ibus-setup

3. click "Input Method" tab

4. click "Add" button

5. "Select an Input method" dialog appears with no list, and error
message on gnome-terminal as follows:

Traceback (most recent call last):
   File "/usr/share/ibus/setup/main.py", line 322, in __button_engine_add_cb
     dialog.set_engines(self.__engines)
   File "/usr/share/ibus/setup/enginedialog.py", line 327, in set_engines
     locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
   File "/usr/lib/python3.4/locale.py", line 592, in setlocale
     return _setlocale(category, locale)
locale.Error: unsupported locale setting


Another procedure with Japanese messages:

1. run "dpkg-reconfigure locales" and
	- deselect en_US.UTF-8 locale.
	- select ja_JP.UTF-8 locale.

2. run "ibus-setup" on a gnome-terminal.

	$ LANG=ja_JP.UTF-8 ibus-setup

3.... same as previous case, but messages are Japanese.


Are these special cases?


The cause is clear.  ibus-setup requires en_US.UTF-8 locale database.

Do all debian users generate en_US.UTF-8 locale database?
Does debian packaging system generate it automatically?


To solve this bug in Debian layer, I think,

o Describe "require to generate en_US.UTF-8 locale database"
   in README.Debian

o Or guarantee to generate en_US.UTF-8 locale database
   with packaging system

o Or patch setup/enginedialog.py:

--- setup/enginedialog.py.orig	2014-08-23 18:06:10.982463613 +0900
+++ setup/enginedialog.py	2014-08-23 18:06:28.226422031 +0900
@@ -324,7 +324,7 @@

              # Retrieve Untranslated language names.
              backup_locale = locale.setlocale(locale.LC_ALL, None)
-            locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
+            locale.setlocale(locale.LC_ALL, 'C.UTF-8')
              untrans = IBus.get_language_name(e.get_language())
              locale.setlocale(locale.LC_ALL, backup_locale)
              if untrans == None:

Debian supports C.UTF-8 locale. But some other distro seems not to 
support yet. ( https://bugzilla.redhat.com/show_bug.cgi?id=902094 )
So this patch should not put upstream at now, I think.

Thanks.
-- 
Kunihiko Imai



More information about the Pkg-ime-devel mailing list