[ibus-pinyin] Rebuilt for libpinyin-0.5.92

Peng Wu pwu at fedoraproject.org
Tue Mar 27 08:14:25 UTC 2012


commit 70bb791cd619ca0c485d9fc4e2d639eed870257d
Author: Peng Wu <alexepico at gmail.com>
Date:   Tue Mar 27 16:09:24 2012 +0800

    Rebuilt for libpinyin-0.5.92

 ibus-pinyin-libpinyin-integration.patch | 4677 ++++++++++++++++++++++++++++++-
 ibus-pinyin.spec                        |    6 +-
 2 files changed, 4575 insertions(+), 108 deletions(-)
---
diff --git a/ibus-pinyin-libpinyin-integration.patch b/ibus-pinyin-libpinyin-integration.patch
index 1b64324..6afcb21 100644
--- a/ibus-pinyin-libpinyin-integration.patch
+++ b/ibus-pinyin-libpinyin-integration.patch
@@ -1,7 +1,7 @@
 From 4d0b70d57a872931404868ec3eafd9ae0e5b4441 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 29 Aug 2011 14:14:46 +0800
-Subject: [PATCH 001/107] begin to integrate
+Subject: [PATCH 001/116] begin to integrate
 
 ---
  src/PYPinyinBaseEditor.h |   91 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -112,7 +112,7 @@ index 0000000..0bed00a
 From 2fcee36056380fa72fcfab98f55508151b068e1c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 30 Aug 2011 18:24:02 +0800
-Subject: [PATCH 002/107] begin to write libpinyin backend singleton
+Subject: [PATCH 002/116] begin to write libpinyin backend singleton
 
 ---
  src/PYLibPinyin.h |   36 ++++++++++++++++++++++++++++++++++++
@@ -168,7 +168,7 @@ index 0000000..cfd8566
 From 7a74baf03f6bdf37d033efa6a66feab936ab255b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 1 Sep 2011 11:24:02 +0800
-Subject: [PATCH 003/107] rename editor class
+Subject: [PATCH 003/116] rename editor class
 
 ---
  src/PYLibPinyin.h        |    5 +++++
@@ -242,7 +242,7 @@ index 0bed00a..ee200a1 100644
 From e5da1763d6db253ae4f89880974dfa094ca43c92 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 1 Sep 2011 13:02:24 +0800
-Subject: [PATCH 004/107] rename editor header
+Subject: [PATCH 004/116] rename editor header
 
 ---
  src/PYLibPinyinBaseEditor.h |   92 +++++++++++++++++++++++++++++++++++++++++++
@@ -454,7 +454,7 @@ index ee200a1..0000000
 From 772a6b8cb77f01f1832ea25c88db6d9d9d4f3ab9 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 1 Sep 2011 15:13:09 +0800
-Subject: [PATCH 005/107] begin to write libpinyin base editor
+Subject: [PATCH 005/116] begin to write libpinyin base editor
 
 ---
  src/PYLibPinyinBaseEditor.cc |  318 ++++++++++++++++++++++++++++++++++++++++++
@@ -806,7 +806,7 @@ index ee200a1..c7b0d2b 100644
 From d14c7c5cef6f21421fe0bc19b1179b202f416e3b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 1 Sep 2011 15:51:53 +0800
-Subject: [PATCH 006/107] fixes compile
+Subject: [PATCH 006/116] fixes compile
 
 ---
  src/Makefile.am              |    3 +++
@@ -866,7 +866,7 @@ index c7b0d2b..d682a7b 100644
 From 5e4d1aba9a99203f8cf664ef0ac6a00368bf8623 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 10:34:06 +0800
-Subject: [PATCH 007/107] add special phrases handle in libpinyin base editor
+Subject: [PATCH 007/116] add special phrases handle in libpinyin base editor
 
 ---
  src/PYLibPinyinBaseEditor.cc |   27 +++++++++++++++++++++------
@@ -949,7 +949,7 @@ index d682a7b..fa5755c 100644
 From 18a7fac7337e7f6d1ec953454cd26ec8a99525b1 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 14:30:11 +0800
-Subject: [PATCH 008/107] begin to write concrete pinyin editors
+Subject: [PATCH 008/116] begin to write concrete pinyin editors
 
 ---
  src/PYLibPinyinDoublePinyinEditor.h |   57 +++++++++++++++++++++++++++++++++
@@ -1093,7 +1093,7 @@ index 0000000..dcc1728
 From 6294d7dd68f2a3a9d17830bf6c4768af6a374cd1 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 15:26:21 +0800
-Subject: [PATCH 009/107] rename files
+Subject: [PATCH 009/116] rename files
 
 ---
  src/PYLibPinyinBaseEditor.cc        |  332 -----------------------------------
@@ -2245,7 +2245,7 @@ index 0000000..fa5755c
 From 2a351f4f7a5ac32459b94622340de901561b9764 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 15:39:31 +0800
-Subject: [PATCH 010/107] add libpinyin pinyin editor header
+Subject: [PATCH 010/116] add libpinyin pinyin editor header
 
 ---
  src/PYPPinyinEditor.h |   56 +++++++++++++++++++++++++++++++++++++++++++++++++
@@ -2321,7 +2321,7 @@ index 0000000..4213395
 From f8dca3a01a6f976fd41a13bb01dac6ab8134eb0f Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 15:49:13 +0800
-Subject: [PATCH 011/107] rename base editor
+Subject: [PATCH 011/116] rename base editor
 
 ---
  src/Makefile.am             |    6 +++-
@@ -2641,7 +2641,7 @@ index 4213395..fd2b2ce 100644
 From 9d7be99bc520bd98cf52fa88f947f3787e411fde Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 2 Sep 2011 16:49:00 +0800
-Subject: [PATCH 012/107] begin to write pinyin editor
+Subject: [PATCH 012/116] begin to write pinyin editor
 
 ---
  src/PYPPinyinEditor.cc |  202 ++++++++++++++++++++++++++++++++++++++++++++++++
@@ -2864,7 +2864,7 @@ index a259a99..a78544d 100644
 From 3799224a7f951a40b47f202e428d1d390b53fd25 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 5 Sep 2011 16:59:49 +0800
-Subject: [PATCH 013/107] begin to write bopomofo editor
+Subject: [PATCH 013/116] begin to write bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |  374 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -3343,7 +3343,7 @@ index 0000000..bcbf85d
 From e9f90e33c992e4c463235862acd20a5329381f8e Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 5 Sep 2011 17:13:31 +0800
-Subject: [PATCH 014/107] fixes compile
+Subject: [PATCH 014/116] fixes compile
 
 ---
  src/Makefile.am          |    2 ++
@@ -3426,7 +3426,7 @@ index bcbf85d..f78375f 100644
 From 4e279112646c10657191b8529d0b96d15a9d14dd Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 8 Sep 2011 15:13:17 +0800
-Subject: [PATCH 015/107] add libpinyin deps
+Subject: [PATCH 015/116] add libpinyin deps
 
 ---
  configure.ac            |    5 +++++
@@ -3499,7 +3499,7 @@ index 3d64bc4..f222557 100644
 From 979bbe6338cf796d97953b0a95d13fc00f0bf650 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 8 Sep 2011 18:02:51 +0800
-Subject: [PATCH 016/107] begin to write libpinyin backend
+Subject: [PATCH 016/116] begin to write libpinyin backend
 
 ---
  src/Makefile.am    |    1 +
@@ -3595,7 +3595,7 @@ index d3bc90c..c07b435 100644
 From c79a32bd545251896d6bc02f27235669abe86774 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 14 Sep 2011 17:49:47 +0800
-Subject: [PATCH 017/107] add set options to libpinyin back end
+Subject: [PATCH 017/116] add set options to libpinyin back end
 
 ---
  src/PYLibPinyin.cc |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -3704,7 +3704,7 @@ index c07b435..83aa1fc 100644
 From 48e7bb8f1db150e6e0ea4b76e1d28d7f349c432d Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 15 Sep 2011 15:19:49 +0800
-Subject: [PATCH 018/107] remove special phrase
+Subject: [PATCH 018/116] remove special phrase
 
 ---
  src/PYPPhoneticEditor.cc |   41 -----------------------------------------
@@ -3816,7 +3816,7 @@ index f222557..f7a3704 100644
 From d8fc6ba5611fd6bb00282446a71da970c249695a Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 16 Sep 2011 15:43:35 +0800
-Subject: [PATCH 019/107] refactor libpinyin phonetic editor
+Subject: [PATCH 019/116] refactor libpinyin phonetic editor
 
 ---
  src/PYPPhoneticEditor.cc |   59 +++++++++++++++++++++++++++++++++++++++------
@@ -3953,7 +3953,7 @@ index f7a3704..a3b03ff 100644
 From a7516b6b7dd80fb57fb8b5db176f907584975b4c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 16 Sep 2011 15:51:12 +0800
-Subject: [PATCH 020/107] clean up libpinyin bopomofo editor
+Subject: [PATCH 020/116] clean up libpinyin bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |   39 +++++++++++++--------------------------
@@ -4037,7 +4037,7 @@ index cb64abd..35c9ed2 100644
 From a65345601ddcc396d0742c9c46164b8acf567d2b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 16 Sep 2011 17:31:56 +0800
-Subject: [PATCH 021/107] add m_pinyin_len back
+Subject: [PATCH 021/116] add m_pinyin_len back
 
 ---
  src/PYPPhoneticEditor.cc |   20 +++++++++++---------
@@ -4132,7 +4132,7 @@ index a3b03ff..32a5245 100644
 From 009663c6c618612a022bfb4cb9dd422e439f573f Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 19 Sep 2011 16:10:48 +0800
-Subject: [PATCH 022/107] write pinyin editor in progress
+Subject: [PATCH 022/116] write pinyin editor in progress
 
 ---
  src/PYPPhoneticEditor.h |    2 +-
@@ -4259,7 +4259,7 @@ index a78544d..a435b82 100644
 From acca31ee1da743f2f4850eb6562dba73aa9c6a7d Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 19 Sep 2011 16:26:42 +0800
-Subject: [PATCH 023/107] begin to write libpinyin full pinyin editor
+Subject: [PATCH 023/116] begin to write libpinyin full pinyin editor
 
 ---
  src/Makefile.am            |    1 +
@@ -4356,7 +4356,7 @@ index 0000000..9712d97
 From 48297caeed02607f0f124510d488d71e69b8e303 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 20 Sep 2011 13:52:05 +0800
-Subject: [PATCH 024/107] write update pinyin
+Subject: [PATCH 024/116] write update pinyin
 
 ---
  src/PYPFullPinyinEditor.cc |   31 +++++++++++++++++++++++++++++++
@@ -4422,7 +4422,7 @@ index a6e74c4..afb52d5 100644
 From a71b5e486260f98e527d6fe9b538a1af2089b6ed Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 20 Sep 2011 16:12:46 +0800
-Subject: [PATCH 025/107] add char edit
+Subject: [PATCH 025/116] add char edit
 
 ---
  src/PYPFullPinyinEditor.cc |   39 +++++++++++++++++++++++++++++++++++++++
@@ -4485,7 +4485,7 @@ index 5194ef8..2b8babc 100644
 From 0af6961241de8fe55420ae3196582ccf3a7a883e Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 10:14:49 +0800
-Subject: [PATCH 026/107] write full pinyin editor in progress
+Subject: [PATCH 026/116] write full pinyin editor in progress
 
 ---
  src/PYPFullPinyinEditor.cc |  131 +++++++++++++++++++++++++++++++++++++++++++-
@@ -4640,7 +4640,7 @@ index 2b8babc..7e764c7 100644
 From c692d73e9a7953f785dfc6b75b458d2056baa717 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 10:34:46 +0800
-Subject: [PATCH 027/107] use m_pinyin_poses in full pinyin editor
+Subject: [PATCH 027/116] use m_pinyin_poses in full pinyin editor
 
 ---
  src/PYPFullPinyinEditor.cc |   32 ++++++++++++++++++++++----------
@@ -4721,7 +4721,7 @@ index 7e764c7..0a05c5a 100644
 From 45fc184f99a90c32d282732b5adf1199b219016c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 11:25:58 +0800
-Subject: [PATCH 028/107] use pinyin pos
+Subject: [PATCH 028/116] use pinyin pos
 
 ---
  src/PYPPhoneticEditor.cc |   14 ++++++++------
@@ -4782,7 +4782,7 @@ index a435b82..68617a3 100644
 From 9d968ec9eb391d26b1762dfeae1699e92a4e6614 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 11:39:17 +0800
-Subject: [PATCH 029/107] re-factor full pinyin editor
+Subject: [PATCH 029/116] re-factor full pinyin editor
 
 ---
  src/PYPFullPinyinEditor.cc |   83 +++++++++++++++++++------------------------
@@ -4946,7 +4946,7 @@ index afb52d5..11e53cb 100644
 From 1bf1279f74ca5eb26e1250d862d5c6d722cc10f6 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 12:22:55 +0800
-Subject: [PATCH 030/107] add update aux text func for full pinyin
+Subject: [PATCH 030/116] add update aux text func for full pinyin
 
 ---
  src/PYPFullPinyinEditor.cc |   37 +++++++++++++++++++++++++++++++++++++
@@ -5056,7 +5056,7 @@ index fd2b2ce..41aafc6 100644
 From 05035a2ca103c6dc795bcd810df7fba86f22f8a7 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 14:02:14 +0800
-Subject: [PATCH 031/107] begin to add double pinyin editor
+Subject: [PATCH 031/116] begin to add double pinyin editor
 
 ---
  src/Makefile.am              |    1 +
@@ -5129,7 +5129,7 @@ index 0000000..5eb2067
 From 490d506672590d37242cbb45cc8ec871d6f23137 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 14:18:36 +0800
-Subject: [PATCH 032/107] move cursor edit funcs to pinyin editor
+Subject: [PATCH 032/116] move cursor edit funcs to pinyin editor
 
 ---
  src/PYPDoublePinyinEditor.h |    2 +
@@ -5586,7 +5586,7 @@ index 41aafc6..974d2a5 100644
 From dde9caeb198ab9756555ac8e040090941e53abba Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Sep 2011 14:52:09 +0800
-Subject: [PATCH 033/107] add update pinyin
+Subject: [PATCH 033/116] add update pinyin
 
 ---
  src/PYPDoublePinyinEditor.cc |   16 ++++++++++++++++
@@ -5676,7 +5676,7 @@ index 9c1644e..05de60d 100644
 From cb25a0b9ee36d12d09ef9a0644888bfd2066252a Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 14:24:09 +0800
-Subject: [PATCH 034/107] write double pinyin editor
+Subject: [PATCH 034/116] write double pinyin editor
 
 ---
  src/PYPDoublePinyinEditor.cc |   93 ++++++++++++++++++++++++++++++++++++++++++
@@ -5841,7 +5841,7 @@ index 08fc04e..8108002 100644
 From 204a6f858e9a2e6577f78d2368474d048b643098 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 14:35:40 +0800
-Subject: [PATCH 035/107] begin to write bopomofo editor
+Subject: [PATCH 035/116] begin to write bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |  119 ----------------------------------------------
@@ -6054,7 +6054,7 @@ index 974d2a5..00b49ce 100644
 From 3b2103d9293ce891f4b47173f60b194916046b18 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 15:00:11 +0800
-Subject: [PATCH 036/107] write bopomofo editor in progress
+Subject: [PATCH 036/116] write bopomofo editor in progress
 
 ---
  src/PYPBopomofoEditor.cc |   68 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -6164,7 +6164,7 @@ index 00b49ce..974d2a5 100644
 From aea71c5a524cb814cb1697ed4b97a944eb899db6 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 15:18:37 +0800
-Subject: [PATCH 037/107] write bopomofo editor
+Subject: [PATCH 037/116] write bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |   35 ++++++++++++++++++++++++++++++++++-
@@ -6260,7 +6260,7 @@ index 8108002..5599416 100644
 From 567aec11de7f8df43a12deda4227ebd975ef6d2e Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 15:31:06 +0800
-Subject: [PATCH 038/107] remove m_pinyins
+Subject: [PATCH 038/116] remove m_pinyins
 
 ---
  src/PYPBopomofoEditor.cc     |    1 -
@@ -6371,7 +6371,7 @@ index 56a8ee4..9d522bf 100644
 From 809905b63d340e823190625ccd82a248fe66e2b8 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Sep 2011 15:49:29 +0800
-Subject: [PATCH 039/107] fixes Makefile.am
+Subject: [PATCH 039/116] fixes Makefile.am
 
 ---
  src/Makefile.am          |    2 ++
@@ -6410,7 +6410,7 @@ index 0c7e46f..db4f9b4 100644
 From 57911c37fc0f515d7459e1c7e95ce356bb0d9f66 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 23 Sep 2011 14:44:10 +0800
-Subject: [PATCH 040/107] add set chewing options
+Subject: [PATCH 040/116] add set chewing options
 
 ---
  src/PYLibPinyin.cc |   29 ++++++++++++++++++++++++++++-
@@ -6489,7 +6489,7 @@ index 83aa1fc..538930c 100644
 From 80723f3558c00e6f5008434ae8c568fdcf0ac8e4 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 26 Sep 2011 15:33:00 +0800
-Subject: [PATCH 041/107] add libpinyin pinyin/chewing scheme options
+Subject: [PATCH 041/116] add libpinyin pinyin/chewing scheme options
 
 ---
  src/PYLibPinyin.cc |   45 ++++++++++++++++++++++++++++++++++++++-------
@@ -6601,7 +6601,7 @@ index 538930c..3d40b1d 100644
 From 3497f64da0b6b6e7ffb85769b05e49f04221b08f Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 15:08:11 +0800
-Subject: [PATCH 042/107] add PYPPinyinEngine.h
+Subject: [PATCH 042/116] add PYPPinyinEngine.h
 
 ---
  src/Makefile.am       |    1 +
@@ -6714,7 +6714,7 @@ index 0000000..d8040c1
 From 1de241261875c35144a0a732849e057bc9bcc962 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 17:09:11 +0800
-Subject: [PATCH 043/107] add libpinyin pinyin engine
+Subject: [PATCH 043/116] add libpinyin pinyin engine
 
 ---
  src/Makefile.am        |    1 +
@@ -7072,7 +7072,7 @@ index 0000000..2877702
 From b7042d52ffb286de6231a43b3c53947a78c19155 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 17:30:41 +0800
-Subject: [PATCH 044/107] write bopomofo editor
+Subject: [PATCH 044/116] write bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc |  131 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -7376,7 +7376,7 @@ index 9d522bf..f2d7309 100644
 From a06c8ad7f26ca41a2c52bd824bed0fc0461ba58b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 17:35:18 +0800
-Subject: [PATCH 045/107] re-factor pinyin editor
+Subject: [PATCH 045/116] re-factor pinyin editor
 
 ---
  src/PYPPinyinEditor.cc |   73 +-----------------------------------------------
@@ -7507,7 +7507,7 @@ index 974d2a5..87fe210 100644
 From 6a7e7ef94cc3e457fcd81bb9988ff83a9e1c9406 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Sep 2011 17:51:56 +0800
-Subject: [PATCH 046/107] polish code
+Subject: [PATCH 046/116] polish code
 
 ---
  src/PYPPinyinEngine.cc |   29 +++++++++--------------------
@@ -7597,7 +7597,7 @@ index d8040c1..7a2d635 100644
 From 5c5f74abcc1f29a8da8c66dbb9db9a58dbb4cf4a Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 10:28:25 +0800
-Subject: [PATCH 047/107] fixes libpinyin pinyin engine
+Subject: [PATCH 047/116] fixes libpinyin pinyin engine
 
 ---
  src/PYPPinyinEngine.cc |    4 +++-
@@ -7636,7 +7636,7 @@ index f8e20ee..1fc4933 100644
 From b35d3416c2ea19f1ec33b622db3968f1c78804e2 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 11:03:50 +0800
-Subject: [PATCH 048/107] re-factor libpinyin backend
+Subject: [PATCH 048/116] re-factor libpinyin backend
 
 ---
  src/PYLibPinyin.cc |   22 ++++++++++++++++------
@@ -7729,7 +7729,7 @@ index f786b70..d24cc3c 100644
 From 08242f69f3740431d0fadc352fbcad7535827eb1 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 13:46:48 +0800
-Subject: [PATCH 049/107] add PYPBopomofoEngine.h
+Subject: [PATCH 049/116] add PYPBopomofoEngine.h
 
 ---
  src/Makefile.am         |    1 +
@@ -7846,7 +7846,7 @@ index 0000000..f767908
 From 6438ef7044c5d6d5e6e187dfd7d5c57deb601e8c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 14:59:44 +0800
-Subject: [PATCH 050/107] add PYPBopomofoEngine.cc
+Subject: [PATCH 050/116] add PYPBopomofoEngine.cc
 
 ---
  src/Makefile.am          |    1 +
@@ -8133,7 +8133,7 @@ index 0000000..e48e9af
 From 4de98d738a224f4e7a72e01c2be24d280fbb4f3a Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Sep 2011 15:08:52 +0800
-Subject: [PATCH 051/107] add libpinyin engines to PYEngine.cc
+Subject: [PATCH 051/116] add libpinyin engines to PYEngine.cc
 
 ---
  src/PYEngine.cc |   25 ++++++++++++++++++++-----
@@ -8189,7 +8189,7 @@ index 7987146..3a34afc 100644
 From 5eafd4293c651be31bd1fdc8e406f8db48dcd8af Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 30 Sep 2011 10:30:11 +0800
-Subject: [PATCH 052/107] add show setup
+Subject: [PATCH 052/116] add show setup
 
 ---
  src/PYPBopomofoEngine.cc |    3 ++-
@@ -8241,7 +8241,7 @@ index 1fc4933..c163cfc 100644
 From fd1f18c48e6fbec50e8c908552c446c60363a94b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 30 Sep 2011 10:54:25 +0800
-Subject: [PATCH 053/107] add lazy init
+Subject: [PATCH 053/116] add lazy init
 
 ---
  src/PYLibPinyin.cc |   45 ++++++++++++++++++++++++++++++++++++++++-----
@@ -8340,7 +8340,7 @@ index 212bf53..44ed727 100644
 From e5870dfe0dc3a85182b8f92322ac25127de10af5 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 7 Oct 2011 12:53:14 +0800
-Subject: [PATCH 054/107] write libpinyin backend
+Subject: [PATCH 054/116] write libpinyin backend
 
 ---
  src/PYLibPinyin.cc |   10 ++++++++++
@@ -8402,7 +8402,7 @@ index a7097fe..d76e612 100644
 From 1e7522cfd85fbf7ed2ef512ae8f093039f7a699d Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 7 Oct 2011 13:05:20 +0800
-Subject: [PATCH 055/107] write PYConfig
+Subject: [PATCH 055/116] write PYConfig
 
 ---
  src/PYConfig.cc |    7 +++++++
@@ -8440,7 +8440,7 @@ index 1373607..9e539c8 100644
 From 1e18f80266808ba71138775d73244abff6f2fdd7 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 10:03:26 +0800
-Subject: [PATCH 056/107] alloc/free pinyin instance
+Subject: [PATCH 056/116] alloc/free pinyin instance
 
 ---
  src/PYMain.cc                |    2 +-
@@ -8576,7 +8576,7 @@ index 87fe210..3c61918 100644
 From 4f1d32d049a3769fb09b43dc130353a1f1b8766b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 10:11:35 +0800
-Subject: [PATCH 057/107] add engines
+Subject: [PATCH 057/116] add engines
 
 ---
  src/PYMain.cc |   32 +++++++++++++++++++++++++++++++-
@@ -8653,7 +8653,7 @@ index ae7c4cd..4031582 100644
 From 4f6d9fdb5723b7d9141524dfcb3c049ee37a2ed7 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 10:37:40 +0800
-Subject: [PATCH 058/107] fixes full editor
+Subject: [PATCH 058/116] fixes full editor
 
 ---
  src/PYPFullPinyinEditor.cc |    5 ++++-
@@ -8725,7 +8725,7 @@ index c163cfc..4aae9a9 100644
 From c22d0d6a24c969821e60f624fd93b1851fc334ab Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 11:29:03 +0800
-Subject: [PATCH 059/107] fixes double pinyin
+Subject: [PATCH 059/116] fixes double pinyin
 
 ---
  src/PYPDoublePinyinEditor.cc |    8 +++++++-
@@ -8780,7 +8780,7 @@ index 0b7d603..69ed5ab 100644
 From 6a11e90a42cbca5c4a0990b5af780a61e4770d1e Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 11:40:11 +0800
-Subject: [PATCH 060/107] fixes chewing editor
+Subject: [PATCH 060/116] fixes chewing editor
 
 ---
  src/PYEngine.cc          |    2 +-
@@ -8836,7 +8836,7 @@ index f13fcc9..1a330cc 100644
 From 68542b98d00d853e4a697a037905e10bc4671d5d Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 18:53:12 +0800
-Subject: [PATCH 061/107] add to pinyin.xml.in.in
+Subject: [PATCH 061/116] add to pinyin.xml.in.in
 
 ---
  src/pinyin.xml.in.in |   28 ++++++++++++++++++++++++++++
@@ -8888,7 +8888,7 @@ index 94b803a..f8ada12 100644
 From c8ca05ddaeb49f990ce486ad66b2d0eb84c57b7c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 8 Oct 2011 19:01:16 +0800
-Subject: [PATCH 062/107] fixes update preedit text
+Subject: [PATCH 062/116] fixes update preedit text
 
 ---
  src/PYPBopomofoEditor.cc |   14 ++++++++------
@@ -8954,7 +8954,7 @@ index 817f621..3d7deff 100644
 From bb096fc88fdfb03deb8e29f0865676f540ce3669 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 10 Oct 2011 13:08:27 +0800
-Subject: [PATCH 063/107] update main.py
+Subject: [PATCH 063/116] update main.py
 
 ---
  setup/main.py |   21 +++++++++++++++------
@@ -9033,7 +9033,7 @@ index 0e3a729..197ea8b 100644
 From 4b6fb2b018f52b1af75fa8aebb629497fef5a07f Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 10 Oct 2011 14:08:17 +0800
-Subject: [PATCH 064/107] add update when select candidate
+Subject: [PATCH 064/116] add update when select candidate
 
 ---
  src/PYPBopomofoEditor.cc |    2 ++
@@ -9103,7 +9103,7 @@ index 3d7deff..4b8aa21 100644
 From f93acc44b3cc2c14ed739c9a70ca2538dd970789 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 10 Oct 2011 15:25:20 +0800
-Subject: [PATCH 065/107] fixes commit/reset
+Subject: [PATCH 065/116] fixes commit/reset
 
 ---
  src/PYPPhoneticEditor.cc |    1 +
@@ -9128,7 +9128,7 @@ index a5d7675..c50b265 100644
 From 84ba51d4a668b8b6d7f93f2c142b9def4c1fba09 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 10 Oct 2011 17:30:39 +0800
-Subject: [PATCH 066/107] fixes space handle
+Subject: [PATCH 066/116] fixes space handle
 
 ---
  src/PYPPhoneticEditor.cc |    7 ++-----
@@ -9180,7 +9180,7 @@ index 4b8aa21..195d0e3 100644
 From 5250368d8b054195b68388fe9675778f582f28ed Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 11 Oct 2011 11:14:18 +0800
-Subject: [PATCH 067/107] fixes choose candidate
+Subject: [PATCH 067/116] fixes choose candidate
 
 ---
  src/PYPPhoneticEditor.cc |    8 +++++++-
@@ -9213,7 +9213,7 @@ index dc494d5..6be7079 100644
 From a83024ca7e24c5a1bd3054f7824d985e2f67bbf8 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 25 Oct 2011 14:11:13 +0800
-Subject: [PATCH 068/107] update pinyin.xml.in.in
+Subject: [PATCH 068/116] update pinyin.xml.in.in
 
 ---
  src/pinyin.xml.in.in |   10 ++++++++--
@@ -9260,7 +9260,7 @@ index f8ada12..d2b267d 100644
 From 4d6a548b773ab5d59641208b5668a000287075d3 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 25 Oct 2011 14:36:36 +0800
-Subject: [PATCH 069/107] add user data directory support
+Subject: [PATCH 069/116] add user data directory support
 
 ---
  src/PYLibPinyin.cc |   16 +++++++++++++++-
@@ -9310,7 +9310,7 @@ index d76e612..077e7e0 100644
 From 59b266d410cedb70f2b8b2aa8c1619184b2fb0ee Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 26 Oct 2011 10:10:58 +0800
-Subject: [PATCH 070/107] add save support
+Subject: [PATCH 070/116] add save support
 
 ---
  src/PYLibPinyin.cc       |   51 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -9466,7 +9466,7 @@ index 195d0e3..e676f6d 100644
 From 8c9b93ed7da9df14257b6f8d555a8b5a6defccae Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 27 Oct 2011 11:36:59 +0800
-Subject: [PATCH 071/107] hide bopomofo
+Subject: [PATCH 071/116] hide bopomofo
 
 ---
  src/pinyin.xml.in.in |   23 ++++-------------------
@@ -9526,7 +9526,7 @@ index d2b267d..93b14a1 100644
 From ad473e4b6d938b5e4cba72ecb49a4e5cc756cb4a Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 31 Oct 2011 11:18:09 +0800
-Subject: [PATCH 072/107] improves pinyin.xml
+Subject: [PATCH 072/116] improves pinyin.xml
 
 ---
  src/pinyin.xml.in.in |    6 +++---
@@ -9570,7 +9570,7 @@ index 93b14a1..862801b 100644
 From ff59fc1cc01c973d43cef4365293b906690c6481 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 3 Nov 2011 11:31:05 +0800
-Subject: [PATCH 073/107] fixes select candidate
+Subject: [PATCH 073/116] fixes select candidate
 
 ---
  src/PYPPhoneticEditor.cc |    4 ++++
@@ -9598,7 +9598,7 @@ index 6be7079..dc66689 100644
 From 1aa1e525b824b52795fdd84551077f4fdd1d3982 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 3 Nov 2011 13:19:12 +0800
-Subject: [PATCH 074/107] add compile flags
+Subject: [PATCH 074/116] add compile flags
 
 ---
  configure.ac    |   14 +++++++++++++-
@@ -9817,7 +9817,7 @@ index 4031582..49fd7ec 100644
 From c17b5a6fba9af303e7d8c1d8a2575aeccc6fe596 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 7 Nov 2011 12:53:41 +0800
-Subject: [PATCH 075/107] fixes 'hon' auto correction
+Subject: [PATCH 075/116] fixes 'hon' auto correction
 
 ---
  src/PYPFullPinyinEditor.cc |    4 +++-
@@ -9845,7 +9845,7 @@ index 69ed5ab..07073b6 100644
 From 9ea1f7abfe470fd0b2f4832eee612e98d62072b4 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 7 Nov 2011 13:14:06 +0800
-Subject: [PATCH 076/107] update header
+Subject: [PATCH 076/116] update header
 
 ---
  src/PYPBopomofoEditor.h |   10 ----------
@@ -9955,7 +9955,7 @@ index 3c61918..815b7a0 100644
 From b068207b550f53309f5950ee14a2124224c36841 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 7 Nov 2011 13:33:28 +0800
-Subject: [PATCH 077/107] copy move cursor by word functions
+Subject: [PATCH 077/116] copy move cursor by word functions
 
 ---
  src/PYPPhoneticEditor.cc |   99 ++++++++++++++++++++++++++++++++++++++++++++++
@@ -10075,7 +10075,7 @@ index dc66689..ac94ba7 100644
 From 266f166b84f396dac50f4cdc4106527a635ade4b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 7 Nov 2011 13:39:58 +0800
-Subject: [PATCH 078/107] remove cursor by word functions
+Subject: [PATCH 078/116] remove cursor by word functions
 
 ---
  src/PYPBopomofoEditor.cc |   98 ----------------------------------------------
@@ -10300,7 +10300,7 @@ index e676f6d..7acf3a9 100644
 From d51411dd4f9e728c68ccdf9949198fa6f16b753f Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 7 Nov 2011 14:22:19 +0800
-Subject: [PATCH 079/107] show guessed sentence in lookup table
+Subject: [PATCH 079/116] show guessed sentence in lookup table
 
 ---
  src/PYPPhoneticEditor.cc |   35 ++++++++++++++++++++++++++++++-----
@@ -10382,7 +10382,7 @@ index ac94ba7..a249b54 100644
 From 4b12c07f98d9e0cb437034ad5215b9001e98321e Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 7 Nov 2011 14:40:06 +0800
-Subject: [PATCH 080/107] fixes select candidate
+Subject: [PATCH 080/116] fixes select candidate
 
 ---
  src/PYPPhoneticEditor.cc |   16 +++++++++++++++-
@@ -10431,7 +10431,7 @@ index a249b54..c5c8041 100644
 From 2db3c83f7ed2dbcba3c579cfe9963577eaf58a59 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 7 Nov 2011 14:50:54 +0800
-Subject: [PATCH 081/107] add get lookup cursor function
+Subject: [PATCH 081/116] add get lookup cursor function
 
 ---
  src/PYPPhoneticEditor.cc |   35 ++++++++++++++++++++---------------
@@ -10536,7 +10536,7 @@ index b2235f3..1360e58 100644
 From 7a10a4c189f8f28333c4bd8857a9bba4fd009a59 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 7 Nov 2011 15:09:46 +0800
-Subject: [PATCH 082/107] show the rest of guessed sentence
+Subject: [PATCH 082/116] show the rest of guessed sentence
 
 ---
  src/PYPPhoneticEditor.cc |    8 +++++---
@@ -10575,7 +10575,7 @@ index b9dbc85..4f2c1e1 100644
 From 705c791f5c535bc02c349c6ea686d6b69db6b559 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 8 Nov 2011 13:03:31 +0800
-Subject: [PATCH 083/107] clean code
+Subject: [PATCH 083/116] clean code
 
 ---
  src/PYPPhoneticEditor.cc |   40 +++++++++++++++++-----------------------
@@ -10652,7 +10652,7 @@ index 4f2c1e1..e79e492 100644
 From 4052c696561ff06e74029cd1ec43355295e15e8c Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 8 Nov 2011 13:14:34 +0800
-Subject: [PATCH 084/107] remove duplicated candidates
+Subject: [PATCH 084/116] remove duplicated candidates
 
 ---
  src/PYPPhoneticEditor.cc |    9 ++++++++-
@@ -10696,7 +10696,7 @@ index e79e492..b5903ae 100644
 From 3fbb80c187f3dc4b7296d838a78a054fe82d3266 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 8 Nov 2011 14:14:48 +0800
-Subject: [PATCH 085/107] fixes first candidate
+Subject: [PATCH 085/116] fixes first candidate
 
 ---
  src/PYPPhoneticEditor.cc |    8 ++++++--
@@ -10729,7 +10729,7 @@ index b5903ae..b691e88 100644
 From 0fb453ad10c68a4a4462c1e163afd5825696d9d3 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 14 Nov 2011 14:23:10 +0800
-Subject: [PATCH 086/107] fixes fill candidates
+Subject: [PATCH 086/116] fixes fill candidates
 
 ---
  src/PYPPhoneticEditor.cc |    3 +++
@@ -10756,7 +10756,7 @@ index b691e88..a713a71 100644
 From 092b927577798f6e4742c6a0d8e98fcd4d30adea Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 22 Nov 2011 10:54:35 +0800
-Subject: [PATCH 087/107] fixes pinyin yunmu 'v' handle
+Subject: [PATCH 087/116] fixes pinyin yunmu 'v' handle
 
 ---
  src/PYPFullPinyinEditor.cc |   13 ++++++++++++-
@@ -10793,7 +10793,7 @@ index 07073b6..9c019e3 100644
 From 31abb4ac2825319bd33bd9f6748cc4627ab5311e Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Fri, 25 Nov 2011 15:23:41 +0800
-Subject: [PATCH 088/107] fixes process space in libpinyin phonetic editor
+Subject: [PATCH 088/116] fixes process space in libpinyin phonetic editor
 
 ---
  src/PYPPhoneticEditor.cc |    9 ++++++++-
@@ -10826,7 +10826,7 @@ index a713a71..32a30a2 100644
 From 904ce4a5ade3e04c063081b549b75efafad73f56 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 20 Dec 2011 16:42:41 +0800
-Subject: [PATCH 089/107] add LibPinyin Config
+Subject: [PATCH 089/116] add LibPinyin Config
 
 ---
  src/Makefile.am  |    2 +
@@ -11471,7 +11471,7 @@ index 0000000..19d3ba5
 From fa92d8b0c2100ed37983f1bd210695d16ce9182b Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 20 Dec 2011 17:05:00 +0800
-Subject: [PATCH 090/107] forked PY::Config
+Subject: [PATCH 090/116] forked PY::Config
 
 ---
  src/PYLibPinyin.cc |   96 ++++++++++++----------------------------------------
@@ -11656,7 +11656,7 @@ index 32919b9..c264395 100644
 From e0af17eacda954dadaf84c474e6dedd707986f80 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 20 Dec 2011 17:28:48 +0800
-Subject: [PATCH 091/107] use new parsers
+Subject: [PATCH 091/116] use new parsers
 
 ---
  src/Makefile.am              |    2 +-
@@ -11990,7 +11990,7 @@ index 7acf3a9..2391485 100644
 From 98118c2e9ef40e1ce33806a03d206a0e6027e65f Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 21 Dec 2011 12:53:51 +0800
-Subject: [PATCH 092/107] update bopomofo editor
+Subject: [PATCH 092/116] update bopomofo editor
 
 ---
  src/PYPBopomofoEditor.cc     |   43 ++++++++++++++++-------------------------
@@ -12140,7 +12140,7 @@ index 3ef36b3..2111143 100644
 From 163b21e23f0621e6cfaf424b914aa33bda891294 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 22 Dec 2011 10:54:11 +0800
-Subject: [PATCH 093/107] switch to LibPinyin*Config
+Subject: [PATCH 093/116] switch to LibPinyin*Config
 
 ---
  src/PYLibPinyin.cc       |    4 ++--
@@ -12330,7 +12330,7 @@ index 4aae9a9..2526d30 100644
 From 9d175347f6bbe6b1655c34fee71fb7aad3b24e31 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 27 Dec 2011 10:47:15 +0800
-Subject: [PATCH 094/107] fixes PYConfig
+Subject: [PATCH 094/116] fixes PYConfig
 
 ---
  src/PYConfig.cc  |    9 ---------
@@ -12388,7 +12388,7 @@ index da3d770..43bedd6 100644
 From 27b889202f81006fb16566b4f460fd353a5ff689 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 27 Dec 2011 14:05:04 +0800
-Subject: [PATCH 095/107] fixes crash
+Subject: [PATCH 095/116] fixes crash
 
 ---
  src/PYPBopomofoEditor.cc   |    2 +-
@@ -12428,7 +12428,7 @@ index 2111143..1fd0705 100644
 From e944e7d63af8152b20bffdd4ddeb3bd7fa786e31 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 27 Dec 2011 18:59:07 +0800
-Subject: [PATCH 096/107] fixes code style
+Subject: [PATCH 096/116] fixes code style
 
 ---
  src/PYLibPinyin.cc |    6 ++++--
@@ -12504,7 +12504,7 @@ index 19d3ba5..13a48cd 100644
 From 998401f0c4c239fe6e804ab7b403b19c151fd13f Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Wed, 28 Dec 2011 14:39:53 +0800
-Subject: [PATCH 097/107] work around gsettings
+Subject: [PATCH 097/116] work around gsettings
 
 ---
  src/PYPConfig.cc |    9 +++++++++
@@ -12541,7 +12541,7 @@ index 43bedd6..415e396 100644
 From 4bbebc9dd00b98304232e12231548dd78782d6c7 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 29 Dec 2011 18:06:46 +0800
-Subject: [PATCH 098/107] fixes crash
+Subject: [PATCH 098/116] fixes crash
 
 ---
  src/PYPPinyinEditor.cc |   12 +++++++-----
@@ -12578,7 +12578,7 @@ index 2391485..c1e951e 100644
 From e2139d4027af85160748af525f4d624f4b236347 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 5 Jan 2012 12:46:08 +0800
-Subject: [PATCH 099/107] fixes PY::Config
+Subject: [PATCH 099/116] fixes PY::Config
 
 ---
  src/PYConfig.cc |    2 --
@@ -12604,7 +12604,7 @@ index 6241647..1373607 100644
 From 37d46d80dd635e916549bb035a90be16cb433ade Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sat, 14 Jan 2012 10:38:12 +0800
-Subject: [PATCH 100/107] use USE_RESPLIT_TABLE
+Subject: [PATCH 100/116] use USE_RESPLIT_TABLE
 
 ---
  src/PYLibPinyin.cc |    3 ++-
@@ -12631,7 +12631,7 @@ index f8858e7..6f318f5 100644
 From f6b0dc8ef534ce7c514c99ba1706e91b1ce0b2fb Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 16 Jan 2012 13:31:27 +0800
-Subject: [PATCH 101/107] fixes <num>+.<num>+
+Subject: [PATCH 101/116] fixes <num>+.<num>+
 
 ---
  src/PYPBopomofoEngine.cc |    3 ++-
@@ -12673,7 +12673,7 @@ index 2526d30..30131c2 100644
 From 6566626d54e59afbf32ada25e0ca32f0f7eda045 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sun, 29 Jan 2012 10:20:35 +0800
-Subject: [PATCH 102/107] fixes PYConfig.cc
+Subject: [PATCH 102/116] fixes PYConfig.cc
 
 ---
  src/PYConfig.cc  |    9 +++++++++
@@ -12724,7 +12724,7 @@ index 415e396..155a637 100644
 From ddee3cc2d3154d7715261aa5d0b7593b8ab0cd73 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Sun, 29 Jan 2012 10:30:43 +0800
-Subject: [PATCH 103/107] enable libbopomofo
+Subject: [PATCH 103/116] enable libbopomofo
 
 ---
  src/pinyin.xml.in.in |   16 ++++++++++++++++
@@ -12763,7 +12763,7 @@ index 862801b..9476937 100644
 From 48aa7a0e16f876464e0162db13c2162f12052e33 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 30 Jan 2012 10:36:27 +0800
-Subject: [PATCH 104/107] fixes chewing options
+Subject: [PATCH 104/116] fixes chewing options
 
 ---
  src/PYLibPinyin.cc |    3 ++-
@@ -12790,7 +12790,7 @@ index 6f318f5..c1b1f92 100644
 From 6565bdd3842e44647e007319b192193b36d396b2 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Mon, 30 Jan 2012 10:49:57 +0800
-Subject: [PATCH 105/107] fixes process bopomofo
+Subject: [PATCH 105/116] fixes process bopomofo
 
 ---
  src/PYPBopomofoEditor.cc |    3 +++
@@ -12817,7 +12817,7 @@ index 40f6236..c3b0402 100644
 From e485aee4d5f1c0eb6abd6562f296e7dee3e92f3e Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Tue, 7 Feb 2012 11:38:04 +0800
-Subject: [PATCH 106/107] use enter key to commit english word
+Subject: [PATCH 106/116] use enter key to commit english word
 
 ---
  src/PYPPhoneticEditor.cc |    3 ++-
@@ -12844,7 +12844,7 @@ index 82cdbf3..4bd68fc 100644
 From 3ccb1e9dadc52dcaa31f7f8cce9edac8a6b3d498 Mon Sep 17 00:00:00 2001
 From: Peng Wu <alexepico at gmail.com>
 Date: Thu, 9 Feb 2012 11:09:40 +0800
-Subject: [PATCH 107/107] update pinyin.xml
+Subject: [PATCH 107/116] update pinyin.xml
 
 ---
  src/pinyin.xml.in.in |    4 ++--
@@ -12875,3 +12875,4466 @@ index 9476937..24add14 100644
 -- 
 1.7.7.6
 
+
+From de0ae3f9568f3d139a0790f23d2cba948d1180cf Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Wed, 15 Feb 2012 13:32:19 +0800
+Subject: [PATCH 108/116] clean pinyin.xml.in.in
+
+---
+ src/pinyin.xml.in.in |    8 --------
+ 1 files changed, 0 insertions(+), 8 deletions(-)
+
+diff --git a/src/pinyin.xml.in.in b/src/pinyin.xml.in.in
+index 24add14..b0075e1 100644
+--- a/src/pinyin.xml.in.in
++++ b/src/pinyin.xml.in.in
+@@ -23,8 +23,6 @@ Peng Wu &lt;alexepico at gmail.com&gt;</author>
+ 			<longname>Pinyin</longname>
+ 			<description>Pinyin input method</description>
+ 			<rank>99</rank>
+-                        @IBUS_HOTKEYS_XML@
+-                        @IBUS_SYMBOL_XML@
+ 		</engine>
+ 		<engine>
+ 			<name>bopomofo</name>
+@@ -38,8 +36,6 @@ Peng Wu &lt;alexepico at gmail.com&gt;</author>
+ 			<longname>Bopomofo</longname>
+ 			<description>Bopomofo input method</description>
+ 			<rank>98</rank>
+-                        @IBUS_HOTKEYS_XML@
+-                        @IBUS_SYMBOL_XML@
+ 		</engine>
+ 		<engine>
+ 			<name>libpinyin</name>
+@@ -54,8 +50,6 @@ Peng Wu &lt;alexepico at gmail.com&gt;</author>
+ 			<longname>Intelligent Pinyin</longname>
+ 			<description>Intelligent Pinyin input method</description>
+ 			<rank>99</rank>
+-                        @IBUS_HOTKEYS_XML@
+-                        @IBUS_SYMBOL_XML@
+ 		</engine>
+ 		<engine>
+ 			<name>libbopomofo</name>
+@@ -70,8 +64,6 @@ Peng Wu &lt;alexepico at gmail.com&gt;</author>
+ 			<longname>Intelligent Bopomofo</longname>
+ 			<description>Intelligent Bopomofo input method</description>
+ 			<rank>99</rank>
+-                        @IBUS_HOTKEYS_XML@
+-                        @IBUS_SYMBOL_XML@
+ 		</engine>
+ 	</engines>
+ </component>
+-- 
+1.7.7.6
+
+
+From e352759e39907c1f6152bade4d1559d31916a0e2 Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Wed, 15 Feb 2012 15:17:38 +0800
+Subject: [PATCH 109/116] fixes pinyin.xml.in.in
+
+---
+ src/pinyin.xml.in.in |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/src/pinyin.xml.in.in b/src/pinyin.xml.in.in
+index b0075e1..244a405 100644
+--- a/src/pinyin.xml.in.in
++++ b/src/pinyin.xml.in.in
+@@ -53,7 +53,7 @@ Peng Wu &lt;alexepico at gmail.com&gt;</author>
+ 		</engine>
+ 		<engine>
+ 			<name>libbopomofo</name>
+-			<language>zh_CN</language>
++			<language>zh_TW</language>
+ 			<license>GPL</license>
+ 			<author>Peng Huang &lt;shawn.p.huang at gmail.com&gt;
+                         BYVoid &lt;byvoid1 at gmail.com&gt;
+-- 
+1.7.7.6
+
+
+From 17a3ca51fccbbda4520be38ebbdc8f45673ffdff Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Tue, 20 Mar 2012 15:45:58 +0800
+Subject: [PATCH 110/116] remove ibus dconf work around
+
+---
+ src/PYConfig.cc  |    9 ---------
+ src/PYPConfig.cc |    9 ---------
+ 2 files changed, 0 insertions(+), 18 deletions(-)
+
+diff --git a/src/PYConfig.cc b/src/PYConfig.cc
+index 9d29aba..1373607 100644
+--- a/src/PYConfig.cc
++++ b/src/PYConfig.cc
+@@ -20,19 +20,10 @@
+  */
+ #include "PYConfig.h"
+ 
+-#include <strings.h>
+ #include "PYTypes.h"
+ #include "PYBus.h"
+ #include "PYDoublePinyinTable.h"
+ 
+-#ifdef HAVE_IBUS_CONFIG_GET_VALUES
+-/* work around gsettings. */
+-static bool operator == (const gchar *lhs, const std::string &rhs)
+-{
+-    return strcasecmp (lhs, rhs.c_str ()) == 0;
+-}
+-#endif
+-
+ namespace PY {
+ 
+ const gchar * const CONFIG_CORRECT_PINYIN            = "CorrectPinyin";
+diff --git a/src/PYPConfig.cc b/src/PYPConfig.cc
+index 155a637..43bedd6 100644
+--- a/src/PYPConfig.cc
++++ b/src/PYPConfig.cc
+@@ -20,19 +20,10 @@
+  */
+ #include "PYPConfig.h"
+ 
+-#include <strings.h>
+ #include <pinyin.h>
+ #include "PYBus.h"
+ #include "PYLibPinyin.h"
+ 
+-#ifdef HAVE_IBUS_CONFIG_GET_VALUES
+-/* work around gsettings. */
+-static bool operator == (const gchar *lhs, const std::string &rhs)
+-{
+-    return strcasecmp (lhs, rhs.c_str ()) == 0;
+-}
+-#endif
+-
+ namespace PY {
+ 
+ const gchar * const CONFIG_CORRECT_PINYIN            = "CorrectPinyin";
+-- 
+1.7.7.6
+
+
+From 0774ffed825adcf4cc3c1f9112be478a2be48918 Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Mon, 26 Mar 2012 12:07:01 +0800
+Subject: [PATCH 111/116] fork setup ui
+
+---
+ setup/ibus-libpinyin-preferences.ui | 1746 +++++++++++++++++++++++++++++++++++
+ setup/main2.py                      |  429 +++++++++
+ 2 files changed, 2175 insertions(+), 0 deletions(-)
+ create mode 100644 setup/ibus-libpinyin-preferences.ui
+ create mode 100644 setup/main2.py
+
+diff --git a/setup/ibus-libpinyin-preferences.ui b/setup/ibus-libpinyin-preferences.ui
+new file mode 100644
+index 0000000..febe032
+--- /dev/null
++++ b/setup/ibus-libpinyin-preferences.ui
+@@ -0,0 +1,1746 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<interface>
++  <requires lib="gtk+" version="2.14"/>
++  <!-- interface-naming-policy project-wide -->
++  <object class="GtkDialog" id="dialog">
++    <property name="width_request">400</property>
++    <property name="border_width">5</property>
++    <property name="title" translatable="yes">Preferences</property>
++    <property name="window_position">center-always</property>
++    <property name="icon_name">gtk-preferences</property>
++    <property name="type_hint">normal</property>
++    <child internal-child="vbox">
++      <object class="GtkVBox" id="dialog-vbox1">
++        <property name="visible">True</property>
++        <property name="spacing">2</property>
++        <child>
++          <object class="GtkNotebook" id="pages">
++            <property name="visible">True</property>
++            <property name="can_focus">True</property>
++            <property name="tab_vborder">3</property>
++            <child>
++              <object class="GtkAlignment" id="pageGeneral">
++                <property name="visible">True</property>
++                <property name="top_padding">12</property>
++                <property name="bottom_padding">12</property>
++                <property name="left_padding">12</property>
++                <property name="right_padding">12</property>
++                <child>
++                  <object class="GtkVBox" id="vbox13">
++                    <property name="visible">True</property>
++                    <property name="spacing">18</property>
++                    <child>
++                      <object class="GtkFrame" id="frame4">
++                        <property name="visible">True</property>
++                        <property name="label_xalign">0</property>
++                        <property name="shadow_type">none</property>
++                        <child>
++                          <object class="GtkAlignment" id="alignment7">
++                            <property name="visible">True</property>
++                            <property name="top_padding">6</property>
++                            <property name="left_padding">12</property>
++                            <child>
++                              <object class="GtkTable" id="table4">
++                                <property name="visible">True</property>
++                                <property name="n_rows">4</property>
++                                <property name="n_columns">3</property>
++                                <property name="column_spacing">12</property>
++                                <property name="row_spacing">6</property>
++                                <property name="homogeneous">True</property>
++                                <child>
++                                  <object class="GtkLabel" id="label9">
++                                    <property name="visible">True</property>
++                                    <property name="xalign">0</property>
++                                    <property name="label" translatable="yes">Language:</property>
++                                  </object>
++                                </child>
++                                <child>
++                                  <object class="GtkLabel" id="label10">
++                                    <property name="visible">True</property>
++                                    <property name="xalign">0</property>
++                                    <property name="label" translatable="yes">Half/full width:</property>
++                                  </object>
++                                  <packing>
++                                    <property name="top_attach">1</property>
++                                    <property name="bottom_attach">2</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkLabel" id="label11">
++                                    <property name="visible">True</property>
++                                    <property name="xalign">0</property>
++                                    <property name="label" translatable="yes">Punctuations:</property>
++                                  </object>
++                                  <packing>
++                                    <property name="top_attach">2</property>
++                                    <property name="bottom_attach">3</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="InitChinese">
++                                    <property name="label" translatable="yes">Chinese</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="draw_indicator">True</property>
++                                    <property name="group">InitEnglish</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">1</property>
++                                    <property name="right_attach">2</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="InitEnglish">
++                                    <property name="label" translatable="yes">English</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">2</property>
++                                    <property name="right_attach">3</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="InitFull">
++                                    <property name="label" translatable="yes">Full</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="draw_indicator">True</property>
++                                    <property name="group">InitHalf</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">1</property>
++                                    <property name="right_attach">2</property>
++                                    <property name="top_attach">1</property>
++                                    <property name="bottom_attach">2</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="InitHalf">
++                                    <property name="label" translatable="yes">Half</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">2</property>
++                                    <property name="right_attach">3</property>
++                                    <property name="top_attach">1</property>
++                                    <property name="bottom_attach">2</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="InitFullPunct">
++                                    <property name="label" translatable="yes">Full</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="draw_indicator">True</property>
++                                    <property name="group">InitHalfPunct</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">1</property>
++                                    <property name="right_attach">2</property>
++                                    <property name="top_attach">2</property>
++                                    <property name="bottom_attach">3</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="InitHalfPunct">
++                                    <property name="label" translatable="yes">Half</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">2</property>
++                                    <property name="right_attach">3</property>
++                                    <property name="top_attach">2</property>
++                                    <property name="bottom_attach">3</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkLabel" id="label18">
++                                    <property name="visible">True</property>
++                                    <property name="xalign">0</property>
++                                    <property name="label" translatable="yes">Chinese:</property>
++                                  </object>
++                                  <packing>
++                                    <property name="top_attach">3</property>
++                                    <property name="bottom_attach">4</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="InitSimplifiedChinese">
++                                    <property name="label" translatable="yes">Simplified</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="draw_indicator">True</property>
++                                    <property name="group">InitTraditionalChinese</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">1</property>
++                                    <property name="right_attach">2</property>
++                                    <property name="top_attach">3</property>
++                                    <property name="bottom_attach">4</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="InitTraditionalChinese">
++                                    <property name="label" translatable="yes">Traditional</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">2</property>
++                                    <property name="right_attach">3</property>
++                                    <property name="top_attach">3</property>
++                                    <property name="bottom_attach">4</property>
++                                  </packing>
++                                </child>
++                              </object>
++                            </child>
++                          </object>
++                        </child>
++                        <child type="label">
++                          <object class="GtkLabel" id="label7">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;b&gt;Initial state&lt;/b&gt;</property>
++                            <property name="use_markup">True</property>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                        <property name="position">0</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkFrame" id="frame5">
++                        <property name="visible">True</property>
++                        <property name="label_xalign">0</property>
++                        <property name="shadow_type">none</property>
++                        <child>
++                          <object class="GtkAlignment" id="alignment8">
++                            <property name="visible">True</property>
++                            <property name="top_padding">6</property>
++                            <property name="left_padding">12</property>
++                            <child>
++                              <object class="GtkVBox" id="vbox8">
++                                <property name="visible">True</property>
++                                <property name="spacing">6</property>
++                                <child>
++                                  <object class="GtkHBox" id="hbox3">
++                                    <property name="visible">True</property>
++                                    <property name="spacing">12</property>
++                                    <property name="homogeneous">True</property>
++                                    <child>
++                                      <object class="GtkLabel" id="label4">
++                                        <property name="visible">True</property>
++                                        <property name="xalign">0</property>
++                                        <property name="label" translatable="yes">Orientation of candidates:</property>
++                                        <property name="use_markup">True</property>
++                                      </object>
++                                      <packing>
++                                        <property name="position">0</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkComboBox" id="LookupTableOrientation">
++                                        <property name="visible">True</property>
++                                        <property name="model">liststoreLookupTableOrientation</property>
++                                        <property name="button_sensitivity">on</property>
++                                      </object>
++                                      <packing>
++                                        <property name="position">1</property>
++                                      </packing>
++                                    </child>
++                                  </object>
++                                  <packing>
++                                    <property name="position">0</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkHBox" id="hbox4">
++                                    <property name="visible">True</property>
++                                    <property name="spacing">12</property>
++                                    <property name="homogeneous">True</property>
++                                    <child>
++                                      <object class="GtkLabel" id="label16">
++                                        <property name="visible">True</property>
++                                        <property name="xalign">0</property>
++                                        <property name="label" translatable="yes">Number of candidates:</property>
++                                        <property name="use_markup">True</property>
++                                      </object>
++                                      <packing>
++                                        <property name="position">0</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkHScale" id="hscaleLookupTablePageSize">
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="update_policy">delayed</property>
++                                        <property name="adjustment">LookupTablePageSize</property>
++                                        <property name="digits">0</property>
++                                        <property name="value_pos">left</property>
++                                      </object>
++                                      <packing>
++                                        <property name="position">1</property>
++                                      </packing>
++                                    </child>
++                                  </object>
++                                  <packing>
++                                    <property name="position">1</property>
++                                  </packing>
++                                </child>
++                              </object>
++                            </child>
++                          </object>
++                        </child>
++                        <child type="label">
++                          <object class="GtkLabel" id="label8">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;b&gt;UI&lt;/b&gt;</property>
++                            <property name="use_markup">True</property>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                        <property name="position">1</property>
++                      </packing>
++                    </child>
++                  </object>
++                </child>
++              </object>
++            </child>
++            <child type="tab">
++              <object class="GtkLabel" id="label19">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">General</property>
++              </object>
++              <packing>
++                <property name="tab_fill">False</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkAlignment" id="pagePinyinMode">
++                <property name="visible">True</property>
++                <property name="top_padding">12</property>
++                <property name="bottom_padding">12</property>
++                <property name="left_padding">12</property>
++                <property name="right_padding">12</property>
++                <child>
++                  <object class="GtkVBox" id="vbox4">
++                    <property name="visible">True</property>
++                    <property name="spacing">18</property>
++                    <child>
++                      <object class="GtkFrame" id="frame3">
++                        <property name="visible">True</property>
++                        <property name="label_xalign">0</property>
++                        <property name="shadow_type">none</property>
++                        <child>
++                          <object class="GtkAlignment" id="alignment6">
++                            <property name="visible">True</property>
++                            <property name="top_padding">6</property>
++                            <property name="left_padding">12</property>
++                            <child>
++                              <object class="GtkVBox" id="vbox9">
++                                <property name="visible">True</property>
++                                <property name="spacing">6</property>
++                                <child>
++                                  <object class="GtkHBox" id="hbox6">
++                                    <property name="visible">True</property>
++                                    <property name="spacing">6</property>
++                                    <property name="homogeneous">True</property>
++                                    <child>
++                                      <object class="GtkRadioButton" id="FullPinyin">
++                                        <property name="label" translatable="yes">Full pinyin</property>
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="draw_indicator">True</property>
++                                        <property name="group">DoublePinyin</property>
++                                      </object>
++                                      <packing>
++                                        <property name="expand">False</property>
++                                        <property name="position">0</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkHBox" id="hbox7">
++                                        <property name="visible">True</property>
++                                        <property name="spacing">6</property>
++                                        <child>
++                                          <object class="GtkRadioButton" id="DoublePinyin">
++                                            <property name="label" translatable="yes">Double pinyin</property>
++                                            <property name="visible">True</property>
++                                            <property name="can_focus">True</property>
++                                            <property name="receives_default">False</property>
++                                            <property name="active">True</property>
++                                            <property name="draw_indicator">True</property>
++                                          </object>
++                                          <packing>
++                                            <property name="expand">False</property>
++                                            <property name="position">0</property>
++                                          </packing>
++                                        </child>
++                                        <child>
++                                          <object class="GtkComboBox" id="DoublePinyinSchema">
++                                            <property name="visible">True</property>
++                                            <property name="sensitive">False</property>
++                                            <property name="model">liststoreDoublePinyin</property>
++                                            <property name="button_sensitivity">on</property>
++                                          </object>
++                                          <packing>
++                                            <property name="position">1</property>
++                                          </packing>
++                                        </child>
++                                      </object>
++                                      <packing>
++                                        <property name="expand">False</property>
++                                        <property name="position">1</property>
++                                      </packing>
++                                    </child>
++                                  </object>
++                                  <packing>
++                                    <property name="position">0</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="DoublePinyinShowRaw">
++                                    <property name="label" translatable="yes">Show raw input of Double Pinyin</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="position">1</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="IncompletePinyin">
++                                    <property name="label" translatable="yes">Incomplete pinyin</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="position">2</property>
++                                  </packing>
++                                </child>
++                              </object>
++                            </child>
++                          </object>
++                        </child>
++                        <child type="label">
++                          <object class="GtkLabel" id="label6">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;b&gt;Pinyin mode&lt;/b&gt;</property>
++                            <property name="use_markup">True</property>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="position">0</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkFrame" id="frame6">
++                        <property name="visible">True</property>
++                        <property name="label_xalign">0</property>
++                        <property name="shadow_type">none</property>
++                        <child>
++                          <object class="GtkAlignment" id="alignment11">
++                            <property name="visible">True</property>
++                            <property name="top_padding">6</property>
++                            <property name="left_padding">12</property>
++                            <child>
++                              <object class="GtkVBox" id="vbox11">
++                                <property name="visible">True</property>
++                                <property name="spacing">6</property>
++                                <child>
++                                  <object class="GtkTable" id="table2">
++                                    <property name="visible">True</property>
++                                    <property name="n_rows">2</property>
++                                    <property name="n_columns">2</property>
++                                    <property name="column_spacing">6</property>
++                                    <property name="row_spacing">6</property>
++                                    <property name="homogeneous">True</property>
++                                    <child>
++                                      <object class="GtkCheckButton" id="ShiftSelectCandidate">
++                                        <property name="label" translatable="yes">[Shift] select candidate</property>
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="draw_indicator">True</property>
++                                      </object>
++                                    </child>
++                                    <child>
++                                      <object class="GtkCheckButton" id="MinusEqualPage">
++                                        <property name="label" translatable="yes">[-] [=] flip page</property>
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="active">True</property>
++                                        <property name="draw_indicator">True</property>
++                                      </object>
++                                      <packing>
++                                        <property name="left_attach">1</property>
++                                        <property name="right_attach">2</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkCheckButton" id="CommaPeriodPage">
++                                        <property name="label" translatable="yes">[,] [.] flip page</property>
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="active">True</property>
++                                        <property name="draw_indicator">True</property>
++                                      </object>
++                                      <packing>
++                                        <property name="top_attach">1</property>
++                                        <property name="bottom_attach">2</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkCheckButton" id="AutoCommit">
++                                        <property name="label" translatable="yes">Auto commit</property>
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="draw_indicator">True</property>
++                                      </object>
++                                      <packing>
++                                        <property name="left_attach">1</property>
++                                        <property name="right_attach">2</property>
++                                        <property name="top_attach">1</property>
++                                        <property name="bottom_attach">2</property>
++                                      </packing>
++                                    </child>
++                                  </object>
++                                  <packing>
++                                    <property name="position">0</property>
++                                  </packing>
++                                </child>
++                              </object>
++                            </child>
++                          </object>
++                        </child>
++                        <child type="label">
++                          <object class="GtkLabel" id="label20">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;b&gt;Input Custom&lt;/b&gt;</property>
++                            <property name="use_markup">True</property>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="position">1</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkFrame" id="frame9">
++                        <property name="visible">True</property>
++                        <property name="label_xalign">0</property>
++                        <property name="shadow_type">none</property>
++                        <child>
++                          <object class="GtkAlignment" id="alignment4">
++                            <property name="visible">True</property>
++                            <property name="top_padding">6</property>
++                            <property name="left_padding">12</property>
++                            <child>
++                              <object class="GtkTable" id="table5">
++                                <property name="visible">True</property>
++                                <property name="n_rows">6</property>
++                                <property name="n_columns">2</property>
++                                <property name="column_spacing">6</property>
++                                <property name="row_spacing">6</property>
++                                <child>
++                                  <object class="GtkCheckButton" id="CorrectPinyin_GN_NG">
++                                    <property name="label">gn =&gt; ng</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="top_attach">1</property>
++                                    <property name="bottom_attach">2</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="CorrectPinyin_MG_NG">
++                                    <property name="label">mg =&gt; ng</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="top_attach">2</property>
++                                    <property name="bottom_attach">3</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="CorrectPinyin_IOU_IU">
++                                    <property name="label">iou =&gt; iu</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="top_attach">3</property>
++                                    <property name="bottom_attach">4</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="CorrectPinyin_UEI_UI">
++                                    <property name="label">uei =&gt; ui</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">1</property>
++                                    <property name="right_attach">2</property>
++                                    <property name="top_attach">1</property>
++                                    <property name="bottom_attach">2</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="CorrectPinyin_UEN_UN">
++                                    <property name="label">uen =&gt; un</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">1</property>
++                                    <property name="right_attach">2</property>
++                                    <property name="top_attach">2</property>
++                                    <property name="bottom_attach">3</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="CorrectPinyin_UE_VE">
++                                    <property name="label">ue =&gt; ve</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="left_attach">1</property>
++                                    <property name="right_attach">2</property>
++                                    <property name="top_attach">3</property>
++                                    <property name="bottom_attach">4</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="CorrectPinyin_V_U">
++                                    <property name="label">v =&gt;u, ve =&gt; ue, van =&gt; uan and etc</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="right_attach">2</property>
++                                    <property name="top_attach">4</property>
++                                    <property name="bottom_attach">5</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="CorrectPinyin">
++                                    <property name="label" translatable="yes">Enable correct pinyin</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="right_attach">2</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="CorrectPinyin_ON_ONG">
++                                    <property name="label">on =&gt; ong</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="top_attach">5</property>
++                                    <property name="bottom_attach">6</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <placeholder/>
++                                </child>
++                              </object>
++                            </child>
++                          </object>
++                        </child>
++                        <child type="label">
++                          <object class="GtkLabel" id="label22">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;b&gt;Correct pinyin&lt;/b&gt;</property>
++                            <property name="use_markup">True</property>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="position">2</property>
++                      </packing>
++                    </child>
++                  </object>
++                </child>
++              </object>
++              <packing>
++                <property name="position">1</property>
++              </packing>
++            </child>
++            <child type="tab">
++              <object class="GtkLabel" id="label1">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">Pinyin mode</property>
++              </object>
++              <packing>
++                <property name="position">1</property>
++                <property name="tab_fill">False</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkAlignment" id="pageBopomofoMode">
++                <property name="visible">True</property>
++                <property name="top_padding">12</property>
++                <property name="bottom_padding">12</property>
++                <property name="left_padding">12</property>
++                <property name="right_padding">12</property>
++                <child>
++                  <object class="GtkVBox" id="vbox10">
++                    <property name="visible">True</property>
++                    <property name="spacing">18</property>
++                    <child>
++                      <object class="GtkFrame" id="frame8">
++                        <property name="visible">True</property>
++                        <property name="label_xalign">0</property>
++                        <property name="shadow_type">none</property>
++                        <child>
++                          <object class="GtkAlignment" id="alignment15">
++                            <property name="visible">True</property>
++                            <property name="top_padding">6</property>
++                            <property name="left_padding">12</property>
++                            <child>
++                              <object class="GtkVBox" id="vbox15">
++                                <property name="visible">True</property>
++                                <property name="spacing">6</property>
++                                <child>
++                                  <object class="GtkCheckButton" id="IncompleteBopomofo">
++                                    <property name="label" translatable="yes">Incomplete Bopomofo</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="position">0</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkHBox" id="hbox5">
++                                    <property name="visible">True</property>
++                                    <child>
++                                      <object class="GtkLabel" id="labelBopomofoKeyboardMapping">
++                                        <property name="visible">True</property>
++                                        <property name="xalign">0</property>
++                                        <property name="label" translatable="yes">Keyboard Mapping:</property>
++                                      </object>
++                                      <packing>
++                                        <property name="position">0</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkComboBox" id="BopomofoKeyboardMapping">
++                                        <property name="visible">True</property>
++                                        <property name="model">liststoreBopomofoKeyboardMapping</property>
++                                        <property name="button_sensitivity">on</property>
++                                      </object>
++                                      <packing>
++                                        <property name="position">1</property>
++                                      </packing>
++                                    </child>
++                                  </object>
++                                  <packing>
++                                    <property name="position">1</property>
++                                  </packing>
++                                </child>
++                              </object>
++                            </child>
++                          </object>
++                        </child>
++                        <child type="label">
++                          <object class="GtkLabel" id="label2">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;b&gt;Bopomofo mode&lt;/b&gt;</property>
++                            <property name="use_markup">True</property>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                        <property name="position">0</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkFrame" id="frame1">
++                        <property name="visible">True</property>
++                        <property name="label_xalign">0</property>
++                        <property name="shadow_type">none</property>
++                        <child>
++                          <object class="GtkAlignment" id="alignment1">
++                            <property name="visible">True</property>
++                            <property name="top_padding">6</property>
++                            <property name="left_padding">12</property>
++                            <child>
++                              <object class="GtkVBox" id="vbox2">
++                                <property name="visible">True</property>
++                                <property name="spacing">6</property>
++                                <child>
++                                  <object class="GtkHBox" id="hbox9">
++                                    <property name="visible">True</property>
++                                    <child>
++                                      <object class="GtkLabel" id="labelSelectionKeys">
++                                        <property name="visible">True</property>
++                                        <property name="xalign">0</property>
++                                        <property name="label" translatable="yes">Selection Keys:</property>
++                                      </object>
++                                      <packing>
++                                        <property name="position">0</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkComboBox" id="SelectKeys">
++                                        <property name="visible">True</property>
++                                        <property name="model">liststoreSelectionKeys</property>
++                                        <property name="button_sensitivity">on</property>
++                                      </object>
++                                      <packing>
++                                        <property name="position">1</property>
++                                      </packing>
++                                    </child>
++                                  </object>
++                                  <packing>
++                                    <property name="position">0</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="GuideKey">
++                                    <property name="label" translatable="yes">Enable Guidekey for Candidates Selection</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="position">1</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="AuxiliarySelectKey_F">
++                                    <property name="label" translatable="yes">Enable Auxiliary Select Keys F1 .. F10</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="position">2</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkCheckButton" id="AuxiliarySelectKey_KP">
++                                    <property name="label" translatable="yes">Enable Auxiliary Select Keys Numbers on Keypad</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="position">3</property>
++                                  </packing>
++                                </child>
++                              </object>
++                            </child>
++                          </object>
++                        </child>
++                        <child type="label">
++                          <object class="GtkLabel" id="label23">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;b&gt;Selection mode&lt;/b&gt;</property>
++                            <property name="use_markup">True</property>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                        <property name="position">1</property>
++                      </packing>
++                    </child>
++                    <child>
++                      <object class="GtkFrame" id="frame10">
++                        <property name="visible">True</property>
++                        <property name="label_xalign">0</property>
++                        <property name="shadow_type">none</property>
++                        <child>
++                          <object class="GtkAlignment" id="alignment16">
++                            <property name="visible">True</property>
++                            <property name="top_padding">6</property>
++                            <property name="left_padding">12</property>
++                            <child>
++                              <object class="GtkVBox" id="vbox16">
++                                <property name="visible">True</property>
++                                <property name="spacing">6</property>
++                                <child>
++                                  <object class="GtkLabel" id="LabelEnter">
++                                    <property name="visible">True</property>
++                                    <property name="xalign">0</property>
++                                    <property name="label" translatable="yes">Feature of Enter key:</property>
++                                  </object>
++                                  <packing>
++                                    <property name="position">0</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="CommitFirstCandidate">
++                                    <property name="label" translatable="yes">Commit first candidate</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="active">True</property>
++                                    <property name="draw_indicator">True</property>
++                                    <property name="group">CommitOriginalText</property>
++                                  </object>
++                                  <packing>
++                                    <property name="position">1</property>
++                                  </packing>
++                                </child>
++                                <child>
++                                  <object class="GtkRadioButton" id="CommitOriginalText">
++                                    <property name="label" translatable="yes">Commit original text</property>
++                                    <property name="visible">True</property>
++                                    <property name="can_focus">True</property>
++                                    <property name="receives_default">False</property>
++                                    <property name="draw_indicator">True</property>
++                                  </object>
++                                  <packing>
++                                    <property name="position">2</property>
++                                  </packing>
++                                </child>
++                              </object>
++                            </child>
++                          </object>
++                        </child>
++                        <child type="label">
++                          <object class="GtkLabel" id="labelOther">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;b&gt;Other&lt;/b&gt;</property>
++                            <property name="use_markup">True</property>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="expand">False</property>
++                        <property name="fill">False</property>
++                        <property name="position">2</property>
++                      </packing>
++                    </child>
++                  </object>
++                </child>
++              </object>
++              <packing>
++                <property name="position">2</property>
++              </packing>
++            </child>
++            <child type="tab">
++              <object class="GtkLabel" id="label13">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">Bopomofo mode</property>
++              </object>
++              <packing>
++                <property name="position">2</property>
++                <property name="tab_fill">False</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkAlignment" id="pageFuzzy">
++                <property name="visible">True</property>
++                <property name="top_padding">12</property>
++                <property name="bottom_padding">12</property>
++                <property name="left_padding">12</property>
++                <property name="right_padding">12</property>
++                <child>
++                  <object class="GtkVBox" id="vbox1">
++                    <property name="visible">True</property>
++                    <property name="spacing">12</property>
++                    <child>
++                      <object class="GtkAlignment" id="alignment2">
++                        <property name="visible">True</property>
++                        <property name="top_padding">6</property>
++                        <property name="left_padding">12</property>
++                        <child>
++                          <object class="GtkTable" id="table1">
++                            <property name="visible">True</property>
++                            <property name="n_rows">12</property>
++                            <property name="n_columns">2</property>
++                            <property name="column_spacing">6</property>
++                            <property name="row_spacing">6</property>
++                            <property name="homogeneous">True</property>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_C_CH">
++                                <property name="label">c =&gt; ch</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="active">True</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">1</property>
++                                <property name="bottom_attach">2</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_Z_ZH">
++                                <property name="label">z =&gt; zh</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="active">True</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">2</property>
++                                <property name="bottom_attach">3</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_S_SH">
++                                <property name="label">s =&gt; sh</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="active">True</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">3</property>
++                                <property name="bottom_attach">4</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_L_N">
++                                <property name="label">l =&gt; n</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="active">True</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">4</property>
++                                <property name="bottom_attach">5</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_F_H">
++                                <property name="label">f =&gt; h</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="active">True</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">5</property>
++                                <property name="bottom_attach">6</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_L_R">
++                                <property name="label">l =&gt; r</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">6</property>
++                                <property name="bottom_attach">7</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_K_G">
++                                <property name="label">k =&gt; g</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="active">True</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">7</property>
++                                <property name="bottom_attach">8</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_AN_ANG">
++                                <property name="label">an =&gt; ang</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="active">True</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">8</property>
++                                <property name="bottom_attach">9</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_EN_ENG">
++                                <property name="label">en =&gt; eng</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="active">True</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">9</property>
++                                <property name="bottom_attach">10</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_IN_ING">
++                                <property name="label">in =&gt; ing</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="active">True</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="top_attach">10</property>
++                                <property name="bottom_attach">11</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_CH_C">
++                                <property name="label">ch =&gt; c</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">1</property>
++                                <property name="bottom_attach">2</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_ZH_Z">
++                                <property name="label">zh =&gt; z</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">2</property>
++                                <property name="bottom_attach">3</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_SH_S">
++                                <property name="label">sh =&gt; s</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">3</property>
++                                <property name="bottom_attach">4</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_N_L">
++                                <property name="label">n =&gt; l</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">4</property>
++                                <property name="bottom_attach">5</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_H_F">
++                                <property name="label">h =&gt; f</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">5</property>
++                                <property name="bottom_attach">6</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_R_L">
++                                <property name="label">r =&gt; l</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">6</property>
++                                <property name="bottom_attach">7</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_G_K">
++                                <property name="label">g =&gt; k</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">7</property>
++                                <property name="bottom_attach">8</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_ANG_AN">
++                                <property name="label">ang =&gt; an</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">8</property>
++                                <property name="bottom_attach">9</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_ENG_EN">
++                                <property name="label">eng =&gt; en</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">9</property>
++                                <property name="bottom_attach">10</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_ING_IN">
++                                <property name="label">ing =&gt; in</property>
++                                <property name="visible">True</property>
++                                <property name="sensitive">False</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="left_attach">1</property>
++                                <property name="right_attach">2</property>
++                                <property name="top_attach">10</property>
++                                <property name="bottom_attach">11</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin">
++                                <property name="label" translatable="yes">Enable fuzzy syllable</property>
++                                <property name="visible">True</property>
++                                <property name="can_focus">True</property>
++                                <property name="receives_default">False</property>
++                                <property name="draw_indicator">True</property>
++                              </object>
++                              <packing>
++                                <property name="right_attach">2</property>
++                              </packing>
++                            </child>
++                            <child>
++                              <placeholder/>
++                            </child>
++                            <child>
++                              <placeholder/>
++                            </child>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="position">0</property>
++                      </packing>
++                    </child>
++                  </object>
++                </child>
++              </object>
++              <packing>
++                <property name="position">3</property>
++              </packing>
++            </child>
++            <child type="tab">
++              <object class="GtkLabel" id="label3">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">Fuzzy syllable</property>
++              </object>
++              <packing>
++                <property name="position">3</property>
++                <property name="tab_fill">False</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkAlignment" id="pageDictionary">
++                <property name="visible">True</property>
++                <property name="top_padding">12</property>
++                <property name="bottom_padding">12</property>
++                <property name="left_padding">12</property>
++                <property name="right_padding">12</property>
++                <child>
++                  <object class="GtkVBox" id="vbox5">
++                    <property name="visible">True</property>
++                    <child>
++                      <object class="GtkFrame" id="frame7">
++                        <property name="visible">True</property>
++                        <property name="label_xalign">0</property>
++                        <property name="shadow_type">none</property>
++                        <child>
++                          <object class="GtkAlignment" id="alignment13">
++                            <property name="visible">True</property>
++                            <property name="top_padding">6</property>
++                            <property name="left_padding">12</property>
++                            <child>
++                              <object class="GtkVBox" id="vbox12">
++                                <property name="visible">True</property>
++                                <property name="spacing">6</property>
++                                <child>
++                                  <object class="GtkHBox" id="hbox2">
++                                    <property name="visible">True</property>
++                                    <property name="spacing">12</property>
++                                    <child>
++                                      <object class="GtkCheckButton" id="SpecialPhrases">
++                                        <property name="label" translatable="yes">Use custom phrases</property>
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">False</property>
++                                        <property name="draw_indicator">True</property>
++                                      </object>
++                                      <packing>
++                                        <property name="expand">False</property>
++                                        <property name="position">0</property>
++                                      </packing>
++                                    </child>
++                                    <child>
++                                      <object class="GtkButton" id="EditSpecialPhrases">
++                                        <property name="label" translatable="yes">Edit custom phrases</property>
++                                        <property name="visible">True</property>
++                                        <property name="can_focus">True</property>
++                                        <property name="receives_default">True</property>
++                                      </object>
++                                      <packing>
++                                        <property name="expand">False</property>
++                                        <property name="fill">False</property>
++                                        <property name="position">1</property>
++                                      </packing>
++                                    </child>
++                                  </object>
++                                  <packing>
++                                    <property name="expand">False</property>
++                                    <property name="fill">False</property>
++                                    <property name="position">0</property>
++                                  </packing>
++                                </child>
++                              </object>
++                            </child>
++                          </object>
++                        </child>
++                        <child type="label">
++                          <object class="GtkLabel" id="label17">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;b&gt;Dictionary option&lt;/b&gt;</property>
++                            <property name="use_markup">True</property>
++                          </object>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="position">0</property>
++                      </packing>
++                    </child>
++                  </object>
++                </child>
++              </object>
++              <packing>
++                <property name="position">4</property>
++              </packing>
++            </child>
++            <child type="tab">
++              <object class="GtkLabel" id="label12">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">Dictionary</property>
++              </object>
++              <packing>
++                <property name="position">4</property>
++                <property name="tab_fill">False</property>
++              </packing>
++            </child>
++            <child>
++              <object class="GtkAlignment" id="pageAbout">
++                <property name="visible">True</property>
++                <property name="top_padding">12</property>
++                <property name="bottom_padding">12</property>
++                <property name="left_padding">12</property>
++                <property name="right_padding">12</property>
++                <child>
++                  <object class="GtkVBox" id="vbox6">
++                    <property name="visible">True</property>
++                    <property name="spacing">6</property>
++                    <child>
++                      <object class="GtkVBox" id="vbox7">
++                        <property name="visible">True</property>
++                        <property name="spacing">6</property>
++                        <child>
++                          <object class="GtkImage" id="image1">
++                            <property name="visible">True</property>
++                            <property name="can_focus">True</property>
++                            <property name="pixel_size">32</property>
++                            <property name="icon_name">gtk-about</property>
++                          </object>
++                          <packing>
++                            <property name="position">0</property>
++                          </packing>
++                        </child>
++                        <child>
++                          <object class="GtkLabel" id="NameVersion">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;IBus Pinyin %s&lt;/b&gt;&lt;/big&gt;</property>
++                            <property name="use_markup">True</property>
++                            <property name="selectable">True</property>
++                          </object>
++                          <packing>
++                            <property name="position">1</property>
++                          </packing>
++                        </child>
++                        <child>
++                          <object class="GtkLabel" id="label14">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">Pinyin input method for IBus</property>
++                            <property name="selectable">True</property>
++                          </object>
++                          <packing>
++                            <property name="position">2</property>
++                          </packing>
++                        </child>
++                        <child>
++                          <object class="GtkLabel" id="label15">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;small&gt;Copyright (c) 2009-2010 Peng Huang&lt;/small&gt;</property>
++                            <property name="use_markup">True</property>
++                            <property name="wrap">True</property>
++                            <property name="selectable">True</property>
++                          </object>
++                          <packing>
++                            <property name="position">3</property>
++                          </packing>
++                        </child>
++                        <child>
++                          <object class="GtkLinkButton" id="linkbutton1">
++                            <property name="label" translatable="yes">http://ibus.googlecode.com</property>
++                            <property name="visible">True</property>
++                            <property name="can_focus">True</property>
++                            <property name="receives_default">True</property>
++                            <property name="relief">none</property>
++                            <property name="uri">http://ibus.googlecode.com</property>
++                          </object>
++                          <packing>
++                            <property name="expand">False</property>
++                            <property name="fill">False</property>
++                            <property name="position">4</property>
++                          </packing>
++                        </child>
++                        <child>
++                          <object class="GtkLabel" id="label21">
++                            <property name="visible">True</property>
++                            <property name="label" translatable="yes">&lt;small&gt;
++&lt;b&gt;Authors:&lt;/b&gt;
++Peng Huang
++BYVoid
++Peng Wu
++
++&lt;b&gt;Contributors:&lt;/b&gt;
++koterpilla, Zerng07
++&lt;/small&gt;</property>
++                            <property name="use_markup">True</property>
++                            <property name="justify">center</property>
++                            <property name="selectable">True</property>
++                          </object>
++                          <packing>
++                            <property name="position">5</property>
++                          </packing>
++                        </child>
++                      </object>
++                      <packing>
++                        <property name="fill">False</property>
++                        <property name="position">0</property>
++                      </packing>
++                    </child>
++                  </object>
++                </child>
++              </object>
++              <packing>
++                <property name="position">5</property>
++              </packing>
++            </child>
++            <child type="tab">
++              <object class="GtkLabel" id="label5">
++                <property name="visible">True</property>
++                <property name="label" translatable="yes">About</property>
++              </object>
++              <packing>
++                <property name="position">5</property>
++                <property name="tab_fill">False</property>
++              </packing>
++            </child>
++          </object>
++          <packing>
++            <property name="position">1</property>
++          </packing>
++        </child>
++        <child internal-child="action_area">
++          <object class="GtkHButtonBox" id="dialog-action_area1">
++            <property name="visible">True</property>
++            <property name="layout_style">end</property>
++            <child>
++              <object class="GtkButton" id="buttonClose">
++                <property name="label">gtk-close</property>
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="has_focus">True</property>
++                <property name="is_focus">True</property>
++                <property name="can_default">True</property>
++                <property name="has_default">True</property>
++                <property name="receives_default">True</property>
++                <property name="use_stock">True</property>
++              </object>
++              <packing>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++                <property name="position">0</property>
++              </packing>
++            </child>
++          </object>
++          <packing>
++            <property name="expand">False</property>
++            <property name="pack_type">end</property>
++            <property name="position">0</property>
++          </packing>
++        </child>
++      </object>
++    </child>
++    <action-widgets>
++      <action-widget response="0">buttonClose</action-widget>
++    </action-widgets>
++  </object>
++  <object class="GtkListStore" id="liststoreDoublePinyin">
++    <columns>
++      <!-- column-name schema -->
++      <column type="gchararray"/>
++    </columns>
++    <data>
++      <row>
++        <col id="0" translatable="yes">MSPY</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">ZRM</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">ABC</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">ZGPY</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">PYJJ</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">XHE</col>
++      </row>
++    </data>
++  </object>
++  <object class="GtkAdjustment" id="LookupTablePageSize">
++    <property name="value">1</property>
++    <property name="lower">1</property>
++    <property name="upper">11</property>
++    <property name="step_increment">1</property>
++    <property name="page_increment">1</property>
++    <property name="page_size">1</property>
++  </object>
++  <object class="GtkListStore" id="liststoreLookupTableOrientation">
++    <columns>
++      <!-- column-name orientation -->
++      <column type="gchararray"/>
++    </columns>
++    <data>
++      <row>
++        <col id="0" translatable="yes">Horizontal</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">Vertical</col>
++      </row>
++    </data>
++  </object>
++  <object class="GtkListStore" id="liststoreBopomofoKeyboardMapping">
++    <columns>
++      <!-- column-name keyboard_mapping -->
++      <column type="gchararray"/>
++    </columns>
++    <data>
++      <row>
++        <col id="0" translatable="yes">Standard</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">GinYieh</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">Eten</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">IBM</col>
++      </row>
++    </data>
++  </object>
++  <object class="GtkListStore" id="liststoreSelectionKeys">
++    <columns>
++      <!-- column-name select_keys -->
++      <column type="gchararray"/>
++    </columns>
++    <data>
++      <row>
++        <col id="0">1234567890</col>
++      </row>
++      <row>
++        <col id="0">asdfghjkl;</col>
++      </row>
++      <row>
++        <col id="0">1qaz2wsxed</col>
++      </row>
++      <row>
++        <col id="0">asdfzxcvgb</col>
++      </row>
++      <row>
++        <col id="0">1234qweras</col>
++      </row>
++      <row>
++        <col id="0">aoeu;qjkix</col>
++      </row>
++      <row>
++        <col id="0">aoeuhtnsid</col>
++      </row>
++      <row>
++        <col id="0">aoeuidhtns</col>
++      </row>
++      <row>
++        <col id="0">qweasdzxcr</col>
++      </row>
++    </data>
++  </object>
++</interface>
+diff --git a/setup/main2.py b/setup/main2.py
+new file mode 100644
+index 0000000..197ea8b
+--- /dev/null
++++ b/setup/main2.py
+@@ -0,0 +1,429 @@
++# vim:set et ts=4 sts=4:
++# -*- coding: utf-8 -*-
++#
++# ibus-pinyin - The Chinese PinYin engine for IBus
++#
++# Copyright (c) 2008-2010 Peng Huang <shawn.p.huang at gmail.com>
++# Copyright (c) 2010 BYVoid <byvoid1 at gmail.com>
++#
++# 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
++import sys
++import gtk
++import ibus
++import locale
++import os
++import version
++import gettext
++from xdg import BaseDirectory
++
++_ = lambda a : gettext.dgettext("ibus-pinyin", a)
++
++class PreferencesDialog:
++    def __init__(self,engine,libpinyin):
++        locale.setlocale(locale.LC_ALL, "")
++        localedir = os.getenv("IBUS_LOCALEDIR")
++        gettext.bindtextdomain("ibus-pinyin", localedir)
++        gettext.bind_textdomain_codeset("ibus-pinyin", "UTF-8")
++
++        self.__libpinyin = libpinyin
++        self.__bus = ibus.Bus()
++        self.__config = self.__bus.get_config()
++        self.__builder = gtk.Builder()
++        self.__builder.set_translation_domain("ibus-pinyin")
++        self.__builder.add_from_file("ibus-pinyin-preferences.ui")
++        self.__dialog = self.__builder.get_object("dialog")
++        self.__init_pages()
++        
++        if engine == "pinyin":
++            self.__config_namespace = "engine/Pinyin"
++            self.__init_general()
++            self.__init_pinyin()
++            self.__init_fuzzy()
++            if not self.__libpinyin:
++                self.__init_dictionary()
++            self.__init_about()
++        elif engine == "bopomofo":
++            self.__config_namespace = "engine/Bopomofo"
++            self.__init_general()
++            self.__init_bopomofo()
++            self.__init_fuzzy()
++            if not self.__libpinyin:
++                self.__init_dictionary()
++            self.__init_about()
++            self.__convert_fuzzy_pinyin_to_bopomofo()
++            
++        else:
++            print("Error: Unknown Engine")
++            exit()
++        
++        self.__pages.set_current_page(0)
++
++    def __init_pages(self):
++        self.__pages = self.__builder.get_object("pages")
++        self.__page_general = self.__builder.get_object("pageGeneral")
++        self.__page_pinyin_mode = self.__builder.get_object("pagePinyinMode")
++        self.__page_bopomofo_mode = self.__builder.get_object("pageBopomofoMode")
++        self.__page_fuzzy = self.__builder.get_object("pageFuzzy")
++        self.__page_dictionary = self.__builder.get_object("pageDictionary")
++        self.__page_about = self.__builder.get_object("pageAbout")
++        
++        self.__page_general.hide()
++        self.__page_pinyin_mode.hide()
++        self.__page_bopomofo_mode.hide()
++        self.__page_fuzzy.hide()
++        self.__page_dictionary.hide()
++        self.__page_about.hide()
++
++    def __init_general(self):
++        # page General
++        self.__page_general.show()
++        
++        # init state
++        self.__init_chinese = self.__builder.get_object("InitChinese")
++        self.__init_english = self.__builder.get_object("InitEnglish")
++        self.__init_full = self.__builder.get_object("InitFull")
++        self.__init_half = self.__builder.get_object("InitHalf")
++        self.__init_full_punct = self.__builder.get_object("InitFullPunct")
++        self.__init_half_punct = self.__builder.get_object("InitHalfPunct")
++        self.__init_simp = self.__builder.get_object("InitSimplifiedChinese")
++        self.__init_trad = self.__builder.get_object("IniTraditionalChinese")
++        
++        # UI
++        self.__lookup_table_page_size = self.__builder.get_object("LookupTablePageSize")
++        self.__lookup_table_orientation = self.__builder.get_object("LookupTableOrientation")
++        renderer = gtk.CellRendererText()
++        self.__lookup_table_orientation.pack_start(renderer)
++        self.__lookup_table_orientation.set_attributes(renderer, text=0)
++
++        # read values
++        self.__init_chinese.set_active(self.__get_value("InitChinese", True))
++        self.__init_full.set_active(self.__get_value("InitFull", False))
++        self.__init_full_punct.set_active(self.__get_value("InitFullPunct", True))
++        self.__init_simp.set_active(self.__get_value("InitSimplifiedChinese", True))
++        self.__lookup_table_orientation.set_active(self.__get_value("LookupTableOrientation", 0))
++        self.__lookup_table_page_size.set_value(self.__get_value("LookupTablePageSize", 5))
++
++        # connect signals
++        self.__init_chinese.connect("toggled", self.__toggled_cb, "InitChinese")
++        self.__init_full.connect("toggled", self.__toggled_cb, "InitFull")
++        self.__init_full_punct.connect("toggled", self.__toggled_cb, "InitFullPunct")
++        self.__init_simp.connect("toggled", self.__toggled_cb, "InitSimplifiedChinese")
++
++        def __lookup_table_page_size_changed_cb(adjustment):
++            self.__set_value("LookupTablePageSize", int(adjustment.get_value()))
++
++        def __lookup_table_orientation_changed_cb(widget):
++            self.__set_value("LookupTableOrientation", widget.get_active())
++
++        self.__lookup_table_orientation.connect("changed", __lookup_table_orientation_changed_cb)
++        self.__lookup_table_page_size.connect("value-changed", __lookup_table_page_size_changed_cb)
++
++    def __init_pinyin(self):
++        # page
++        self.__page_pinyin_mode.show()
++        
++        # pinyin
++        self.__full_pinyin = self.__builder.get_object("FullPinyin")
++        self.__incomplete_pinyin = self.__builder.get_object("IncompletePinyin")
++        self.__double_pinyin = self.__builder.get_object("DoublePinyin")
++        self.__double_pinyin_schema = self.__builder.get_object("DoublePinyinSchema")
++        # self.__double_pinyin_schema_label = self.__builder.get_object("labelDoublePinyinSchema")
++        self.__double_pinyin_show_raw = self.__builder.get_object("DoublePinyinShowRaw")
++        if self.__libpinyin:
++            self.__double_pinyin_show_raw.hide ()
++
++        renderer = gtk.CellRendererText()
++        self.__double_pinyin_schema.pack_start(renderer)
++        self.__double_pinyin_schema.set_attributes(renderer, text=0)
++
++        # read value
++        self.__incomplete_pinyin.set_active(self.__get_value("IncompletePinyin", True))
++        self.__full_pinyin.set_active(not self.__get_value("DoublePinyin", False))
++        self.__double_pinyin_schema.set_active(self.__get_value("DoublePinyinSchema", 0))
++        if self.__full_pinyin.get_active():
++            # self.__incomplete_pinyin.set_sensitive(True)
++            self.__double_pinyin_schema.set_sensitive(False)
++            # self.__double_pinyin_schema_label.set_sensitive(False)
++            self.__double_pinyin_show_raw.set_sensitive(False)
++        else:
++            # self.__incomplete_pinyin.set_sensitive(False)
++            self.__double_pinyin_schema.set_sensitive(True)
++            # self.__double_pinyin_schema_label.set_sensitive(True)
++            self.__double_pinyin_show_raw.set_sensitive(True)
++
++        def __double_pinyin_toggled_cb(widget):
++            val = widget.get_active()
++            self.__set_value("DoublePinyin", val)
++            self.__double_pinyin_schema.set_sensitive(val)
++            # self.__double_pinyin_schema_label.set_sensitive(val)
++            self.__double_pinyin_show_raw.set_sensitive(val)
++
++        def __double_pinyin_schema_changed_cb(widget):
++            self.__set_value("DoublePinyinSchema", widget.get_active())
++
++        # connect signals
++        self.__double_pinyin.connect("toggled", __double_pinyin_toggled_cb)
++        self.__incomplete_pinyin.connect("toggled", self.__toggled_cb, "IncompletePinyin")
++        self.__double_pinyin_schema.connect("changed", __double_pinyin_schema_changed_cb)
++        self.__double_pinyin_show_raw.connect("toggled", self.__toggled_cb, "DoublePinyinShowRaw")
++        
++        self.__init_input_custom()
++        self.__init_correct_pinyin()
++        
++    def __init_bopomofo(self):
++        # page Bopomodo Mode
++        self.__page_bopomofo_mode.show()
++        
++        # bopomofo mode
++        self.__incomplete_bopomofo = self.__builder.get_object("IncompleteBopomofo")
++        self.__bopomofo_keyboard_mapping = self.__builder.get_object("BopomofoKeyboardMapping")
++        renderer = gtk.CellRendererText()
++        self.__bopomofo_keyboard_mapping.pack_start(renderer)
++        self.__bopomofo_keyboard_mapping.set_attributes(renderer, text=0)
++        
++        # selection mode
++        self.__select_keys = self.__builder.get_object("SelectKeys")
++        self.__select_keys.pack_start(renderer)
++        self.__select_keys.set_attributes(renderer, text=0)
++        self.__guide_key = self.__builder.get_object("GuideKey")
++        self.__auxiliary_select_key_f = self.__builder.get_object("AuxiliarySelectKey_F")
++        self.__auxiliary_select_key_kp = self.__builder.get_object("AuxiliarySelectKey_KP")
++
++        # other
++        self.__enter_key = self.__builder.get_object("CommitFirstCandidate")
++
++        # read value
++        self.__bopomofo_keyboard_mapping.set_active(self.__get_value("BopomofoKeyboardMapping", 0))
++        self.__incomplete_bopomofo.set_active(self.__get_value("IncompletePinyin", False))
++        self.__select_keys.set_active(self.__get_value("SelectKeys", 0))
++        self.__guide_key.set_active(self.__get_value("GuideKey", 1))
++        self.__auxiliary_select_key_f.set_active(self.__get_value("AuxiliarySelectKey_F", 1))
++        self.__auxiliary_select_key_kp.set_active(self.__get_value("AuxiliarySelectKey_KP", 1))
++        self.__enter_key.set_active(self.__get_value("EnterKey", True))
++
++        # connect signals
++        def __bopomofo_keyboard_mapping_changed_cb(widget):
++            self.__set_value("BopomofoKeyboardMapping", widget.get_active())
++        def __select_keys_changed_cb(widget):
++            self.__set_value("SelectKeys", widget.get_active())
++        
++        self.__bopomofo_keyboard_mapping.connect("changed", __bopomofo_keyboard_mapping_changed_cb)
++        self.__incomplete_bopomofo.connect("toggled", self.__toggled_cb, "IncompletePinyin")
++        self.__select_keys.connect("changed", __select_keys_changed_cb)
++        self.__guide_key.connect("toggled", self.__toggled_cb, "GuideKey")
++        self.__auxiliary_select_key_f.connect("toggled", self.__toggled_cb, "AuxiliarySelectKey_F")
++        self.__auxiliary_select_key_kp.connect("toggled", self.__toggled_cb, "AuxiliarySelectKey_KP")
++        self.__enter_key.connect("toggled", self.__toggled_cb, "EnterKey")
++
++    def __init_input_custom(self):
++        # others
++        self.__shift_select_candidate = self.__builder.get_object("ShiftSelectCandidate")
++        self.__minus_equal_page = self.__builder.get_object("MinusEqualPage")
++        self.__comma_period_page = self.__builder.get_object("CommaPeriodPage")
++        self.__auto_commit = self.__builder.get_object("AutoCommit")
++
++        # read values
++        self.__shift_select_candidate.set_active(self.__get_value("ShiftSelectCandidate", False))
++        self.__minus_equal_page.set_active(self.__get_value("MinusEqualPage", True))
++        self.__comma_period_page.set_active(self.__get_value("CommaPeriodPage", True))
++        self.__auto_commit.set_active(self.__get_value("AutoCommit", False))
++
++        # connect signals
++        self.__shift_select_candidate.connect("toggled", self.__toggled_cb, "ShiftSelectCandidate")
++        self.__minus_equal_page.connect("toggled", self.__toggled_cb, "MinusEqualPage")
++        self.__comma_period_page.connect("toggled", self.__toggled_cb, "CommaPeriodPage")
++        self.__auto_commit.connect("toggled", self.__toggled_cb, "AutoCommit")
++
++    def __init_correct_pinyin(self):
++        # auto correct
++        self.__correct_pinyin = self.__builder.get_object("CorrectPinyin")
++        self.__correct_pinyin_widgets = [
++            ("CorrectPinyin_GN_NG", True),
++            ("CorrectPinyin_MG_NG", True),
++            ("CorrectPinyin_IOU_IU", True),
++            ("CorrectPinyin_UEI_UI", True),
++            ("CorrectPinyin_UEN_UN", True),
++            ("CorrectPinyin_UE_VE", True),
++            ("CorrectPinyin_V_U", True),
++            ("CorrectPinyin_ON_ONG", True),
++        ]
++
++        def __correct_pinyin_toggled_cb(widget):
++            val = widget.get_active()
++            map(lambda w: self.__builder.get_object(w[0]).set_sensitive(val),
++                self.__correct_pinyin_widgets)
++        self.__correct_pinyin.connect("toggled", __correct_pinyin_toggled_cb)
++
++        # init value
++        self.__correct_pinyin.set_active(self.__get_value("CorrectPinyin", True))
++        for name, defval in self.__correct_pinyin_widgets:
++            widget = self.__builder.get_object(name)
++            widget.set_active(self.__get_value(name, defval))
++
++        self.__correct_pinyin.connect("toggled", self.__toggled_cb, "CorrectPinyin")
++        for name, defval in self.__correct_pinyin_widgets:
++            widget = self.__builder.get_object(name)
++            widget.connect("toggled", self.__toggled_cb, name)
++
++    def __init_fuzzy(self):
++        # page Fuzzy
++        self.__page_fuzzy.show()
++        
++        # fuzzy pinyin
++        self.__fuzzy_pinyin = self.__builder.get_object("FuzzyPinyin")
++        self.__fuzzy_pinyin_widgets = [
++            ("FuzzyPinyin_C_CH", True),
++            ("FuzzyPinyin_Z_ZH", True),
++            ("FuzzyPinyin_S_SH", True),
++            ("FuzzyPinyin_CH_C", False),
++            ("FuzzyPinyin_ZH_Z", False),
++            ("FuzzyPinyin_SH_S", False),
++            ("FuzzyPinyin_L_N", True),
++            ("FuzzyPinyin_F_H", True),
++            ("FuzzyPinyin_L_R", False),
++            ("FuzzyPinyin_K_G", True),
++            ("FuzzyPinyin_N_L", False),
++            ("FuzzyPinyin_H_F", False),
++            ("FuzzyPinyin_R_L", False),
++            ("FuzzyPinyin_G_K", False),
++            ("FuzzyPinyin_AN_ANG", True),
++            ("FuzzyPinyin_EN_ENG", True),
++            ("FuzzyPinyin_IN_ING", True),
++            ("FuzzyPinyin_ANG_AN", True),
++            ("FuzzyPinyin_ENG_EN", True),
++            ("FuzzyPinyin_ING_IN", True),
++            # ("FuzzyPinyin_IAN_IANG", True),
++            # ("FuzzyPinyin_UAN_UANG", True),
++            # ("FuzzyPinyin_IANG_IAN", True),
++            # ("FuzzyPinyin_UANG_UAN", True),
++        ]
++
++        def __fuzzy_pinyin_toggled_cb(widget):
++            val = widget.get_active()
++            map(lambda w: self.__builder.get_object(w[0]).set_sensitive(val),
++                self.__fuzzy_pinyin_widgets)
++        self.__fuzzy_pinyin.connect("toggled", __fuzzy_pinyin_toggled_cb)
++
++        # init value
++        self.__fuzzy_pinyin.set_active(self.__get_value("FuzzyPinyin", False))
++        for name, defval in self.__fuzzy_pinyin_widgets:
++            widget = self.__builder.get_object(name)
++            widget.set_active(self.__get_value(name, defval))
++
++        self.__fuzzy_pinyin.connect("toggled", self.__toggled_cb, "FuzzyPinyin")
++        for name, defval in self.__fuzzy_pinyin_widgets:
++            widget = self.__builder.get_object(name)
++            widget.connect("toggled", self.__toggled_cb, name)
++
++    def __convert_fuzzy_pinyin_to_bopomofo(self):
++        options = [
++            ("FuzzyPinyin_C_CH",   "ㄘ => ㄔ"),
++            ("FuzzyPinyin_Z_ZH",   "ㄗ => ㄓ"),
++            ("FuzzyPinyin_S_SH",   "ㄙ => ㄕ"),
++            ("FuzzyPinyin_CH_C",   "ㄔ => ㄘ"),
++            ("FuzzyPinyin_ZH_Z",   "ㄓ => ㄗ"),
++            ("FuzzyPinyin_SH_S",   "ㄕ => ㄙ"),
++            ("FuzzyPinyin_L_N",    "ㄌ => ㄋ"),
++            ("FuzzyPinyin_F_H",    "ㄈ => ㄏ"),
++            ("FuzzyPinyin_L_R",    "ㄌ => ㄖ"),
++            ("FuzzyPinyin_K_G",    "ㄎ => ㄍ"),
++            ("FuzzyPinyin_N_L",    "ㄋ => ㄌ"),
++            ("FuzzyPinyin_H_F",    "ㄏ => ㄈ"),
++            ("FuzzyPinyin_R_L",    "ㄖ => ㄌ"),
++            ("FuzzyPinyin_G_K",    "ㄍ => ㄎ"),
++            ("FuzzyPinyin_AN_ANG", "ㄢ => ㄤ"),
++            ("FuzzyPinyin_EN_ENG", "ㄣ => ㄥ"),
++            ("FuzzyPinyin_IN_ING", "ㄧㄣ => ㄧㄥ"),
++            ("FuzzyPinyin_ANG_AN", "ㄤ => ㄢ"),
++            ("FuzzyPinyin_ENG_EN", "ㄥ => ㄣ"),
++            ("FuzzyPinyin_ING_IN", "ㄧㄥ => ㄧㄣ"),
++            # ("FuzzyPinyin_IAN_IANG", "ㄧㄢ => ㄧㄤ"),
++            # ("FuzzyPinyin_UAN_UANG", "ㄨㄢ => ㄨㄤ"),
++            # ("FuzzyPinyin_IANG_IAN", "ㄧㄤ => ㄧㄢ"),
++            # ("FuzzyPinyin_UANG_UAN", "ㄨㄤ => ㄨㄢ"),
++        ]
++
++        for name, label in options:
++            self.__builder.get_object(name).set_label(label)
++
++
++    def __init_dictionary(self):
++        # page Dictionary
++        self.__page_dictionary.show()
++    
++        # dictionary
++        self.__special_phrases = self.__builder.get_object("SpecialPhrases")
++        self.__edit_special_phrases = self.__builder.get_object("EditSpecialPhrases")
++
++        # read values
++        self.__special_phrases.set_active(self.__get_value("SpecialPhrases", True))
++
++        def __edit_special_phrases_clicked_cb(widget):
++            from xdg import BaseDirectory
++            import shutil
++            path = os.path.join(BaseDirectory.xdg_config_home, "ibus", "pinyin")
++            os.path.exists(path) or os.makedirs(path)
++            path = os.path.join(path, "phrases.txt")
++            if not os.path.exists(path):
++                datadir = os.getenv("IBUS_DATAROOTDIR") or "/usr/share"
++                src = os.path.join(datadir, "ibus-pinyin", "phrases.txt")
++                shutil.copyfile(src, path)
++            os.system("xdg-open %s" % path)
++
++        # connect signals
++        self.__special_phrases.connect("toggled", self.__toggled_cb, "SpecialPhrases")
++        self.__edit_special_phrases.connect("clicked", __edit_special_phrases_clicked_cb)
++
++    def __init_about(self):
++        # page About
++        self.__page_about.show()
++        
++        self.__name_version = self.__builder.get_object("NameVersion")
++        self.__name_version.set_markup(_("<big><b>IBus Pinyin %s</b></big>") % version.get_version())
++
++    def __changed_cb(self, widget, name):
++        self.__set_value(name, widget.get_active())
++
++    def __toggled_cb(self, widget, name):
++        self.__set_value(name, widget.get_active ())
++
++    def __get_value(self, name, defval):
++        value = self.__config.get_value(self.__config_namespace, name, "test_default_value_9898")
++        if value != "test_default_value_9898":
++            return value
++        self.__set_value(name, defval)
++        return defval
++
++    def __set_value(self, name, val):
++        self.__config.set_value(self.__config_namespace, name, val)
++
++    def run(self):
++        return self.__dialog.run()
++
++def main():
++    name = "pinyin"
++    libpinyin = False
++    for arg in sys.argv[1:]:
++        if arg == "--libpinyin":
++            libpinyin = True
++        else:
++            name = arg
++    if name not in ("pinyin", "bopomofo"):
++        name = "pinyin"
++    PreferencesDialog(name, libpinyin).run()
++
++
++if __name__ == "__main__":
++    main()
+-- 
+1.7.7.6
+
+
+From d093c2d0837266fe21ff01016819dd4e2bfdd83c Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Mon, 26 Mar 2012 13:50:28 +0800
+Subject: [PATCH 112/116] update main.py
+
+---
+ setup/main.py  |   21 ++++++---------------
+ setup/main2.py |   22 +++++++---------------
+ 2 files changed, 13 insertions(+), 30 deletions(-)
+
+diff --git a/setup/main.py b/setup/main.py
+index 197ea8b..0e3a729 100644
+--- a/setup/main.py
++++ b/setup/main.py
+@@ -31,13 +31,12 @@ from xdg import BaseDirectory
+ _ = lambda a : gettext.dgettext("ibus-pinyin", a)
+ 
+ class PreferencesDialog:
+-    def __init__(self,engine,libpinyin):
++    def __init__(self,engine):
+         locale.setlocale(locale.LC_ALL, "")
+         localedir = os.getenv("IBUS_LOCALEDIR")
+         gettext.bindtextdomain("ibus-pinyin", localedir)
+         gettext.bind_textdomain_codeset("ibus-pinyin", "UTF-8")
+ 
+-        self.__libpinyin = libpinyin
+         self.__bus = ibus.Bus()
+         self.__config = self.__bus.get_config()
+         self.__builder = gtk.Builder()
+@@ -51,16 +50,14 @@ class PreferencesDialog:
+             self.__init_general()
+             self.__init_pinyin()
+             self.__init_fuzzy()
+-            if not self.__libpinyin:
+-                self.__init_dictionary()
++            self.__init_dictionary()
+             self.__init_about()
+         elif engine == "bopomofo":
+             self.__config_namespace = "engine/Bopomofo"
+             self.__init_general()
+             self.__init_bopomofo()
+             self.__init_fuzzy()
+-            if not self.__libpinyin:
+-                self.__init_dictionary()
++            self.__init_dictionary()
+             self.__init_about()
+             self.__convert_fuzzy_pinyin_to_bopomofo()
+             
+@@ -141,8 +138,6 @@ class PreferencesDialog:
+         self.__double_pinyin_schema = self.__builder.get_object("DoublePinyinSchema")
+         # self.__double_pinyin_schema_label = self.__builder.get_object("labelDoublePinyinSchema")
+         self.__double_pinyin_show_raw = self.__builder.get_object("DoublePinyinShowRaw")
+-        if self.__libpinyin:
+-            self.__double_pinyin_show_raw.hide ()
+ 
+         renderer = gtk.CellRendererText()
+         self.__double_pinyin_schema.pack_start(renderer)
+@@ -414,15 +409,11 @@ class PreferencesDialog:
+ 
+ def main():
+     name = "pinyin"
+-    libpinyin = False
+-    for arg in sys.argv[1:]:
+-        if arg == "--libpinyin":
+-            libpinyin = True
+-        else:
+-            name = arg
++    if len(sys.argv) == 2:
++        name = sys.argv[1]
+     if name not in ("pinyin", "bopomofo"):
+         name = "pinyin"
+-    PreferencesDialog(name, libpinyin).run()
++    PreferencesDialog(name).run()
+ 
+ 
+ if __name__ == "__main__":
+diff --git a/setup/main2.py b/setup/main2.py
+index 197ea8b..a21acad 100644
+--- a/setup/main2.py
++++ b/setup/main2.py
+@@ -31,13 +31,12 @@ from xdg import BaseDirectory
+ _ = lambda a : gettext.dgettext("ibus-pinyin", a)
+ 
+ class PreferencesDialog:
+-    def __init__(self,engine,libpinyin):
++    def __init__(self,engine):
+         locale.setlocale(locale.LC_ALL, "")
+         localedir = os.getenv("IBUS_LOCALEDIR")
+         gettext.bindtextdomain("ibus-pinyin", localedir)
+         gettext.bind_textdomain_codeset("ibus-pinyin", "UTF-8")
+ 
+-        self.__libpinyin = libpinyin
+         self.__bus = ibus.Bus()
+         self.__config = self.__bus.get_config()
+         self.__builder = gtk.Builder()
+@@ -51,16 +50,14 @@ class PreferencesDialog:
+             self.__init_general()
+             self.__init_pinyin()
+             self.__init_fuzzy()
+-            if not self.__libpinyin:
+-                self.__init_dictionary()
++            #self.__init_dictionary()
+             self.__init_about()
+         elif engine == "bopomofo":
+             self.__config_namespace = "engine/Bopomofo"
+             self.__init_general()
+             self.__init_bopomofo()
+             self.__init_fuzzy()
+-            if not self.__libpinyin:
+-                self.__init_dictionary()
++            #self.__init_dictionary()
+             self.__init_about()
+             self.__convert_fuzzy_pinyin_to_bopomofo()
+             
+@@ -141,8 +138,7 @@ class PreferencesDialog:
+         self.__double_pinyin_schema = self.__builder.get_object("DoublePinyinSchema")
+         # self.__double_pinyin_schema_label = self.__builder.get_object("labelDoublePinyinSchema")
+         self.__double_pinyin_show_raw = self.__builder.get_object("DoublePinyinShowRaw")
+-        if self.__libpinyin:
+-            self.__double_pinyin_show_raw.hide ()
++        self.__double_pinyin_show_raw.hide ()
+ 
+         renderer = gtk.CellRendererText()
+         self.__double_pinyin_schema.pack_start(renderer)
+@@ -414,15 +410,11 @@ class PreferencesDialog:
+ 
+ def main():
+     name = "pinyin"
+-    libpinyin = False
+-    for arg in sys.argv[1:]:
+-        if arg == "--libpinyin":
+-            libpinyin = True
+-        else:
+-            name = arg
++    if len(sys.argv) == 2:
++        name = sys.argv[1]
+     if name not in ("pinyin", "bopomofo"):
+         name = "pinyin"
+-    PreferencesDialog(name, libpinyin).run()
++    PreferencesDialog(name).run()
+ 
+ 
+ if __name__ == "__main__":
+-- 
+1.7.7.6
+
+
+From fbe55876db048bc375c99d0b7fa7dc023061d0b9 Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Mon, 26 Mar 2012 13:58:35 +0800
+Subject: [PATCH 113/116] update setup dialog
+
+---
+ configure.ac                  |    1 +
+ setup/Makefile.am             |   21 ++++++++++++++++++++-
+ setup/ibus-setup-libpinyin.in |   30 ++++++++++++++++++++++++++++++
+ setup/main2.py                |    2 +-
+ src/PYPBopomofoEngine.cc      |    2 +-
+ src/PYPPinyinEngine.cc        |    2 +-
+ 6 files changed, 54 insertions(+), 4 deletions(-)
+ create mode 100644 setup/ibus-setup-libpinyin.in
+
+diff --git a/configure.ac b/configure.ac
+index 02de9b7..3b63a2b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -220,6 +220,7 @@ src/Makefile
+ src/pinyin.xml.in
+ setup/Makefile
+ setup/ibus-setup-pinyin
++setup/ibus-setup-libpinyin
+ setup/version.py
+ data/Makefile
+ data/db/Makefile
+diff --git a/setup/Makefile.am b/setup/Makefile.am
+index 565e5d4..b73f375 100644
+--- a/setup/Makefile.am
++++ b/setup/Makefile.am
+@@ -20,12 +20,18 @@
+ 
+ setup_pinyin_PYTHON = \
+ 	main.py \
++	main2.py \
+ 	version.py \
+ 	ibus-pinyin-preferences.ui \
++	ibus-libpinyin-preferences.ui \
+ 	$(NULL)
++
+ setup_pinyindir = $(datadir)/ibus-pinyin/setup
+ 
+-libexec_SCRIPTS = ibus-setup-pinyin
++libexec_SCRIPTS = \
++	ibus-setup-pinyin \
++	ibus-setup-libpinyin \
++	$(NULL)
+ 
+ CLEANFILES = \
+ 	*.pyc \
+@@ -34,6 +40,7 @@ CLEANFILES = \
+ EXTRA_DIST = \
+ 	version.py.in \
+ 	ibus-setup-pinyin.in \
++	ibus-setup-libpinyin.in \
+ 	$(NULL)
+ 
+ test-pinyin:
+@@ -47,3 +54,15 @@ test-bopomofo:
+ 		   IBUS_LOCALEDIR=@localedir@ \
+ 		   PYTHONPATH=$(abs_top_srcdir):$(pyexecdir) \
+ 		   $(PYTHON) $(srcdir)/main.py bopomofo
++
++test-libpinyin:
++	$(ENV) DBUS_DEBUG=true \
++		   IBUS_LOCALEDIR=@localedir@ \
++		   PYTHONPATH=$(abs_top_srcdir):$(pyexecdir) \
++		   $(PYTHON) $(srcdir)/main2.py pinyin
++
++test-libbopomofo:
++	$(ENV) DBUS_DEBUG=true \
++		   IBUS_LOCALEDIR=@localedir@ \
++		   PYTHONPATH=$(abs_top_srcdir):$(pyexecdir) \
++		   $(PYTHON) $(srcdir)/main2.py bopomofo
+diff --git a/setup/ibus-setup-libpinyin.in b/setup/ibus-setup-libpinyin.in
+new file mode 100644
+index 0000000..036ab3e
+--- /dev/null
++++ b/setup/ibus-setup-libpinyin.in
+@@ -0,0 +1,30 @@
++#!/bin/sh
++# vim:set noet ts=4:
++#
++# ibus-tmpl - The Input Bus template project
++#
++# Copyright (c) 2007-2008 Peng Huang <shawn.p.huang at gmail.com>
++#
++# 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, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
++
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++datarootdir=@datarootdir@
++export IBUS_PREFIX=@prefix@
++export IBUS_DATAROOTDIR=@datarootdir@
++export IBUS_LOCALEDIR=@localedir@
++cd @prefix@/share/ibus-pinyin/setup/
++exec python main2.py $@
++
+diff --git a/setup/main2.py b/setup/main2.py
+index a21acad..1280c2b 100644
+--- a/setup/main2.py
++++ b/setup/main2.py
+@@ -41,7 +41,7 @@ class PreferencesDialog:
+         self.__config = self.__bus.get_config()
+         self.__builder = gtk.Builder()
+         self.__builder.set_translation_domain("ibus-pinyin")
+-        self.__builder.add_from_file("ibus-pinyin-preferences.ui")
++        self.__builder.add_from_file("ibus-libpinyin-preferences.ui")
+         self.__dialog = self.__builder.get_object("dialog")
+         self.__init_pages()
+         
+diff --git a/src/PYPBopomofoEngine.cc b/src/PYPBopomofoEngine.cc
+index 6e5df67..05c5931 100644
+--- a/src/PYPBopomofoEngine.cc
++++ b/src/PYPBopomofoEngine.cc
+@@ -183,7 +183,7 @@ inline void
+ LibPinyinBopomofoEngine::showSetupDialog (void)
+ {
+     g_spawn_command_line_async
+-        (LIBEXECDIR"/ibus-setup-pinyin bopomofo --libpinyin", NULL);
++        (LIBEXECDIR"/ibus-setup-libpinyin bopomofo", NULL);
+ }
+ 
+ gboolean
+diff --git a/src/PYPPinyinEngine.cc b/src/PYPPinyinEngine.cc
+index 30131c2..f8e721c 100644
+--- a/src/PYPPinyinEngine.cc
++++ b/src/PYPPinyinEngine.cc
+@@ -249,7 +249,7 @@ inline void
+ LibPinyinPinyinEngine::showSetupDialog (void)
+ {
+     g_spawn_command_line_async
+-        (LIBEXECDIR"/ibus-setup-pinyin pinyin --libpinyin", NULL);
++        (LIBEXECDIR"/ibus-setup-libpinyin pinyin", NULL);
+ }
+ 
+ gboolean
+-- 
+1.7.7.6
+
+
+From c8990ccfce7a17aeaf91a72dfa585e60a71192a6 Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Mon, 26 Mar 2012 14:00:26 +0800
+Subject: [PATCH 114/116] update setup ui
+
+---
+ setup/ibus-libpinyin-preferences.ui |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/setup/ibus-libpinyin-preferences.ui b/setup/ibus-libpinyin-preferences.ui
+index febe032..5473f91 100644
+--- a/setup/ibus-libpinyin-preferences.ui
++++ b/setup/ibus-libpinyin-preferences.ui
+@@ -1512,7 +1512,7 @@
+                         <child>
+                           <object class="GtkLabel" id="NameVersion">
+                             <property name="visible">True</property>
+-                            <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;IBus Pinyin %s&lt;/b&gt;&lt;/big&gt;</property>
++                            <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;Intelligent Pinyin %s&lt;/b&gt;&lt;/big&gt;</property>
+                             <property name="use_markup">True</property>
+                             <property name="selectable">True</property>
+                           </object>
+@@ -1523,7 +1523,7 @@
+                         <child>
+                           <object class="GtkLabel" id="label14">
+                             <property name="visible">True</property>
+-                            <property name="label" translatable="yes">Pinyin input method for IBus</property>
++                            <property name="label" translatable="yes">Intelligent Pinyin input method for IBus</property>
+                             <property name="selectable">True</property>
+                           </object>
+                           <packing>
+-- 
+1.7.7.6
+
+
+From 1cf2c71ff9612ddbea6b2c3f69ffb773ec1f242a Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Tue, 27 Mar 2012 11:59:38 +0800
+Subject: [PATCH 115/116] update libpinyin setup
+
+---
+ setup/main2.py   |   50 +++++++++++---------------------------------------
+ src/PYPConfig.cc |   10 ----------
+ 2 files changed, 11 insertions(+), 49 deletions(-)
+
+diff --git a/setup/main2.py b/setup/main2.py
+index 1280c2b..1d31ab4 100644
+--- a/setup/main2.py
++++ b/setup/main2.py
+@@ -283,27 +283,13 @@ class PreferencesDialog:
+             ("FuzzyPinyin_C_CH", True),
+             ("FuzzyPinyin_Z_ZH", True),
+             ("FuzzyPinyin_S_SH", True),
+-            ("FuzzyPinyin_CH_C", False),
+-            ("FuzzyPinyin_ZH_Z", False),
+-            ("FuzzyPinyin_SH_S", False),
+             ("FuzzyPinyin_L_N", True),
+             ("FuzzyPinyin_F_H", True),
+             ("FuzzyPinyin_L_R", False),
+-            ("FuzzyPinyin_K_G", True),
+-            ("FuzzyPinyin_N_L", False),
+-            ("FuzzyPinyin_H_F", False),
+-            ("FuzzyPinyin_R_L", False),
+             ("FuzzyPinyin_G_K", False),
+             ("FuzzyPinyin_AN_ANG", True),
+             ("FuzzyPinyin_EN_ENG", True),
+             ("FuzzyPinyin_IN_ING", True),
+-            ("FuzzyPinyin_ANG_AN", True),
+-            ("FuzzyPinyin_ENG_EN", True),
+-            ("FuzzyPinyin_ING_IN", True),
+-            # ("FuzzyPinyin_IAN_IANG", True),
+-            # ("FuzzyPinyin_UAN_UANG", True),
+-            # ("FuzzyPinyin_IANG_IAN", True),
+-            # ("FuzzyPinyin_UANG_UAN", True),
+         ]
+ 
+         def __fuzzy_pinyin_toggled_cb(widget):
+@@ -325,30 +311,16 @@ class PreferencesDialog:
+ 
+     def __convert_fuzzy_pinyin_to_bopomofo(self):
+         options = [
+-            ("FuzzyPinyin_C_CH",   "ㄘ => ㄔ"),
+-            ("FuzzyPinyin_Z_ZH",   "ㄗ => ㄓ"),
+-            ("FuzzyPinyin_S_SH",   "ㄙ => ㄕ"),
+-            ("FuzzyPinyin_CH_C",   "ㄔ => ㄘ"),
+-            ("FuzzyPinyin_ZH_Z",   "ㄓ => ㄗ"),
+-            ("FuzzyPinyin_SH_S",   "ㄕ => ㄙ"),
+-            ("FuzzyPinyin_L_N",    "ㄌ => ㄋ"),
+-            ("FuzzyPinyin_F_H",    "ㄈ => ㄏ"),
+-            ("FuzzyPinyin_L_R",    "ㄌ => ㄖ"),
+-            ("FuzzyPinyin_K_G",    "ㄎ => ㄍ"),
+-            ("FuzzyPinyin_N_L",    "ㄋ => ㄌ"),
+-            ("FuzzyPinyin_H_F",    "ㄏ => ㄈ"),
+-            ("FuzzyPinyin_R_L",    "ㄖ => ㄌ"),
+-            ("FuzzyPinyin_G_K",    "ㄍ => ㄎ"),
+-            ("FuzzyPinyin_AN_ANG", "ㄢ => ㄤ"),
+-            ("FuzzyPinyin_EN_ENG", "ㄣ => ㄥ"),
+-            ("FuzzyPinyin_IN_ING", "ㄧㄣ => ㄧㄥ"),
+-            ("FuzzyPinyin_ANG_AN", "ㄤ => ㄢ"),
+-            ("FuzzyPinyin_ENG_EN", "ㄥ => ㄣ"),
+-            ("FuzzyPinyin_ING_IN", "ㄧㄥ => ㄧㄣ"),
+-            # ("FuzzyPinyin_IAN_IANG", "ㄧㄢ => ㄧㄤ"),
+-            # ("FuzzyPinyin_UAN_UANG", "ㄨㄢ => ㄨㄤ"),
+-            # ("FuzzyPinyin_IANG_IAN", "ㄧㄤ => ㄧㄢ"),
+-            # ("FuzzyPinyin_UANG_UAN", "ㄨㄤ => ㄨㄢ"),
++            ("FuzzyPinyin_C_CH",   "ㄘ <=> ㄔ"),
++            ("FuzzyPinyin_Z_ZH",   "ㄗ <=> ㄓ"),
++            ("FuzzyPinyin_S_SH",   "ㄙ <=> ㄕ"),
++            ("FuzzyPinyin_L_N",    "ㄌ <=> ㄋ"),
++            ("FuzzyPinyin_F_H",    "ㄈ <=> ㄏ"),
++            ("FuzzyPinyin_L_R",    "ㄌ <=> ㄖ"),
++            ("FuzzyPinyin_G_K",    "ㄍ <=> ㄎ"),
++            ("FuzzyPinyin_AN_ANG", "ㄢ <=> ㄤ"),
++            ("FuzzyPinyin_EN_ENG", "ㄣ <=> ㄥ"),
++            ("FuzzyPinyin_IN_ING", "ㄧㄣ <=> ㄧㄥ"),
+         ]
+ 
+         for name, label in options:
+@@ -387,7 +359,7 @@ class PreferencesDialog:
+         self.__page_about.show()
+         
+         self.__name_version = self.__builder.get_object("NameVersion")
+-        self.__name_version.set_markup(_("<big><b>IBus Pinyin %s</b></big>") % version.get_version())
++        self.__name_version.set_markup(_("<big><b>Intelligent Pinyin %s</b></big>") % version.get_version())
+ 
+     def __changed_cb(self, widget, name):
+         self.__set_value(name, widget.get_active())
+diff --git a/src/PYPConfig.cc b/src/PYPConfig.cc
+index 43bedd6..8d60ecd 100644
+--- a/src/PYPConfig.cc
++++ b/src/PYPConfig.cc
+@@ -103,25 +103,15 @@ static const struct {
+     { "IncompletePinyin",       PINYIN_INCOMPLETE|CHEWING_INCOMPLETE},
+     /* fuzzy pinyin */
+     { "FuzzyPinyin_C_CH",       PINYIN_AMB_C_CH      },
+-    { "FuzzyPinyin_CH_C",       PINYIN_AMB_C_CH      },
+     { "FuzzyPinyin_Z_ZH",       PINYIN_AMB_Z_ZH      },
+-    { "FuzzyPinyin_ZH_Z",       PINYIN_AMB_Z_ZH      },
+     { "FuzzyPinyin_S_SH",       PINYIN_AMB_S_SH      },
+-    { "FuzzyPinyin_SH_S",       PINYIN_AMB_S_SH      },
+     { "FuzzyPinyin_L_N",        PINYIN_AMB_L_N       },
+-    { "FuzzyPinyin_N_L",        PINYIN_AMB_L_N       },
+     { "FuzzyPinyin_F_H",        PINYIN_AMB_F_H       },
+-    { "FuzzyPinyin_H_F",        PINYIN_AMB_F_H       },
+     { "FuzzyPinyin_L_R",        PINYIN_AMB_L_R       },
+-    { "FuzzyPinyin_R_L",        PINYIN_AMB_L_R       },
+-    { "FuzzyPinyin_K_G",        PINYIN_AMB_G_K       },
+     { "FuzzyPinyin_G_K",        PINYIN_AMB_G_K       },
+     { "FuzzyPinyin_AN_ANG",     PINYIN_AMB_AN_ANG    },
+-    { "FuzzyPinyin_ANG_AN",     PINYIN_AMB_AN_ANG    },
+     { "FuzzyPinyin_EN_ENG",     PINYIN_AMB_EN_ENG    },
+-    { "FuzzyPinyin_ENG_EN",     PINYIN_AMB_EN_ENG    },
+     { "FuzzyPinyin_IN_ING",     PINYIN_AMB_IN_ING    },
+-    { "FuzzyPinyin_ING_IN",     PINYIN_AMB_IN_ING    },
+ };
+ 
+ void
+-- 
+1.7.7.6
+
+
+From 26067f84fb3793e9559f60d3caf70404dad99458 Mon Sep 17 00:00:00 2001
+From: Peng Wu <alexepico at gmail.com>
+Date: Tue, 27 Mar 2012 12:14:16 +0800
+Subject: [PATCH 116/116] update setup ui
+
+---
+ setup/ibus-libpinyin-preferences.ui |  541 ++++++++++++++++++++---------------
+ 1 files changed, 309 insertions(+), 232 deletions(-)
+
+diff --git a/setup/ibus-libpinyin-preferences.ui b/setup/ibus-libpinyin-preferences.ui
+index 5473f91..a999b63 100644
+--- a/setup/ibus-libpinyin-preferences.ui
++++ b/setup/ibus-libpinyin-preferences.ui
+@@ -1,26 +1,67 @@
+ <?xml version="1.0" encoding="UTF-8"?>
+ <interface>
+   <requires lib="gtk+" version="2.14"/>
+-  <!-- interface-naming-policy project-wide -->
++  <object class="GtkAdjustment" id="LookupTablePageSize">
++    <property name="lower">1</property>
++    <property name="upper">11</property>
++    <property name="value">1</property>
++    <property name="step_increment">1</property>
++    <property name="page_increment">1</property>
++    <property name="page_size">1</property>
++  </object>
+   <object class="GtkDialog" id="dialog">
+     <property name="width_request">400</property>
++    <property name="can_focus">False</property>
+     <property name="border_width">5</property>
+     <property name="title" translatable="yes">Preferences</property>
+     <property name="window_position">center-always</property>
+     <property name="icon_name">gtk-preferences</property>
+     <property name="type_hint">normal</property>
+     <child internal-child="vbox">
+-      <object class="GtkVBox" id="dialog-vbox1">
++      <object class="GtkBox" id="dialog-vbox1">
+         <property name="visible">True</property>
++        <property name="can_focus">False</property>
+         <property name="spacing">2</property>
++        <child internal-child="action_area">
++          <object class="GtkButtonBox" id="dialog-action_area1">
++            <property name="visible">True</property>
++            <property name="can_focus">False</property>
++            <property name="layout_style">end</property>
++            <child>
++              <object class="GtkButton" id="buttonClose">
++                <property name="label">gtk-close</property>
++                <property name="visible">True</property>
++                <property name="can_focus">True</property>
++                <property name="has_focus">True</property>
++                <property name="is_focus">True</property>
++                <property name="can_default">True</property>
++                <property name="has_default">True</property>
++                <property name="receives_default">True</property>
++                <property name="use_action_appearance">False</property>
++                <property name="use_stock">True</property>
++              </object>
++              <packing>
++                <property name="expand">False</property>
++                <property name="fill">False</property>
++                <property name="position">0</property>
++              </packing>
++            </child>
++          </object>
++          <packing>
++            <property name="expand">False</property>
++            <property name="fill">True</property>
++            <property name="pack_type">end</property>
++            <property name="position">0</property>
++          </packing>
++        </child>
+         <child>
+           <object class="GtkNotebook" id="pages">
+             <property name="visible">True</property>
+             <property name="can_focus">True</property>
+-            <property name="tab_vborder">3</property>
+             <child>
+               <object class="GtkAlignment" id="pageGeneral">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="top_padding">12</property>
+                 <property name="bottom_padding">12</property>
+                 <property name="left_padding">12</property>
+@@ -28,20 +69,24 @@
+                 <child>
+                   <object class="GtkVBox" id="vbox13">
+                     <property name="visible">True</property>
++                    <property name="can_focus">False</property>
+                     <property name="spacing">18</property>
+                     <child>
+                       <object class="GtkFrame" id="frame4">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="label_xalign">0</property>
+                         <property name="shadow_type">none</property>
+                         <child>
+                           <object class="GtkAlignment" id="alignment7">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="top_padding">6</property>
+                             <property name="left_padding">12</property>
+                             <child>
+                               <object class="GtkTable" id="table4">
+                                 <property name="visible">True</property>
++                                <property name="can_focus">False</property>
+                                 <property name="n_rows">4</property>
+                                 <property name="n_columns">3</property>
+                                 <property name="column_spacing">12</property>
+@@ -50,6 +95,7 @@
+                                 <child>
+                                   <object class="GtkLabel" id="label9">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="xalign">0</property>
+                                     <property name="label" translatable="yes">Language:</property>
+                                   </object>
+@@ -57,6 +103,7 @@
+                                 <child>
+                                   <object class="GtkLabel" id="label10">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="xalign">0</property>
+                                     <property name="label" translatable="yes">Half/full width:</property>
+                                   </object>
+@@ -68,6 +115,7 @@
+                                 <child>
+                                   <object class="GtkLabel" id="label11">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="xalign">0</property>
+                                     <property name="label" translatable="yes">Punctuations:</property>
+                                   </object>
+@@ -82,6 +130,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="draw_indicator">True</property>
+                                     <property name="group">InitEnglish</property>
+                                   </object>
+@@ -96,6 +145,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -110,6 +160,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="draw_indicator">True</property>
+                                     <property name="group">InitHalf</property>
+                                   </object>
+@@ -126,6 +177,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -142,6 +194,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="draw_indicator">True</property>
+                                     <property name="group">InitHalfPunct</property>
+                                   </object>
+@@ -158,6 +211,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -171,6 +225,7 @@
+                                 <child>
+                                   <object class="GtkLabel" id="label18">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="xalign">0</property>
+                                     <property name="label" translatable="yes">Chinese:</property>
+                                   </object>
+@@ -185,6 +240,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="draw_indicator">True</property>
+                                     <property name="group">InitTraditionalChinese</property>
+                                   </object>
+@@ -201,6 +257,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -218,6 +275,7 @@
+                         <child type="label">
+                           <object class="GtkLabel" id="label7">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;b&gt;Initial state&lt;/b&gt;</property>
+                             <property name="use_markup">True</property>
+                           </object>
+@@ -232,61 +290,77 @@
+                     <child>
+                       <object class="GtkFrame" id="frame5">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="label_xalign">0</property>
+                         <property name="shadow_type">none</property>
+                         <child>
+                           <object class="GtkAlignment" id="alignment8">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="top_padding">6</property>
+                             <property name="left_padding">12</property>
+                             <child>
+                               <object class="GtkVBox" id="vbox8">
+                                 <property name="visible">True</property>
++                                <property name="can_focus">False</property>
+                                 <property name="spacing">6</property>
+                                 <child>
+                                   <object class="GtkHBox" id="hbox3">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="spacing">12</property>
+                                     <property name="homogeneous">True</property>
+                                     <child>
+                                       <object class="GtkLabel" id="label4">
+                                         <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
+                                         <property name="xalign">0</property>
+                                         <property name="label" translatable="yes">Orientation of candidates:</property>
+                                         <property name="use_markup">True</property>
+                                       </object>
+                                       <packing>
++                                        <property name="expand">True</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">0</property>
+                                       </packing>
+                                     </child>
+                                     <child>
+                                       <object class="GtkComboBox" id="LookupTableOrientation">
+                                         <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
+                                         <property name="model">liststoreLookupTableOrientation</property>
+                                         <property name="button_sensitivity">on</property>
+                                       </object>
+                                       <packing>
++                                        <property name="expand">True</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">1</property>
+                                       </packing>
+                                     </child>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">0</property>
+                                   </packing>
+                                 </child>
+                                 <child>
+                                   <object class="GtkHBox" id="hbox4">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="spacing">12</property>
+                                     <property name="homogeneous">True</property>
+                                     <child>
+                                       <object class="GtkLabel" id="label16">
+                                         <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
+                                         <property name="xalign">0</property>
+                                         <property name="label" translatable="yes">Number of candidates:</property>
+                                         <property name="use_markup">True</property>
+                                       </object>
+                                       <packing>
++                                        <property name="expand">True</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">0</property>
+                                       </packing>
+                                     </child>
+@@ -294,17 +368,20 @@
+                                       <object class="GtkHScale" id="hscaleLookupTablePageSize">
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+-                                        <property name="update_policy">delayed</property>
+                                         <property name="adjustment">LookupTablePageSize</property>
+                                         <property name="digits">0</property>
+                                         <property name="value_pos">left</property>
+                                       </object>
+                                       <packing>
++                                        <property name="expand">True</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">1</property>
+                                       </packing>
+                                     </child>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">1</property>
+                                   </packing>
+                                 </child>
+@@ -315,6 +392,7 @@
+                         <child type="label">
+                           <object class="GtkLabel" id="label8">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;b&gt;UI&lt;/b&gt;</property>
+                             <property name="use_markup">True</property>
+                           </object>
+@@ -333,6 +411,7 @@
+             <child type="tab">
+               <object class="GtkLabel" id="label19">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="label" translatable="yes">General</property>
+               </object>
+               <packing>
+@@ -342,6 +421,7 @@
+             <child>
+               <object class="GtkAlignment" id="pagePinyinMode">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="top_padding">12</property>
+                 <property name="bottom_padding">12</property>
+                 <property name="left_padding">12</property>
+@@ -349,24 +429,29 @@
+                 <child>
+                   <object class="GtkVBox" id="vbox4">
+                     <property name="visible">True</property>
++                    <property name="can_focus">False</property>
+                     <property name="spacing">18</property>
+                     <child>
+                       <object class="GtkFrame" id="frame3">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="label_xalign">0</property>
+                         <property name="shadow_type">none</property>
+                         <child>
+                           <object class="GtkAlignment" id="alignment6">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="top_padding">6</property>
+                             <property name="left_padding">12</property>
+                             <child>
+                               <object class="GtkVBox" id="vbox9">
+                                 <property name="visible">True</property>
++                                <property name="can_focus">False</property>
+                                 <property name="spacing">6</property>
+                                 <child>
+                                   <object class="GtkHBox" id="hbox6">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="spacing">6</property>
+                                     <property name="homogeneous">True</property>
+                                     <child>
+@@ -375,17 +460,20 @@
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+                                         <property name="receives_default">False</property>
++                                        <property name="use_action_appearance">False</property>
+                                         <property name="draw_indicator">True</property>
+                                         <property name="group">DoublePinyin</property>
+                                       </object>
+                                       <packing>
+                                         <property name="expand">False</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">0</property>
+                                       </packing>
+                                     </child>
+                                     <child>
+                                       <object class="GtkHBox" id="hbox7">
+                                         <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
+                                         <property name="spacing">6</property>
+                                         <child>
+                                           <object class="GtkRadioButton" id="DoublePinyin">
+@@ -393,11 +481,13 @@
+                                             <property name="visible">True</property>
+                                             <property name="can_focus">True</property>
+                                             <property name="receives_default">False</property>
++                                            <property name="use_action_appearance">False</property>
+                                             <property name="active">True</property>
+                                             <property name="draw_indicator">True</property>
+                                           </object>
+                                           <packing>
+                                             <property name="expand">False</property>
++                                            <property name="fill">True</property>
+                                             <property name="position">0</property>
+                                           </packing>
+                                         </child>
+@@ -405,21 +495,27 @@
+                                           <object class="GtkComboBox" id="DoublePinyinSchema">
+                                             <property name="visible">True</property>
+                                             <property name="sensitive">False</property>
++                                            <property name="can_focus">False</property>
+                                             <property name="model">liststoreDoublePinyin</property>
+                                             <property name="button_sensitivity">on</property>
+                                           </object>
+                                           <packing>
++                                            <property name="expand">True</property>
++                                            <property name="fill">True</property>
+                                             <property name="position">1</property>
+                                           </packing>
+                                         </child>
+                                       </object>
+                                       <packing>
+                                         <property name="expand">False</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">1</property>
+                                       </packing>
+                                     </child>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">0</property>
+                                   </packing>
+                                 </child>
+@@ -429,9 +525,12 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">1</property>
+                                   </packing>
+                                 </child>
+@@ -441,10 +540,13 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">2</property>
+                                   </packing>
+                                 </child>
+@@ -455,6 +557,7 @@
+                         <child type="label">
+                           <object class="GtkLabel" id="label6">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;b&gt;Pinyin mode&lt;/b&gt;</property>
+                             <property name="use_markup">True</property>
+                           </object>
+@@ -462,26 +565,31 @@
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
++                        <property name="fill">True</property>
+                         <property name="position">0</property>
+                       </packing>
+                     </child>
+                     <child>
+                       <object class="GtkFrame" id="frame6">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="label_xalign">0</property>
+                         <property name="shadow_type">none</property>
+                         <child>
+                           <object class="GtkAlignment" id="alignment11">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="top_padding">6</property>
+                             <property name="left_padding">12</property>
+                             <child>
+                               <object class="GtkVBox" id="vbox11">
+                                 <property name="visible">True</property>
++                                <property name="can_focus">False</property>
+                                 <property name="spacing">6</property>
+                                 <child>
+                                   <object class="GtkTable" id="table2">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="n_rows">2</property>
+                                     <property name="n_columns">2</property>
+                                     <property name="column_spacing">6</property>
+@@ -493,6 +601,7 @@
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+                                         <property name="receives_default">False</property>
++                                        <property name="use_action_appearance">False</property>
+                                         <property name="draw_indicator">True</property>
+                                       </object>
+                                     </child>
+@@ -502,6 +611,7 @@
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+                                         <property name="receives_default">False</property>
++                                        <property name="use_action_appearance">False</property>
+                                         <property name="active">True</property>
+                                         <property name="draw_indicator">True</property>
+                                       </object>
+@@ -516,6 +626,7 @@
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+                                         <property name="receives_default">False</property>
++                                        <property name="use_action_appearance">False</property>
+                                         <property name="active">True</property>
+                                         <property name="draw_indicator">True</property>
+                                       </object>
+@@ -530,6 +641,7 @@
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+                                         <property name="receives_default">False</property>
++                                        <property name="use_action_appearance">False</property>
+                                         <property name="draw_indicator">True</property>
+                                       </object>
+                                       <packing>
+@@ -541,6 +653,8 @@
+                                     </child>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">0</property>
+                                   </packing>
+                                 </child>
+@@ -551,6 +665,7 @@
+                         <child type="label">
+                           <object class="GtkLabel" id="label20">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;b&gt;Input Custom&lt;/b&gt;</property>
+                             <property name="use_markup">True</property>
+                           </object>
+@@ -558,22 +673,26 @@
+                       </object>
+                       <packing>
+                         <property name="expand">False</property>
++                        <property name="fill">True</property>
+                         <property name="position">1</property>
+                       </packing>
+                     </child>
+                     <child>
+                       <object class="GtkFrame" id="frame9">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="label_xalign">0</property>
+                         <property name="shadow_type">none</property>
+                         <child>
+                           <object class="GtkAlignment" id="alignment4">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="top_padding">6</property>
+                             <property name="left_padding">12</property>
+                             <child>
+                               <object class="GtkTable" id="table5">
+                                 <property name="visible">True</property>
++                                <property name="can_focus">False</property>
+                                 <property name="n_rows">6</property>
+                                 <property name="n_columns">2</property>
+                                 <property name="column_spacing">6</property>
+@@ -584,6 +703,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -598,6 +718,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -612,6 +733,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -626,6 +748,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -642,6 +765,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -658,6 +782,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -674,6 +799,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -689,6 +815,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -702,6 +829,7 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+@@ -720,12 +848,15 @@
+                         <child type="label">
+                           <object class="GtkLabel" id="label22">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;b&gt;Correct pinyin&lt;/b&gt;</property>
+                             <property name="use_markup">True</property>
+                           </object>
+                         </child>
+                       </object>
+                       <packing>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
+                         <property name="position">2</property>
+                       </packing>
+                     </child>
+@@ -739,6 +870,7 @@
+             <child type="tab">
+               <object class="GtkLabel" id="label1">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="label" translatable="yes">Pinyin mode</property>
+               </object>
+               <packing>
+@@ -749,6 +881,7 @@
+             <child>
+               <object class="GtkAlignment" id="pageBopomofoMode">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="top_padding">12</property>
+                 <property name="bottom_padding">12</property>
+                 <property name="left_padding">12</property>
+@@ -756,20 +889,24 @@
+                 <child>
+                   <object class="GtkVBox" id="vbox10">
+                     <property name="visible">True</property>
++                    <property name="can_focus">False</property>
+                     <property name="spacing">18</property>
+                     <child>
+                       <object class="GtkFrame" id="frame8">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="label_xalign">0</property>
+                         <property name="shadow_type">none</property>
+                         <child>
+                           <object class="GtkAlignment" id="alignment15">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="top_padding">6</property>
+                             <property name="left_padding">12</property>
+                             <child>
+                               <object class="GtkVBox" id="vbox15">
+                                 <property name="visible">True</property>
++                                <property name="can_focus">False</property>
+                                 <property name="spacing">6</property>
+                                 <child>
+                                   <object class="GtkCheckButton" id="IncompleteBopomofo">
+@@ -777,38 +914,50 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">0</property>
+                                   </packing>
+                                 </child>
+                                 <child>
+                                   <object class="GtkHBox" id="hbox5">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <child>
+                                       <object class="GtkLabel" id="labelBopomofoKeyboardMapping">
+                                         <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
+                                         <property name="xalign">0</property>
+                                         <property name="label" translatable="yes">Keyboard Mapping:</property>
+                                       </object>
+                                       <packing>
++                                        <property name="expand">True</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">0</property>
+                                       </packing>
+                                     </child>
+                                     <child>
+                                       <object class="GtkComboBox" id="BopomofoKeyboardMapping">
+                                         <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
+                                         <property name="model">liststoreBopomofoKeyboardMapping</property>
+                                         <property name="button_sensitivity">on</property>
+                                       </object>
+                                       <packing>
++                                        <property name="expand">True</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">1</property>
+                                       </packing>
+                                     </child>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">1</property>
+                                   </packing>
+                                 </child>
+@@ -819,6 +968,7 @@
+                         <child type="label">
+                           <object class="GtkLabel" id="label2">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;b&gt;Bopomofo mode&lt;/b&gt;</property>
+                             <property name="use_markup">True</property>
+                           </object>
+@@ -833,42 +983,54 @@
+                     <child>
+                       <object class="GtkFrame" id="frame1">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="label_xalign">0</property>
+                         <property name="shadow_type">none</property>
+                         <child>
+                           <object class="GtkAlignment" id="alignment1">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="top_padding">6</property>
+                             <property name="left_padding">12</property>
+                             <child>
+                               <object class="GtkVBox" id="vbox2">
+                                 <property name="visible">True</property>
++                                <property name="can_focus">False</property>
+                                 <property name="spacing">6</property>
+                                 <child>
+                                   <object class="GtkHBox" id="hbox9">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <child>
+                                       <object class="GtkLabel" id="labelSelectionKeys">
+                                         <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
+                                         <property name="xalign">0</property>
+                                         <property name="label" translatable="yes">Selection Keys:</property>
+                                       </object>
+                                       <packing>
++                                        <property name="expand">True</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">0</property>
+                                       </packing>
+                                     </child>
+                                     <child>
+                                       <object class="GtkComboBox" id="SelectKeys">
+                                         <property name="visible">True</property>
++                                        <property name="can_focus">False</property>
+                                         <property name="model">liststoreSelectionKeys</property>
+                                         <property name="button_sensitivity">on</property>
+                                       </object>
+                                       <packing>
++                                        <property name="expand">True</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">1</property>
+                                       </packing>
+                                     </child>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">0</property>
+                                   </packing>
+                                 </child>
+@@ -878,10 +1040,13 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">1</property>
+                                   </packing>
+                                 </child>
+@@ -891,10 +1056,13 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">2</property>
+                                   </packing>
+                                 </child>
+@@ -904,10 +1072,13 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">3</property>
+                                   </packing>
+                                 </child>
+@@ -918,6 +1089,7 @@
+                         <child type="label">
+                           <object class="GtkLabel" id="label23">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;b&gt;Selection mode&lt;/b&gt;</property>
+                             <property name="use_markup">True</property>
+                           </object>
+@@ -932,24 +1104,30 @@
+                     <child>
+                       <object class="GtkFrame" id="frame10">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="label_xalign">0</property>
+                         <property name="shadow_type">none</property>
+                         <child>
+                           <object class="GtkAlignment" id="alignment16">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="top_padding">6</property>
+                             <property name="left_padding">12</property>
+                             <child>
+                               <object class="GtkVBox" id="vbox16">
+                                 <property name="visible">True</property>
++                                <property name="can_focus">False</property>
+                                 <property name="spacing">6</property>
+                                 <child>
+                                   <object class="GtkLabel" id="LabelEnter">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="xalign">0</property>
+                                     <property name="label" translatable="yes">Feature of Enter key:</property>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">0</property>
+                                   </packing>
+                                 </child>
+@@ -959,11 +1137,14 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="active">True</property>
+                                     <property name="draw_indicator">True</property>
+                                     <property name="group">CommitOriginalText</property>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">1</property>
+                                   </packing>
+                                 </child>
+@@ -973,9 +1154,12 @@
+                                     <property name="visible">True</property>
+                                     <property name="can_focus">True</property>
+                                     <property name="receives_default">False</property>
++                                    <property name="use_action_appearance">False</property>
+                                     <property name="draw_indicator">True</property>
+                                   </object>
+                                   <packing>
++                                    <property name="expand">True</property>
++                                    <property name="fill">True</property>
+                                     <property name="position">2</property>
+                                   </packing>
+                                 </child>
+@@ -986,6 +1170,7 @@
+                         <child type="label">
+                           <object class="GtkLabel" id="labelOther">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;b&gt;Other&lt;/b&gt;</property>
+                             <property name="use_markup">True</property>
+                           </object>
+@@ -1007,6 +1192,7 @@
+             <child type="tab">
+               <object class="GtkLabel" id="label13">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="label" translatable="yes">Bopomofo mode</property>
+               </object>
+               <packing>
+@@ -1017,6 +1203,7 @@
+             <child>
+               <object class="GtkAlignment" id="pageFuzzy">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="top_padding">12</property>
+                 <property name="bottom_padding">12</property>
+                 <property name="left_padding">12</property>
+@@ -1024,27 +1211,31 @@
+                 <child>
+                   <object class="GtkVBox" id="vbox1">
+                     <property name="visible">True</property>
++                    <property name="can_focus">False</property>
+                     <property name="spacing">12</property>
+                     <child>
+                       <object class="GtkAlignment" id="alignment2">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="top_padding">6</property>
+                         <property name="left_padding">12</property>
+                         <child>
+                           <object class="GtkTable" id="table1">
+                             <property name="visible">True</property>
+-                            <property name="n_rows">12</property>
++                            <property name="can_focus">False</property>
++                            <property name="n_rows">11</property>
+                             <property name="n_columns">2</property>
+                             <property name="column_spacing">6</property>
+                             <property name="row_spacing">6</property>
+                             <property name="homogeneous">True</property>
+                             <child>
+                               <object class="GtkCheckButton" id="FuzzyPinyin_C_CH">
+-                                <property name="label">c =&gt; ch</property>
++                                <property name="label">c &lt;=&gt; ch</property>
+                                 <property name="visible">True</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
++                                <property name="use_action_appearance">False</property>
+                                 <property name="active">True</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+@@ -1055,11 +1246,12 @@
+                             </child>
+                             <child>
+                               <object class="GtkCheckButton" id="FuzzyPinyin_Z_ZH">
+-                                <property name="label">z =&gt; zh</property>
++                                <property name="label">z &lt;=&gt; zh</property>
+                                 <property name="visible">True</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
++                                <property name="use_action_appearance">False</property>
+                                 <property name="active">True</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+@@ -1070,11 +1262,12 @@
+                             </child>
+                             <child>
+                               <object class="GtkCheckButton" id="FuzzyPinyin_S_SH">
+-                                <property name="label">s =&gt; sh</property>
++                                <property name="label">s &lt;=&gt; sh</property>
+                                 <property name="visible">True</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
++                                <property name="use_action_appearance">False</property>
+                                 <property name="active">True</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+@@ -1085,11 +1278,12 @@
+                             </child>
+                             <child>
+                               <object class="GtkCheckButton" id="FuzzyPinyin_L_N">
+-                                <property name="label">l =&gt; n</property>
++                                <property name="label">l &lt;=&gt; n</property>
+                                 <property name="visible">True</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
++                                <property name="use_action_appearance">False</property>
+                                 <property name="active">True</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+@@ -1100,11 +1294,12 @@
+                             </child>
+                             <child>
+                               <object class="GtkCheckButton" id="FuzzyPinyin_F_H">
+-                                <property name="label">f =&gt; h</property>
++                                <property name="label">f &lt;=&gt; h</property>
+                                 <property name="visible">True</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
++                                <property name="use_action_appearance">False</property>
+                                 <property name="active">True</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+@@ -1115,11 +1310,12 @@
+                             </child>
+                             <child>
+                               <object class="GtkCheckButton" id="FuzzyPinyin_L_R">
+-                                <property name="label">l =&gt; r</property>
++                                <property name="label">l &lt;=&gt; r</property>
+                                 <property name="visible">True</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
++                                <property name="use_action_appearance">False</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+                               <packing>
+@@ -1128,75 +1324,45 @@
+                               </packing>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_K_G">
+-                                <property name="label">k =&gt; g</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="active">True</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+-                                <property name="top_attach">7</property>
+-                                <property name="bottom_attach">8</property>
+-                              </packing>
+-                            </child>
+-                            <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_AN_ANG">
+-                                <property name="label">an =&gt; ang</property>
++                              <object class="GtkCheckButton" id="FuzzyPinyin">
++                                <property name="label" translatable="yes">Enable fuzzy syllable</property>
+                                 <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
+-                                <property name="active">True</property>
++                                <property name="use_action_appearance">False</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+                               <packing>
+-                                <property name="top_attach">8</property>
+-                                <property name="bottom_attach">9</property>
++                                <property name="right_attach">2</property>
+                               </packing>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_EN_ENG">
+-                                <property name="label">en =&gt; eng</property>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_G_K">
++                                <property name="label">g &lt;=&gt; k</property>
+                                 <property name="visible">True</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
+-                                <property name="active">True</property>
++                                <property name="use_action_appearance">False</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+                               <packing>
+-                                <property name="top_attach">9</property>
+-                                <property name="bottom_attach">10</property>
++                                <property name="top_attach">7</property>
++                                <property name="bottom_attach">8</property>
+                               </packing>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_IN_ING">
+-                                <property name="label">in =&gt; ing</property>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_AN_ANG">
++                                <property name="label">an &lt;=&gt; ang</property>
+                                 <property name="visible">True</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
++                                <property name="use_action_appearance">False</property>
+                                 <property name="active">True</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+                               <packing>
+-                                <property name="top_attach">10</property>
+-                                <property name="bottom_attach">11</property>
+-                              </packing>
+-                            </child>
+-                            <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_CH_C">
+-                                <property name="label">ch =&gt; c</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+                                 <property name="left_attach">1</property>
+                                 <property name="right_attach">2</property>
+                                 <property name="top_attach">1</property>
+@@ -1204,12 +1370,14 @@
+                               </packing>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_ZH_Z">
+-                                <property name="label">zh =&gt; z</property>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_EN_ENG">
++                                <property name="label">en &lt;=&gt; eng</property>
+                                 <property name="visible">True</property>
+                                 <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
++                                <property name="use_action_appearance">False</property>
++                                <property name="active">True</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+                               <packing>
+@@ -1220,155 +1388,65 @@
+                               </packing>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_SH_S">
+-                                <property name="label">sh =&gt; s</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+-                                <property name="left_attach">1</property>
+-                                <property name="right_attach">2</property>
+-                                <property name="top_attach">3</property>
+-                                <property name="bottom_attach">4</property>
+-                              </packing>
++                              <placeholder/>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_N_L">
+-                                <property name="label">n =&gt; l</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+-                                <property name="left_attach">1</property>
+-                                <property name="right_attach">2</property>
+-                                <property name="top_attach">4</property>
+-                                <property name="bottom_attach">5</property>
+-                              </packing>
++                              <placeholder/>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_H_F">
+-                                <property name="label">h =&gt; f</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+-                                <property name="left_attach">1</property>
+-                                <property name="right_attach">2</property>
+-                                <property name="top_attach">5</property>
+-                                <property name="bottom_attach">6</property>
+-                              </packing>
++                              <placeholder/>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_R_L">
+-                                <property name="label">r =&gt; l</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+-                                <property name="left_attach">1</property>
+-                                <property name="right_attach">2</property>
+-                                <property name="top_attach">6</property>
+-                                <property name="bottom_attach">7</property>
+-                              </packing>
++                              <placeholder/>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_G_K">
+-                                <property name="label">g =&gt; k</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+-                                <property name="left_attach">1</property>
+-                                <property name="right_attach">2</property>
+-                                <property name="top_attach">7</property>
+-                                <property name="bottom_attach">8</property>
+-                              </packing>
++                              <placeholder/>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_ANG_AN">
+-                                <property name="label">ang =&gt; an</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+-                                <property name="left_attach">1</property>
+-                                <property name="right_attach">2</property>
+-                                <property name="top_attach">8</property>
+-                                <property name="bottom_attach">9</property>
+-                              </packing>
++                              <placeholder/>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_ENG_EN">
+-                                <property name="label">eng =&gt; en</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+-                                <property name="left_attach">1</property>
+-                                <property name="right_attach">2</property>
+-                                <property name="top_attach">9</property>
+-                                <property name="bottom_attach">10</property>
+-                              </packing>
++                              <placeholder/>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin_ING_IN">
+-                                <property name="label">ing =&gt; in</property>
+-                                <property name="visible">True</property>
+-                                <property name="sensitive">False</property>
+-                                <property name="can_focus">True</property>
+-                                <property name="receives_default">False</property>
+-                                <property name="draw_indicator">True</property>
+-                              </object>
+-                              <packing>
+-                                <property name="left_attach">1</property>
+-                                <property name="right_attach">2</property>
+-                                <property name="top_attach">10</property>
+-                                <property name="bottom_attach">11</property>
+-                              </packing>
++                              <placeholder/>
+                             </child>
+                             <child>
+-                              <object class="GtkCheckButton" id="FuzzyPinyin">
+-                                <property name="label" translatable="yes">Enable fuzzy syllable</property>
++                              <placeholder/>
++                            </child>
++                            <child>
++                              <placeholder/>
++                            </child>
++                            <child>
++                              <placeholder/>
++                            </child>
++                            <child>
++                              <placeholder/>
++                            </child>
++                            <child>
++                              <object class="GtkCheckButton" id="FuzzyPinyin_IN_ING">
++                                <property name="label">in &lt;=&gt; ing</property>
+                                 <property name="visible">True</property>
++                                <property name="sensitive">False</property>
+                                 <property name="can_focus">True</property>
+                                 <property name="receives_default">False</property>
++                                <property name="use_action_appearance">False</property>
++                                <property name="active">True</property>
+                                 <property name="draw_indicator">True</property>
+                               </object>
+                               <packing>
++                                <property name="left_attach">1</property>
+                                 <property name="right_attach">2</property>
++                                <property name="top_attach">3</property>
++                                <property name="bottom_attach">4</property>
+                               </packing>
+                             </child>
+-                            <child>
+-                              <placeholder/>
+-                            </child>
+-                            <child>
+-                              <placeholder/>
+-                            </child>
+                           </object>
+                         </child>
+                       </object>
+                       <packing>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
+                         <property name="position">0</property>
+                       </packing>
+                     </child>
+@@ -1382,6 +1460,7 @@
+             <child type="tab">
+               <object class="GtkLabel" id="label3">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="label" translatable="yes">Fuzzy syllable</property>
+               </object>
+               <packing>
+@@ -1392,6 +1471,7 @@
+             <child>
+               <object class="GtkAlignment" id="pageDictionary">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="top_padding">12</property>
+                 <property name="bottom_padding">12</property>
+                 <property name="left_padding">12</property>
+@@ -1399,23 +1479,28 @@
+                 <child>
+                   <object class="GtkVBox" id="vbox5">
+                     <property name="visible">True</property>
++                    <property name="can_focus">False</property>
+                     <child>
+                       <object class="GtkFrame" id="frame7">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="label_xalign">0</property>
+                         <property name="shadow_type">none</property>
+                         <child>
+                           <object class="GtkAlignment" id="alignment13">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="top_padding">6</property>
+                             <property name="left_padding">12</property>
+                             <child>
+                               <object class="GtkVBox" id="vbox12">
+                                 <property name="visible">True</property>
++                                <property name="can_focus">False</property>
+                                 <property name="spacing">6</property>
+                                 <child>
+                                   <object class="GtkHBox" id="hbox2">
+                                     <property name="visible">True</property>
++                                    <property name="can_focus">False</property>
+                                     <property name="spacing">12</property>
+                                     <child>
+                                       <object class="GtkCheckButton" id="SpecialPhrases">
+@@ -1423,10 +1508,12 @@
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+                                         <property name="receives_default">False</property>
++                                        <property name="use_action_appearance">False</property>
+                                         <property name="draw_indicator">True</property>
+                                       </object>
+                                       <packing>
+                                         <property name="expand">False</property>
++                                        <property name="fill">True</property>
+                                         <property name="position">0</property>
+                                       </packing>
+                                     </child>
+@@ -1436,6 +1523,7 @@
+                                         <property name="visible">True</property>
+                                         <property name="can_focus">True</property>
+                                         <property name="receives_default">True</property>
++                                        <property name="use_action_appearance">False</property>
+                                       </object>
+                                       <packing>
+                                         <property name="expand">False</property>
+@@ -1457,12 +1545,15 @@
+                         <child type="label">
+                           <object class="GtkLabel" id="label17">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;b&gt;Dictionary option&lt;/b&gt;</property>
+                             <property name="use_markup">True</property>
+                           </object>
+                         </child>
+                       </object>
+                       <packing>
++                        <property name="expand">True</property>
++                        <property name="fill">True</property>
+                         <property name="position">0</property>
+                       </packing>
+                     </child>
+@@ -1476,6 +1567,7 @@
+             <child type="tab">
+               <object class="GtkLabel" id="label12">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="label" translatable="yes">Dictionary</property>
+               </object>
+               <packing>
+@@ -1486,6 +1578,7 @@
+             <child>
+               <object class="GtkAlignment" id="pageAbout">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="top_padding">12</property>
+                 <property name="bottom_padding">12</property>
+                 <property name="left_padding">12</property>
+@@ -1493,10 +1586,12 @@
+                 <child>
+                   <object class="GtkVBox" id="vbox6">
+                     <property name="visible">True</property>
++                    <property name="can_focus">False</property>
+                     <property name="spacing">6</property>
+                     <child>
+                       <object class="GtkVBox" id="vbox7">
+                         <property name="visible">True</property>
++                        <property name="can_focus">False</property>
+                         <property name="spacing">6</property>
+                         <child>
+                           <object class="GtkImage" id="image1">
+@@ -1506,39 +1601,50 @@
+                             <property name="icon_name">gtk-about</property>
+                           </object>
+                           <packing>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
+                             <property name="position">0</property>
+                           </packing>
+                         </child>
+                         <child>
+                           <object class="GtkLabel" id="NameVersion">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;big&gt;&lt;b&gt;Intelligent Pinyin %s&lt;/b&gt;&lt;/big&gt;</property>
+                             <property name="use_markup">True</property>
+                             <property name="selectable">True</property>
+                           </object>
+                           <packing>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
+                             <property name="position">1</property>
+                           </packing>
+                         </child>
+                         <child>
+                           <object class="GtkLabel" id="label14">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">Intelligent Pinyin input method for IBus</property>
+                             <property name="selectable">True</property>
+                           </object>
+                           <packing>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
+                             <property name="position">2</property>
+                           </packing>
+                         </child>
+                         <child>
+                           <object class="GtkLabel" id="label15">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;small&gt;Copyright (c) 2009-2010 Peng Huang&lt;/small&gt;</property>
+                             <property name="use_markup">True</property>
+                             <property name="wrap">True</property>
+                             <property name="selectable">True</property>
+                           </object>
+                           <packing>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
+                             <property name="position">3</property>
+                           </packing>
+                         </child>
+@@ -1548,6 +1654,7 @@
+                             <property name="visible">True</property>
+                             <property name="can_focus">True</property>
+                             <property name="receives_default">True</property>
++                            <property name="use_action_appearance">False</property>
+                             <property name="relief">none</property>
+                             <property name="uri">http://ibus.googlecode.com</property>
+                           </object>
+@@ -1560,6 +1667,7 @@
+                         <child>
+                           <object class="GtkLabel" id="label21">
+                             <property name="visible">True</property>
++                            <property name="can_focus">False</property>
+                             <property name="label" translatable="yes">&lt;small&gt;
+ &lt;b&gt;Authors:&lt;/b&gt;
+ Peng Huang
+@@ -1574,11 +1682,14 @@ koterpilla, Zerng07
+                             <property name="selectable">True</property>
+                           </object>
+                           <packing>
++                            <property name="expand">True</property>
++                            <property name="fill">True</property>
+                             <property name="position">5</property>
+                           </packing>
+                         </child>
+                       </object>
+                       <packing>
++                        <property name="expand">True</property>
+                         <property name="fill">False</property>
+                         <property name="position">0</property>
+                       </packing>
+@@ -1593,6 +1704,7 @@ koterpilla, Zerng07
+             <child type="tab">
+               <object class="GtkLabel" id="label5">
+                 <property name="visible">True</property>
++                <property name="can_focus">False</property>
+                 <property name="label" translatable="yes">About</property>
+               </object>
+               <packing>
+@@ -1602,36 +1714,9 @@ koterpilla, Zerng07
+             </child>
+           </object>
+           <packing>
+-            <property name="position">1</property>
+-          </packing>
+-        </child>
+-        <child internal-child="action_area">
+-          <object class="GtkHButtonBox" id="dialog-action_area1">
+-            <property name="visible">True</property>
+-            <property name="layout_style">end</property>
+-            <child>
+-              <object class="GtkButton" id="buttonClose">
+-                <property name="label">gtk-close</property>
+-                <property name="visible">True</property>
+-                <property name="can_focus">True</property>
+-                <property name="has_focus">True</property>
+-                <property name="is_focus">True</property>
+-                <property name="can_default">True</property>
+-                <property name="has_default">True</property>
+-                <property name="receives_default">True</property>
+-                <property name="use_stock">True</property>
+-              </object>
+-              <packing>
+-                <property name="expand">False</property>
+-                <property name="fill">False</property>
+-                <property name="position">0</property>
+-              </packing>
+-            </child>
+-          </object>
+-          <packing>
+             <property name="expand">False</property>
+-            <property name="pack_type">end</property>
+-            <property name="position">0</property>
++            <property name="fill">True</property>
++            <property name="position">1</property>
+           </packing>
+         </child>
+       </object>
+@@ -1640,6 +1725,26 @@ koterpilla, Zerng07
+       <action-widget response="0">buttonClose</action-widget>
+     </action-widgets>
+   </object>
++  <object class="GtkListStore" id="liststoreBopomofoKeyboardMapping">
++    <columns>
++      <!-- column-name keyboard_mapping -->
++      <column type="gchararray"/>
++    </columns>
++    <data>
++      <row>
++        <col id="0" translatable="yes">Standard</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">GinYieh</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">Eten</col>
++      </row>
++      <row>
++        <col id="0" translatable="yes">IBM</col>
++      </row>
++    </data>
++  </object>
+   <object class="GtkListStore" id="liststoreDoublePinyin">
+     <columns>
+       <!-- column-name schema -->
+@@ -1666,14 +1771,6 @@ koterpilla, Zerng07
+       </row>
+     </data>
+   </object>
+-  <object class="GtkAdjustment" id="LookupTablePageSize">
+-    <property name="value">1</property>
+-    <property name="lower">1</property>
+-    <property name="upper">11</property>
+-    <property name="step_increment">1</property>
+-    <property name="page_increment">1</property>
+-    <property name="page_size">1</property>
+-  </object>
+   <object class="GtkListStore" id="liststoreLookupTableOrientation">
+     <columns>
+       <!-- column-name orientation -->
+@@ -1688,26 +1785,6 @@ koterpilla, Zerng07
+       </row>
+     </data>
+   </object>
+-  <object class="GtkListStore" id="liststoreBopomofoKeyboardMapping">
+-    <columns>
+-      <!-- column-name keyboard_mapping -->
+-      <column type="gchararray"/>
+-    </columns>
+-    <data>
+-      <row>
+-        <col id="0" translatable="yes">Standard</col>
+-      </row>
+-      <row>
+-        <col id="0" translatable="yes">GinYieh</col>
+-      </row>
+-      <row>
+-        <col id="0" translatable="yes">Eten</col>
+-      </row>
+-      <row>
+-        <col id="0" translatable="yes">IBM</col>
+-      </row>
+-    </data>
+-  </object>
+   <object class="GtkListStore" id="liststoreSelectionKeys">
+     <columns>
+       <!-- column-name select_keys -->
+-- 
+1.7.7.6
+
diff --git a/ibus-pinyin.spec b/ibus-pinyin.spec
index 488541a..c35c1c6 100644
--- a/ibus-pinyin.spec
+++ b/ibus-pinyin.spec
@@ -1,6 +1,6 @@
 Name:       ibus-pinyin
 Version:    1.4.0
-Release:    14%{?dist}
+Release:    15%{?dist}
 Summary:    The Chinese Pinyin and Bopomofo engines for IBus input platform
 License:    GPLv2+
 Group:      System Environment/Libraries
@@ -82,6 +82,7 @@ install -c -m 0755 %{SOURCE3} ${RPM_BUILD_ROOT}%{_libexecdir}/ibus-engine-pinyin
 %{_libexecdir}/ibus-engine-pinyin
 %{_libexecdir}/ibus-engine-pinyin.py*
 %{_libexecdir}/ibus-setup-pinyin
+%{_libexecdir}/ibus-setup-libpinyin
 %{_datadir}/ibus-pinyin/phrases.txt
 %{_datadir}/ibus-pinyin/icons
 %{_datadir}/ibus-pinyin/setup
@@ -101,6 +102,9 @@ install -c -m 0755 %{SOURCE3} ${RPM_BUILD_ROOT}%{_libexecdir}/ibus-engine-pinyin
 %{_datadir}/ibus-pinyin/db/android.db
 
 %changelog
+* Tue Mar 27 2012  Peng Wu <pwu at redhat.com> - 1.4.0-15
+- Rebuilt for libpinyin-0.5.92
+
 * Tue Mar 06 2012  Peng Wu <pwu at redhat.com> - 1.4.0-14
 - Rebuilt for ibus-1.4.99
 


More information about the scm-commits mailing list