AI 143692: am: CL 143573 Update OpenWnn to the latest (needed for Japanese Googlers)
  Original author: dmiyakawa
  Merged from: //branches/cupcake/...

Automated import of CL 143692
diff --git a/README.txt b/README.txt
index 792eae8..4975e42 100644
--- a/README.txt
+++ b/README.txt
@@ -23,7 +23,7 @@
         . Java docs of the IME              (HTML)
 
     o Building environment
-        . Building control file		    (XML, makefile, shell script)
+        . Building control file             (XML, makefile, shell script)
         . IME native library source code    (C language)
         . IME resource                      (XML, PNG)
         . IME source code                   (Java)
@@ -55,68 +55,66 @@
 
 4. File constitution 
 
-    NOTICE                                                          Apache license paper
-    README.txt                                                      This README
-    ChangeLog.txt                                                   Change history
+    NOTICE                                    Apache license paper
+    README.txt                                This README
+    ChangeLog.txt                             Change history
 
     doc/
-        *.html                                                      Java docs of the IME
+      *.html                                  Java docs of the IME
 
-    src/
-        IME/
-            Android.mk                                              Building control file
-            AndroidManifest.xml                                     |
+    Android.mk                                Building control file
+    AndroidManifest.xml                       |
 
-            libs/                                                   IME native library source code (C language)
-                Android.mk                                          |
-                libwnnDictionary/                                   |
-                    Android.mk                                      |
-                    *.c                                             |
-                    *.h                                             |
-                    engine/                                         |
-                        *.c                                         |
-                    include/                                        |
-                        *.h                                         |
-                libwnnEngDic/                                       |
-                    Android.mk                                      |
-                    *.c                                             |
-                libwnnJpnDic/                                       |
-                    Android.mk                                      |
-                    *.c                                             |
-                libwnnZHCNDic/                                      |
-                    Android.mk                                      |
-                    *.c                                             |
+    libs/                                     IME native library source code (C language)
+        Android.mk                            |
+        libwnnDictionary/                     |
+            Android.mk                        |
+            *.c                               |
+            *.h                               |
+            engine/                           |
+                *.c                           |
+            include/                          |
+                *.h                           |
+        libwnnEngDic/                         |
+            Android.mk                        |
+            *.c                               |
+        libwnnJpnDic/                         |
+            Android.mk                        |
+            *.c                               |
+        libwnnZHCNDic/                        |
+            Android.mk                        |
+            *.c                               |
 
-            res/                                                    IME resource (XML, PNG)
-		drawable/                                           |
-		    *.xml                                           |
-		    *.png                                           |
-		layout/                                             |
-		    *.xml                                           |
-		raw/                                                |
-                    type.ogg                                        |
-		values/                                             |
-		    *.xml                                           |
-		values-ja/                                          |
-		    *.xml                                           |
-		values-zh-rCN                                       |
-		    *.xml                                           |
-		xml/                                                |
-		    *.xml                                           |
+    res/                                      IME resource (XML, PNG)
+        drawable/                             |
+            *.xml                             |
+            *.png                             |
+        layout/                               |
+            *.xml                             |
+        raw/                                  |
+            type.ogg                          |
+        values/                               |
+            *.xml                             |
+        values-ja/                            |
+            *.xml                             |
+        values-zh-rCN                         |
+            *.xml                             |
+        xml/                                  |
+            *.xml                             |
 
-            src/                                                    IME source code (Java)
-                jp/                                                 |
-                    co/                                             |
-                        omronsoft/                                  |
-                            openwnn/                                |
-                                *.java                              |
-                                EN/                                 |
-				    *.java                          |
-                                JAJP/                               |
-				    *.java                          |
-                                ZH/                                 |
-				    *.java                          |
-                                    CN/                             |
-				        *.java                      |
+    src/                                      IME source code (Java)
+        jp/                                   |
+            co/                               |
+                omronsoft/                    |
+                    openwnn/                  |
+                        *.java                |
+                        EN/                   |
+                            *.java            |
+                        JAJP/                 |
+                            *.java            |
+                        ZH/                   |
+                            *.java            |
+                            CN/               |
+                                *.java        |
 
 -------------------------------------------------------------------------------
diff --git a/res/values-ja/string.xml b/res/values-ja/string.xml
index 0e81376..419b207 100644
--- a/res/values-ja/string.xml
+++ b/res/values-ja/string.xml
@@ -99,13 +99,13 @@
 
   <!-- IME dependency -->
     <!-- OpenWnn English -->
-    <string name="openwnn_english_copyright">Ver.1.20-rc1\nオムロン ソフトウェア(株)</string>
+    <string name="openwnn_english_copyright">Ver.1.20\nオムロン ソフトウェア(株)</string>
 
     <!-- OpenWnn Japanese -->
-    <string name="openwnn_japanese_copyright">Ver.1.20-rc1\nオムロン ソフトウェア(株)</string>
+    <string name="openwnn_japanese_copyright">Ver.1.20\nオムロン ソフトウェア(株)</string>
 
     <!-- OpenWnn Chinese -->
-    <string name="openwnn_china_copyright">Ver.1.20-rc1\nオムロン ソフトウェア(株)</string>
+    <string name="openwnn_china_copyright">Ver.1.20\nオムロン ソフトウェア(株)</string>
 
   <!-- Candidate Delete -->
       <string name="button_candidate_select">選 択</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8833b84..baf5d19 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -115,20 +115,20 @@
 
   <!-- IME dependency -->
     <!-- OpenWnn English -->
-    <string name="openwnn_english_copyright">Ver.1.20-rc1\nOMRON SOFTWARE Co., Ltd.</string>
+    <string name="openwnn_english_copyright">Ver.1.20\nOMRON SOFTWARE Co., Ltd.</string>
     <string name="openwnn_english">OpenWnn English</string>
     <string name="openwnn_english_system_dictionary">/data/data/jp.co.omronsoft.openwnn/lib/libWnnEngDic.so</string>
     <string name="openwnn_english_writable_dictionary">/data/data/jp.co.omronsoft.openwnn/writableEN.dic</string>
     <string name="en_word_separators">.,;:!?</string>
 
     <!-- OpenWnn Japanese -->
-    <string name="openwnn_japanese_copyright">Ver.1.20-rc1\nOMRON SOFTWARE Co., Ltd.</string>
+    <string name="openwnn_japanese_copyright">Ver.1.20\nOMRON SOFTWARE Co., Ltd.</string>
     <string name="openwnn_japanese">OpenWnn Japanese</string>
     <string name="openwnn_japanese_system_dictionary">/data/data/jp.co.omronsoft.openwnn/lib/libWnnJpnDic.so</string>
     <string name="openwnn_japanese_writable_dictionary">/data/data/jp.co.omronsoft.openwnn/writableJAJP.dic</string>
 
     <!-- OpenWnn Chinese -->
-    <string name="openwnn_china_copyright">Ver.1.20-rc1\nOMRON SOFTWARE Co., Ltd.</string>
+    <string name="openwnn_china_copyright">Ver.1.20\nOMRON SOFTWARE Co., Ltd.</string>
     <string name="openwnn_china">OpenWnn Chinese</string>
     <string name="openwnn_china_system_dictionary">/data/data/jp.co.omronsoft.openwnn/lib/libWnnZHCNDic.so</string>
 <!-- After Config Change -->
@@ -236,6 +236,7 @@
     <string name="key_12key_switch_half_katakana">カナ</string>
     <string name="key_12key_switch_half_alphabet">AB</string>
     <string name="key_12key_switch_half_number">12</string>
+    <string name="key_12key_switch_pinyin">中</string>
 
     <string name="key_qwerty_half_comma">、</string>
     <string name="key_qwerty_half_period">。</string>
diff --git a/res/xml/default_cn_switch_key.xml b/res/xml/default_cn_switch_key.xml
index 03bf27c..b5d0495 100644
--- a/res/xml/default_cn_switch_key.xml
+++ b/res/xml/default_cn_switch_key.xml
@@ -20,10 +20,10 @@
 	  android:verticalGap="0px"
 	  android:keyHeight="50px" >
   <Row>
-    <Key android:codes="-115" android:keyLabel="中"
+    <Key android:codes="-115" android:keyLabel="@string/key_12key_switch_pinyin"
 	 android:keyEdgeFlags="left"/>
-    <Key android:codes="-113" android:keyLabel="aA"/>
-    <Key android:codes="-112" android:keyLabel="12"/>
+    <Key android:codes="-113" android:keyLabel="@string/key_12key_switch_half_alphabet"/>
+    <Key android:codes="-112" android:keyLabel="@string/key_12key_switch_half_number"/>
     <Key android:codes="-108" android:keyLabel="@string/key_12key_switch_full_number"
      android:keyEdgeFlags="right"/>
   </Row>
diff --git a/res/xml/default_en_switch_key.xml b/res/xml/default_en_switch_key.xml
index dc59f17..95f5a5e 100644
--- a/res/xml/default_en_switch_key.xml
+++ b/res/xml/default_en_switch_key.xml
@@ -20,9 +20,9 @@
 	  android:verticalGap="0px"
 	  android:keyHeight="50px" >
   <Row>
-    <Key android:codes="-113" android:keyLabel="aA"
+    <Key android:codes="-113" android:keyLabel="@string/key_12key_switch_half_alphabet"
 	 android:keyEdgeFlags="left"/>
-    <Key android:codes="-112" android:keyLabel="12"
+    <Key android:codes="-112" android:keyLabel="@string/key_12key_switch_half_number"
 	 android:keyEdgeFlags="right"/>
   </Row>
 </Keyboard>
diff --git a/res/xml/symbols_china_list_alpha.xml b/res/xml/symbols_china_list_alpha.xml
deleted file mode 100644
index 614a8ef..0000000
--- a/res/xml/symbols_china_list_alpha.xml
+++ /dev/null
@@ -1,287 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2008,2009  OMRON SOFTWARE Co., Ltd.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!--symbols shuāngzìjiéyīqū -->
-<keystring>
-  <string value="、"/>
-  <string value="。"/>
-  <string value="·"/>
-  <string value="ˉ"/>
-  <string value="ˇ"/>
-  <string value="¨"/>
-  <string value="〃"/>
-  <string value="々"/>
-  <string value="—"/>
-  <string value="~"/>
-  <string value="‖"/>
-  <string value="…"/>
-  <string value="‘"/>
-  <string value="’"/>
-  <string value="“"/>
-  <string value="”"/>
-  <string value="〔"/>
-  <string value="〕"/>
-  <string value="〈"/>
-  <string value="〉"/>
-  <string value="《"/>
-  <string value="》"/>
-  <string value="「"/>
-  <string value="」"/>
-  <string value="『"/>
-  <string value="』"/>
-  <string value="〖"/>
-  <string value="〗"/>
-  <string value="【"/>
-  <string value="】"/>
-  <string value="±"/>
-  <string value="×"/>
-  <string value="÷"/>
-  <string value="∶"/>
-  <string value="∧"/>
-  <string value="∨"/>
-  <string value="∑"/>
-  <string value="∏"/>
-  <string value="∪"/>
-  <string value="∩"/>
-  <string value="∈"/>
-  <string value="∷"/>
-  <string value="√"/>
-  <string value="⊥"/>
-  <string value="∥"/>
-  <string value="∠"/>
-  <string value="⌒"/>
-  <string value="⊙"/>
-  <string value="∫"/>
-  <string value="∮"/>
-  <string value="≡"/>
-  <string value="≌"/>
-  <string value="≈"/>
-  <string value="∽"/>
-  <string value="∝"/>
-  <string value="≠"/>
-  <string value="≮"/>
-  <string value="≯"/>
-  <string value="≤"/>
-  <string value="≥"/>
-  <string value="∞"/>
-  <string value="∵"/>
-  <string value="∴"/>
-  <string value="♀"/>
-  <string value="°"/>
-  <string value="′"/>
-  <string value="″"/>
-  <string value="℃"/>
-  <string value="$"/>
-  <string value="¤"/>
-  <string value="¢"/>
-  <string value="£"/>
-  <string value="‰"/>
-  <string value="§"/>
-  <string value="№"/>
-  <string value="☆"/>
-  <string value="★"/>
-  <string value="○"/>
-  <string value="●"/>
-  <string value="◎"/>
-  <string value="◇"/>
-  <string value="◆"/>
-  <string value="■"/>
-  <string value="△"/>
-  <string value="▲"/>
-  <string value="※"/>
-  <string value="→"/>
-  <string value="←"/>
-  <string value="↑"/>
-  <string value="↓"/>
-  <string value="〓"/>
-  <string value="ⅰ"/>
-  <string value="ⅱ"/>
-  <string value="ⅲ"/>
-  <string value="ⅳ"/>
-  <string value="ⅴ"/>
-  <string value="ⅵ"/>
-  <string value="ⅶ"/>
-  <string value="ⅷ"/>
-  <string value="ⅸ"/>
-  <string value="ⅹ"/>
-  <string value="⒈"/>
-  <string value="⒉"/>
-  <string value="⒊"/>
-  <string value="⒋"/>
-  <string value="⒌"/>
-  <string value="⒍"/>
-  <string value="⒎"/>
-  <string value="⒏"/>
-  <string value="⒐"/>
-  <string value="⒑"/>
-  <string value="⒒"/>
-  <string value="⒓"/>
-  <string value="⒔"/>
-  <string value="⒕"/>
-  <string value="⒖"/>
-  <string value="⒗"/>
-  <string value="⒘"/>
-  <string value="⒙"/>
-  <string value="⒚"/>
-  <string value="⒛"/>
-  <string value="⑴"/>
-  <string value="⑵"/>
-  <string value="⑶"/>
-  <string value="⑷"/>
-  <string value="⑸"/>
-  <string value="⑹"/>
-  <string value="⑺"/>
-  <string value="⑻"/>
-  <string value="⑼"/>
-  <string value="⑽"/>
-  <string value="⑾"/>
-  <string value="⑿"/>
-  <string value="⒀"/>
-  <string value="⒁"/>
-  <string value="⒂"/>
-  <string value="⒃"/>
-  <string value="⒄"/>
-  <string value="⒅"/>
-  <string value="⒆"/>
-  <string value="⒇"/>
-  <string value="①"/>
-  <string value="②"/>
-  <string value="③"/>
-  <string value="④"/>
-  <string value="⑤"/>
-  <string value="⑥"/>
-  <string value="⑦"/>
-  <string value="⑧"/>
-  <string value="⑨"/>
-  <string value="⑩"/>
-  <string value="€"/>
-  <string value="㈠"/>
-  <string value="㈡"/>
-  <string value="㈢"/>
-  <string value="㈣"/>
-  <string value="㈤"/>
-  <string value="㈥"/>
-  <string value="㈦"/>
-  <string value="㈧"/>
-  <string value="㈨"/>
-  <string value="㈩"/>
-  <string value="Ⅰ"/>
-  <string value="Ⅱ"/>
-  <string value="Ⅲ"/>
-  <string value="Ⅳ"/>
-  <string value="Ⅴ"/>
-  <string value="Ⅵ"/>
-  <string value="Ⅶ"/>
-  <string value="Ⅷ"/>
-  <string value="Ⅸ"/>
-  <string value="Ⅹ"/>
-  <string value="Ⅺ"/>
-  <string value="Ⅻ"/>
-  <string value="!"/>
-  <string value="""/>
-  <string value="#"/>
-  <string value="¥"/>
-  <string value="%"/>
-  <string value="&"/>
-  <string value="'"/>
-  <string value="("/>
-  <string value=")"/>
-  <string value="*"/>
-  <string value="+"/>
-  <string value=","/>
-  <string value="-"/>
-  <string value="."/>
-  <string value="/"/>
-  <string value="0"/>
-  <string value="1"/>
-  <string value="2"/>
-  <string value="3"/>
-  <string value="4"/>
-  <string value="5"/>
-  <string value="6"/>
-  <string value="7"/>
-  <string value="8"/>
-  <string value="9"/>
-  <string value=":"/>
-  <string value=";"/>
-  <string value="<"/>
-  <string value="="/>
-  <string value=">"/>
-  <string value="?"/>
-  <string value="@"/>
-  <string value="A"/>
-  <string value="B"/>
-  <string value="C"/>
-  <string value="D"/>
-  <string value="E"/>
-  <string value="F"/>
-  <string value="G"/>
-  <string value="H"/>
-  <string value="I"/>
-  <string value="J"/>
-  <string value="K"/>
-  <string value="L"/>
-  <string value="M"/>
-  <string value="N"/>
-  <string value="O"/>
-  <string value="P"/>
-  <string value="Q"/>
-  <string value="R"/>
-  <string value="S"/>
-  <string value="T"/>
-  <string value="U"/>
-  <string value="V"/>
-  <string value="W"/>
-  <string value="X"/>
-  <string value="Y"/>
-  <string value="Z"/>
-  <string value="["/>
-  <string value="\"/>
-  <string value="]"/>
-  <string value="^"/>
-  <string value="_"/>
-  <string value="`"/>
-  <string value="a"/>
-  <string value="b"/>
-  <string value="c"/>
-  <string value="d"/>
-  <string value="e"/>
-  <string value="f"/>
-  <string value="g"/>
-  <string value="h"/>
-  <string value="i"/>
-  <string value="j"/>
-  <string value="k"/>
-  <string value="l"/>
-  <string value="m"/>
-  <string value="n"/>
-  <string value="o"/>
-  <string value="p"/>
-  <string value="q"/>
-  <string value="r"/>
-  <string value="s"/>
-  <string value="t"/>
-  <string value="u"/>
-  <string value="v"/>
-  <string value="w"/>
-  <string value="x"/>
-  <string value="y"/>
-  <string value="z"/>
-  <string value="{"/>
-  <string value="|"/>
-  <string value="}"/>
-  <string value=" ̄"/>
-</keystring>
\ No newline at end of file
diff --git a/res/xml/symbols_china_list_etc.xml b/res/xml/symbols_china_list_etc.xml
deleted file mode 100644
index 40f5c20..0000000
--- a/res/xml/symbols_china_list_etc.xml
+++ /dev/null
@@ -1,229 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2008,2009  OMRON SOFTWARE Co., Ltd.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!--symbols shuāngzìjiéyīqū -->
-<keystring>
-  <string value="А"/>
-  <string value="Б"/>
-  <string value="В"/>
-  <string value="Г"/>
-  <string value="Д"/>
-  <string value="Ё"/>
-  <string value="Ж"/>
-  <string value="З"/>
-  <string value="И"/>
-  <string value="Й"/>
-  <string value="К"/>
-  <string value="Л"/>
-  <string value="М"/>
-  <string value="Н"/>
-  <string value="О"/>
-  <string value="П"/>
-  <string value="Р"/>
-  <string value="С"/>
-  <string value="Т"/>
-  <string value="У"/>
-  <string value="Ф"/>
-  <string value="Х"/>
-  <string value="Ц"/>
-  <string value="Ч"/>
-  <string value="Ш"/>
-  <string value="Щ"/>
-  <string value="Ъ"/>
-  <string value="Ы"/>
-  <string value="Ь"/>
-  <string value="Э"/>
-  <string value="Ю"/>
-  <string value="Я"/>
-  <string value="а"/>
-  <string value="б"/>
-  <string value="в"/>
-  <string value="г"/>
-  <string value="д"/>
-  <string value="е"/>
-  <string value="ё"/>
-  <string value="ж"/>
-  <string value="з"/>
-  <string value="и"/>
-  <string value="й"/>
-  <string value="к"/>
-  <string value="л"/>
-  <string value="м"/>
-  <string value="н"/>
-  <string value="о"/>
-  <string value="п"/>
-  <string value="р"/>
-  <string value="с"/>
-  <string value="т"/>
-  <string value="у"/>
-  <string value="ф"/>
-  <string value="х"/>
-  <string value="ц"/>
-  <string value="ч"/>
-  <string value="ш"/>
-  <string value="щ"/>
-  <string value="ъ"/>
-  <string value="ы"/>
-  <string value="ь"/>
-  <string value="э"/>
-  <string value="ю"/>
-  <string value="я"/>
-  <string value="ā"/>
-  <string value="á"/>
-  <string value="ǎ"/>
-  <string value="à"/>
-  <string value="ē"/>
-  <string value="é"/>
-  <string value="ě"/>
-  <string value="è"/>
-  <string value="ī"/>
-  <string value="í"/>
-  <string value="ǐ"/>
-  <string value="ì"/>
-  <string value="ō"/>
-  <string value="ó"/>
-  <string value="ǒ"/>
-  <string value="ò"/>
-  <string value="ū"/>
-  <string value="ú"/>
-  <string value="ǔ"/>
-  <string value="ù"/>
-  <string value="ǖ"/>
-  <string value="ǘ"/>
-  <string value="ǚ"/>
-  <string value="ǜ"/>
-  <string value="ü"/>
-  <string value="ê"/>
-  <string value="ɑ"/>
-  <string value="\u1e3f"/>
-  <string value="ń"/>
-  <string value="ň"/>
-  <string value="\u01f9"/>
-  <string value="ɡ"/>
-  <string value="ㄅ"/>
-  <string value="ㄆ"/>
-  <string value="ㄇ"/>
-  <string value="ㄈ"/>
-  <string value="ㄉ"/>
-  <string value="ㄊ"/>
-  <string value="ㄋ"/>
-  <string value="ㄌ"/>
-  <string value="ㄍ"/>
-  <string value="ㄎ"/>
-  <string value="ㄏ"/>
-  <string value="ㄐ"/>
-  <string value="ㄑ"/>
-  <string value="ㄒ"/>
-  <string value="ㄓ"/>
-  <string value="ㄔ"/>
-  <string value="ㄕ"/>
-  <string value="ㄖ"/>
-  <string value="ㄗ"/>
-  <string value="ㄘ"/>
-  <string value="ㄙ"/>
-  <string value="ㄚ"/>
-  <string value="ㄛ"/>
-  <string value="ㄜ"/>
-  <string value="ㄝ"/>
-  <string value="ㄞ"/>
-  <string value="ㄟ"/>
-  <string value="ㄠ"/>
-  <string value="ㄡ"/>
-  <string value="ㄢ"/>
-  <string value="ㄣ"/>
-  <string value="ㄤ"/>
-  <string value="ㄥ"/>
-  <string value="ㄦ"/>
-  <string value="ㄧ"/>
-  <string value="ㄨ"/>
-  <string value="ㄩ"/>
-  <string value="─"/>
-  <string value="━"/>
-  <string value="│"/>
-  <string value="┃"/>
-  <string value="┄"/>
-  <string value="┅"/>
-  <string value="┆"/>
-  <string value="┇"/>
-  <string value="┈"/>
-  <string value="┉"/>
-  <string value="┊"/>
-  <string value="┋"/>
-  <string value="┌"/>
-  <string value="┍"/>
-  <string value="┎"/>
-  <string value="┏"/>
-  <string value="┐"/>
-  <string value="┑"/>
-  <string value="┒"/>
-  <string value="┓"/>
-  <string value="└"/>
-  <string value="┕"/>
-  <string value="┖"/>
-  <string value="┗"/>
-  <string value="┘"/>
-  <string value="┙"/>
-  <string value="┚"/>
-  <string value="┛"/>
-  <string value="├"/>
-  <string value="┝"/>
-  <string value="┞"/>
-  <string value="┟"/>
-  <string value="┠"/>
-  <string value="┡"/>
-  <string value="┢"/>
-  <string value="┣"/>
-  <string value="┤"/>
-  <string value="┥"/>
-  <string value="┦"/>
-  <string value="┧"/>
-  <string value="┨"/>
-  <string value="┩"/>
-  <string value="┪"/>
-  <string value="┫"/>
-  <string value="┬"/>
-  <string value="┭"/>
-  <string value="┮"/>
-  <string value="┯"/>
-  <string value="┰"/>
-  <string value="┱"/>
-  <string value="┲"/>
-  <string value="┳"/>
-  <string value="┴"/>
-  <string value="┵"/>
-  <string value="┶"/>
-  <string value="┷"/>
-  <string value="┸"/>
-  <string value="┹"/>
-  <string value="┺"/>
-  <string value="┻"/>
-  <string value="┼"/>
-  <string value="┽"/>
-  <string value="┾"/>
-  <string value="┿"/>
-  <string value="╀"/>
-  <string value="╁"/>
-  <string value="╂"/>
-  <string value="╃"/>
-  <string value="╄"/>
-  <string value="╅"/>
-  <string value="╆"/>
-  <string value="╇"/>
-  <string value="╈"/>
-  <string value="╉"/>
-  <string value="╊"/>
-  <string value="╋"/>
-</keystring>
\ No newline at end of file
diff --git a/res/xml/symbols_china_list_kana.xml b/res/xml/symbols_china_list_kana.xml
deleted file mode 100644
index c068cfc..0000000
--- a/res/xml/symbols_china_list_kana.xml
+++ /dev/null
@@ -1,265 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2008,2009  OMRON SOFTWARE Co., Ltd.
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<!--symbols shuāngzìjiéyīqū -->
-<keystring>
-  <string value="ぁ"/>
-  <string value="あ"/>
-  <string value="ぃ"/>
-  <string value="い"/>
-  <string value="ぅ"/>
-  <string value="う"/>
-  <string value="ぇ"/>
-  <string value="え"/>
-  <string value="ぉ"/>
-  <string value="お"/>
-  <string value="か"/>
-  <string value="が"/>
-  <string value="き"/>
-  <string value="ぎ"/>
-  <string value="く"/>
-  <string value="ぐ"/>
-  <string value="け"/>
-  <string value="げ"/>
-  <string value="こ"/>
-  <string value="ご"/>
-  <string value="さ"/>
-  <string value="ざ"/>
-  <string value="し"/>
-  <string value="じ"/>
-  <string value="す"/>
-  <string value="ず"/>
-  <string value="せ"/>
-  <string value="ぜ"/>
-  <string value="そ"/>
-  <string value="ぞ"/>
-  <string value="た"/>
-  <string value="だ"/>
-  <string value="ち"/>
-  <string value="ぢ"/>
-  <string value="っ"/>
-  <string value="つ"/>
-  <string value="づ"/>
-  <string value="て"/>
-  <string value="で"/>
-  <string value="と"/>
-  <string value="ど"/>
-  <string value="な"/>
-  <string value="に"/>
-  <string value="ぬ"/>
-  <string value="ね"/>
-  <string value="の"/>
-  <string value="は"/>
-  <string value="ば"/>
-  <string value="ぱ"/>
-  <string value="ひ"/>
-  <string value="び"/>
-  <string value="ぴ"/>
-  <string value="ふ"/>
-  <string value="ぶ"/>
-  <string value="ぷ"/>
-  <string value="へ"/>
-  <string value="べ"/>
-  <string value="ぺ"/>
-  <string value="ほ"/>
-  <string value="ぼ"/>
-  <string value="ぽ"/>
-  <string value="ま"/>
-  <string value="み"/>
-  <string value="む"/>
-  <string value="め"/>
-  <string value="も"/>
-  <string value="ゃ"/>
-  <string value="や"/>
-  <string value="ゅ"/>
-  <string value="ゆ"/>
-  <string value="ょ"/>
-  <string value="よ"/>
-  <string value="ら"/>
-  <string value="り"/>
-  <string value="る"/>
-  <string value="れ"/>
-  <string value="ろ"/>
-  <string value="ゎ"/>
-  <string value="わ"/>
-  <string value="ゐ"/>
-  <string value="ゑ"/>
-  <string value="を"/>
-  <string value="ん"/>
-  <string value="ァ"/>
-  <string value="ア"/>
-  <string value="ィ"/>
-  <string value="イ"/>
-  <string value="ゥ"/>
-  <string value="ウ"/>
-  <string value="ェ"/>
-  <string value="エ"/>
-  <string value="ォ"/>
-  <string value="オ"/>
-  <string value="カ"/>
-  <string value="ガ"/>
-  <string value="キ"/>
-  <string value="ギ"/>
-  <string value="ク"/>
-  <string value="グ"/>
-  <string value="ケ"/>
-  <string value="ゲ"/>
-  <string value="コ"/>
-  <string value="ゴ"/>
-  <string value="サ"/>
-  <string value="ザ"/>
-  <string value="シ"/>
-  <string value="ジ"/>
-  <string value="ス"/>
-  <string value="ズ"/>
-  <string value="セ"/>
-  <string value="ゼ"/>
-  <string value="ソ"/>
-  <string value="ゾ"/>
-  <string value="タ"/>
-  <string value="ダ"/>
-  <string value="チ"/>
-  <string value="ヂ"/>
-  <string value="ッ"/>
-  <string value="ツ"/>
-  <string value="ヅ"/>
-  <string value="テ"/>
-  <string value="デ"/>
-  <string value="ト"/>
-  <string value="ド"/>
-  <string value="ナ"/>
-  <string value="ニ"/>
-  <string value="ヌ"/>
-  <string value="ネ"/>
-  <string value="ノ"/>
-  <string value="ハ"/>
-  <string value="バ"/>
-  <string value="パ"/>
-  <string value="ヒ"/>
-  <string value="ビ"/>
-  <string value="ピ"/>
-  <string value="フ"/>
-  <string value="ブ"/>
-  <string value="プ"/>
-  <string value="ヘ"/>
-  <string value="ベ"/>
-  <string value="ペ"/>
-  <string value="ホ"/>
-  <string value="ボ"/>
-  <string value="ポ"/>
-  <string value="マ"/>
-  <string value="ミ"/>
-  <string value="ム"/>
-  <string value="メ"/>
-  <string value="モ"/>
-  <string value="ャ"/>
-  <string value="ヤ"/>
-  <string value="ュ"/>
-  <string value="ユ"/>
-  <string value="ョ"/>
-  <string value="ヨ"/>
-  <string value="ラ"/>
-  <string value="リ"/>
-  <string value="ル"/>
-  <string value="レ"/>
-  <string value="ロ"/>
-  <string value="ヮ"/>
-  <string value="ワ"/>
-  <string value="ヰ"/>
-  <string value="ヱ"/>
-  <string value="ヲ"/>
-  <string value="ン"/>
-  <string value="ヴ"/>
-  <string value="ヵ"/>
-  <string value="ヶ"/>
-  <string value="Α"/>
-  <string value="Β"/>
-  <string value="Γ"/>
-  <string value="Δ"/>
-  <string value="Ε"/>
-  <string value="Ζ"/>
-  <string value="Η"/>
-  <string value="Θ"/>
-  <string value="Ι"/>
-  <string value="Κ"/>
-  <string value="Λ"/>
-  <string value="Μ"/>
-  <string value="Ν"/>
-  <string value="Ξ"/>
-  <string value="Ο"/>
-  <string value="Π"/>
-  <string value="Ρ"/>
-  <string value="Σ"/>
-  <string value="Τ"/>
-  <string value="Υ"/>
-  <string value="Φ"/>
-  <string value="Χ"/>
-  <string value="Ψ"/>
-  <string value="Ω"/>
-  <string value="α"/>
-  <string value="β"/>
-  <string value="γ"/>
-  <string value="δ"/>
-  <string value="ε"/>
-  <string value="ζ"/>
-  <string value="η"/>
-  <string value="θ"/>
-  <string value="ι"/>
-  <string value="κ"/>
-  <string value="λ"/>
-  <string value="μ"/>
-  <string value="ν"/>
-  <string value="ξ"/>
-  <string value="ο"/>
-  <string value="π"/>
-  <string value="ρ"/>
-  <string value="σ"/>
-  <string value="τ"/>
-  <string value="υ"/>
-  <string value="φ"/>
-  <string value="χ"/>
-  <string value="ψ"/>
-  <string value="ω"/>
-  <string value="\ue78d"/>
-  <string value="\ue78e"/>
-  <string value="\ue78f"/>
-  <string value="\ue790"/>
-  <string value="\ue791"/>
-  <string value="\ue792"/>
-  <string value="\ue793"/>
-  <string value="︵"/>
-  <string value="︶"/>
-  <string value="︹"/>
-  <string value="︺"/>
-  <string value="︿"/>
-  <string value="﹀"/>
-  <string value="︽"/>
-  <string value="︾"/>
-  <string value="﹁"/>
-  <string value="﹂"/>
-  <string value="﹃"/>
-  <string value="﹄"/>
-  <string value="\ue794"/>
-  <string value="\ue795"/>
-  <string value="︻"/>
-  <string value="︼"/>
-  <string value="︷"/>
-  <string value="︸"/>
-  <string value="︱"/>
-  <string value="\ue796"/>
-  <string value="︳"/>
-  <string value="︴"/>
-</keystring>
\ No newline at end of file
diff --git a/src/jp/co/omronsoft/openwnn/EN/OpenWnnEngineEN.java b/src/jp/co/omronsoft/openwnn/EN/OpenWnnEngineEN.java
index a0385b9..17d6886 100644
--- a/src/jp/co/omronsoft/openwnn/EN/OpenWnnEngineEN.java
+++ b/src/jp/co/omronsoft/openwnn/EN/OpenWnnEngineEN.java
@@ -37,6 +37,8 @@
     public static final int FREQ_LEARN = 600;
     /** Score(frequency value) of word in the user dictionary */
     public static final int FREQ_USER = 500;
+    /** Limitation of predicted candidates */
+    public static final int PREDICT_LIMIT = 300;
 
     /** OpenWnn dictionary */
 	private   WnnDictionary mDictionary;
@@ -106,7 +108,7 @@
     private WnnWord getCandidate(int index) {
         WnnWord word;
         /* search the candidate from the dictionaries */
-        while (index >= mConvResult.size()) {
+        while (mConvResult.size() < PREDICT_LIMIT && index >= mConvResult.size()) {
             while ((word = mDictionary.getNextWord()) != null) {
                 /* adjust the case of letter */
                 char c = word.candidate.charAt(0);
diff --git a/src/jp/co/omronsoft/openwnn/JAJP/OpenWnnEngineJAJP.java b/src/jp/co/omronsoft/openwnn/JAJP/OpenWnnEngineJAJP.java
index 6958780..98b5a40 100644
--- a/src/jp/co/omronsoft/openwnn/JAJP/OpenWnnEngineJAJP.java
+++ b/src/jp/co/omronsoft/openwnn/JAJP/OpenWnnEngineJAJP.java
@@ -76,7 +76,9 @@
 
     /** Maximum limit length of output */
     public static final int MAX_OUTPUT_LENGTH = 50;
-    
+    /** Limitation of predicted candidates */
+    public static final int PREDICT_LIMIT = 100;
+   
     /** OpenWnn dictionary */
 	private WnnDictionary mDictionaryJP;
 
@@ -203,16 +205,24 @@
                 /* skip to single clause conversion if single clause conversion mode */
                 mGetCandidateFrom = 1;
             } else {
-                /* get prefix matching words from the dictionaries */
-                while (index >= mConvResult.size()) {
-                    if ((word = mDictionaryJP.getNextWord()) == null) {
-                        mGetCandidateFrom = 1;
-                        break;
-                    }
-                    if (!mExactMatchMode || mInputHiragana.equals(word.stroke)) {
-                        addCandidate(word);
-                    }
-                }
+            	if (mConvResult.size() < PREDICT_LIMIT) {
+            		/* get prefix matching words from the dictionaries */
+            		while (index >= mConvResult.size()) {
+            			if ((word = mDictionaryJP.getNextWord()) == null) {
+            				mGetCandidateFrom = 1;
+            				break;
+            			}
+            			if (!mExactMatchMode || mInputHiragana.equals(word.stroke)) {
+            				addCandidate(word);
+            				if (mConvResult.size() >= PREDICT_LIMIT) {
+            					mGetCandidateFrom = 1;
+            					break;
+            				}
+            			}
+            		}
+            	} else {
+            		mGetCandidateFrom = 1;
+            	}
             }
         }
 
diff --git a/src/jp/co/omronsoft/openwnn/TextCandidatesViewManager.java b/src/jp/co/omronsoft/openwnn/TextCandidatesViewManager.java
index 2ea1f85..8de4669 100644
--- a/src/jp/co/omronsoft/openwnn/TextCandidatesViewManager.java
+++ b/src/jp/co/omronsoft/openwnn/TextCandidatesViewManager.java
@@ -685,6 +685,10 @@
         if (mAutoHideMode && mViewBody.isShown()) {
             mWnn.setCandidatesViewShown(false);
         }
+        if(!mAutoHideMode){
+            mCanReadMore = false;
+            setReadMore();
+        }
     }
 
     /** @see CandidatesViewManager#setPreferences */
diff --git a/src/jp/co/omronsoft/openwnn/ZH/OpenWnnEngineZH.java b/src/jp/co/omronsoft/openwnn/ZH/OpenWnnEngineZH.java
index 022f5b1..2be414c 100644
--- a/src/jp/co/omronsoft/openwnn/ZH/OpenWnnEngineZH.java
+++ b/src/jp/co/omronsoft/openwnn/ZH/OpenWnnEngineZH.java
@@ -60,6 +60,9 @@
     public static final int KEYBOARD_QWERTY = 2;
     /** Maximum limit length of output */
     public static final int MAX_OUTPUT_LENGTH = 50;
+    /** Limitation of predicted candidates */
+    public static final int PREDICT_LIMIT = 300;
+
 
     /** Score(frequency value) of word in the learning dictionary */
     public static final int FREQ_LEARN = 600;
@@ -195,23 +198,22 @@
                 /* single clause conversion */
                 Iterator<?> convResult = mClauseConverter.convert(mInputPinyin);
                 if (convResult != null) {
-                	while (convResult.hasNext()) {
-                		addCandidate((WnnWord)convResult.next());
-                	}
-                }	
+                    while (convResult.hasNext()) {
+                        addCandidate((WnnWord)convResult.next());
+                    }
+                }   
                 /* end of candidates by single clause conversion */
                 mGetCandidateFrom = -1;
             } else {
                 /* get prefix matching words from the dictionaries */
                 while (index >= mConvResult.size()) {
                     if ((word = mDictionaryZH.getNextWord()) == null) {
-                    	if (!mExactMatchMode && mSearchLength > 1) {
-                    		mGetCandidateFrom = 1;
-                    		break;
-                    	} else {
-                    		mGetCandidateFrom = 2;
-                    		break;
-                    	}
+                        if (!mExactMatchMode && mSearchLength > 1) {
+                            mGetCandidateFrom = 1;
+                        } else {
+                            mGetCandidateFrom = 2;
+                        }
+                        break;
                     }
                     if (mSearchLength == word.stroke.length()
                         || (!mExactMatchMode && (mSearchLength == mInputPinyin.length()))) {
@@ -225,44 +227,44 @@
             /* get common prefix matching words from the dictionaries */
             while (index >= mConvResult.size()) {
                 if ((word = mDictionaryZH.getNextWord()) == null) {
-                	if (--mSearchLength > 0) {
-                		String input = mInputPinyin.substring(0, mSearchLength);
-                		if (mSearchLength == PinyinParser.PINYIN_MAX_LENGTH) {
-                			/* if length of the key is less than PinyinParser.PINYIN_MAX_LENGTH,
-                			 * use the single Kanji dictionary.
-                			 */
-                			mDictionaryZH.setDictionary(2, 400, 500); /* single Kanji dictionary */
-                		}
-                		
-                		ArrayList<WnnWord> cache = mSearchCache.get(input);
-                		if (cache != null) {
-                			if (cache != mNoWord) {
-                				Iterator<WnnWord> cachei = cache.iterator();
-                				while (cachei.hasNext()) {
-                					addCandidate(cachei.next());
-                				}
-                				mSearchCacheArray = cache;
-                				mDictionaryZH.searchWord(WnnDictionary.SEARCH_PREFIX, WnnDictionary.ORDER_BY_FREQUENCY, input);
-                			}
-                		} else {
-                			if (PinyinParser.isPinyin(input)
-                					&& mDictionaryZH.searchWord(WnnDictionary.SEARCH_PREFIX, WnnDictionary.ORDER_BY_FREQUENCY, input) > 0) {
-                    			mSearchCacheArray = new ArrayList<WnnWord>();
-                    		} else {
-                    			mSearchCacheArray = mNoWord;                    			
-                    		}
-                			mSearchCache.put(input, mSearchCacheArray);
-                		}
-                		continue;
-                	} else {
-                		mGetCandidateFrom = 2;
-                		break;
-                	}
+                    if (--mSearchLength > 0) {
+                        String input = mInputPinyin.substring(0, mSearchLength);
+                        if (mSearchLength == PinyinParser.PINYIN_MAX_LENGTH) {
+                            /* if length of the key is less than PinyinParser.PINYIN_MAX_LENGTH,
+                             * use the single Kanji dictionary.
+                             */
+                            mDictionaryZH.setDictionary(2, 400, 500); /* single Kanji dictionary */
+                        }
+
+                        ArrayList<WnnWord> cache = mSearchCache.get(input);
+                        if (cache != null) {
+                            if (cache != mNoWord) {
+                                Iterator<WnnWord> cachei = cache.iterator();
+                                while (cachei.hasNext()) {
+                                    addCandidate(cachei.next());
+                                }
+                                mSearchCacheArray = cache;
+                                mDictionaryZH.searchWord(WnnDictionary.SEARCH_PREFIX, WnnDictionary.ORDER_BY_FREQUENCY, input);
+                            }
+                        } else {
+                            if (PinyinParser.isPinyin(input)
+                                    && mDictionaryZH.searchWord(WnnDictionary.SEARCH_PREFIX, WnnDictionary.ORDER_BY_FREQUENCY, input) > 0) {
+                                mSearchCacheArray = new ArrayList<WnnWord>();
+                            } else {
+                                mSearchCacheArray = mNoWord;                                
+                            }
+                            mSearchCache.put(input, mSearchCacheArray);
+                        }
+                        continue;
+                    } else {
+                        mGetCandidateFrom = 2;
+                        break;
+                    }
                 }
                 if (mSearchLength == word.stroke.length()
-                    || (!mExactMatchMode && (mSearchLength == mInputPinyin.length()))) {
+                        || (!mExactMatchMode && (mSearchLength == mInputPinyin.length()))) {
                     if (addCandidate(word)) {
-                    	mSearchCacheArray.add(word);
+                        mSearchCacheArray.add(word);
                     }                    
                 }
             }
@@ -291,6 +293,10 @@
         		}
         	}
         }
+        
+        if (!mSingleClauseMode && mConvResult.size() > PREDICT_LIMIT) {
+        	mGetCandidateFrom = -1;
+        }
 
         if (index >= mConvResult.size()) {
             return null;