Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 1204 by [email protected]: ibus cannot parse setlocale(LC_ALL, NULL) value in Ubuntu 11.04 (Natty Narwhal)
http://code.google.com/p/ibus/issues/detail?id=1204

Forwarded from: https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/716314

What version of the product are you using? On what operating system?
OS (Linux distributions, UNIX or ...):Ubuntu 11.04(Natty Narwhal) Alpha2
Architecture (i386, x86_64): i386
IBus version: 1.3.9-0ubuntu1
Input method name and version: ibus-anthy 1.2.5-1build1
Python version: 2.7.1-0ubuntu5
dbus version: 1.4.1-0ubuntu2
dbus-python version: 0.83.1-1
gtk version (if bug is about gtk applications): 2.24.0-0ubuntu2
qt version (if bug is about qt applications):

What steps will reproduce the problem?
1. Install Ubuntu according to the test case below.
http://testcases.qa.ubuntu.com/Install/NonEnglishLanguage#Installation%20Full%20Network%20Support%20&%20CJK%20Input 2. ibus-anthy is installed(in Japanese case), but not registered in ibus-indicator.

What is the expected output? What do you see instead?
ibus-anthy is registered in ibus and available as input method just after install.

Please provide any additional information below.

In Launchpad bug comment, Yusuke Sato offered infomation below.
-----
When "/desktop/ibus/general/preload_engines" gconf setting is not available, ibus-daemon calls setlocale(LC_ALL, NULL); to query a locale setting of a user, and then determines which input method engine should be loaded based on the locale setting.
https://github.com/ibus/ibus/blob/1.3.y/bus/ibusimpl.c#L354

Until Ubuntu 10.10, the setlocale function used to return a simple value like "ja_JP.UTF-8", but on 11.04 alpha 2, the function seems to return a looong string like "LC_CTYPE=ja_JP.UTF-8;LC_NUMERIC=ja_JP.UTF-8;LC_TIME=ja_JP.UTF-8;LC_COLLATE=ja_JP.UTF-8;LC_MONETARY=ja_JP.UTF-8;LC_MESSAGES=ja_JP.utf8;LC_PAPER=ja_JP.UTF-8;LC_NAME=ja_JP.UTF-8;LC_ADDRESS=ja_JP.UTF-8;LC_TELEPHONE=ja_JP.UTF-8;LC_MEASUREMENT=ja_JP.UTF-8;LC_IDENTIFICATION=ja_JP.UTF-8" which ibus-daemon is not able to parse.

For now, changing the 'lang = g_strdup (setlocale (LC_ALL, NULL));' line in ibus-1.3.9/bus/ibusimpl.c to 'lang = g_strdup (setlocale (LC_MESSAGES, NULL));' should fix the problem.
-----


--
You received this message because you are subscribed to the Google
Groups "ibus-devel" group.
iBus project web page: http://code.google.com/p/ibus/
iBus dev group: http://groups.google.com/group/ibus-devel?hl=en

回复