diff --git a/java/res/layout/more_suggestions.xml b/java/res/layout/more_suggestions.xml
new file mode 100644
index 0000000..d387a15
--- /dev/null
+++ b/java/res/layout/more_suggestions.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** 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.
+*/
+-->
+<LinearLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        style="?attr/miniKeyboardPanelStyle"
+        >
+    <com.android.inputmethod.latin.MoreSuggestionsView
+            xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+            android:id="@+id/more_suggestions_view"
+            android:layout_alignParentBottom="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            latin:keyLabelSize="@dimen/candidate_text_size"
+            latin:keyHintLetterRatio="@fraction/more_suggestions_info_ratio"
+            latin:keyHintLetterColor="@android:color/white"
+            />
+</LinearLayout>
diff --git a/java/res/values-ar/donottranslate-altchars.xml b/java/res/values-ar/donottranslate-more-keys.xml
similarity index 63%
rename from java/res/values-ar/donottranslate-altchars.xml
rename to java/res/values-ar/donottranslate-more-keys.xml
index 6f2a3ff..90cc3c8 100644
--- a/java/res/values-ar/donottranslate-altchars.xml
+++ b/java/res/values-ar/donottranslate-more-keys.xml
@@ -30,7 +30,7 @@
          \u0650: ARABIC KASRA
          \u064b: ARABIC FATHATAN
          \u064d: ARABIC KASRATAN -->
-    <string name="alternates_for_punctuation">"\u060c,\u061b,\u061f,!,:,-,/,\',\",\u0651,\u0652,\u064c,\u0640,\u064f,\u064e,\u0650,\u064b,\u064d"</string>
+    <string name="more_keys_for_punctuation">"\u060c,\u061b,\u061f,!,:,-,/,\',\",\u0651,\u0652,\u064c,\u0640,\u064f,\u064e,\u0650,\u064b,\u064d"</string>
     <integer name="mini_keyboard_column_for_punctuation">9</integer>
     <string name="keyhintlabel_for_punctuation">\u064b</string>
     <string name="keylabel_for_symbols_1">"١"</string>
@@ -43,35 +43,35 @@
     <string name="keylabel_for_symbols_8">"٨"</string>
     <string name="keylabel_for_symbols_9">"٩"</string>
     <string name="keylabel_for_symbols_0">"٠"</string>
-    <string name="alternates_for_symbols_1">1,¹,½,⅓,¼,⅛</string>
-    <string name="alternates_for_symbols_2">2,²,⅔</string>
-    <string name="alternates_for_symbols_3">3,³,¾,⅜</string>
-    <string name="alternates_for_symbols_4">4,⁴</string>
-    <string name="alternates_for_symbols_5">5,⅝</string>
-    <string name="alternates_for_symbols_6">6</string>
-    <string name="alternates_for_symbols_7">7,⅞</string>
-    <string name="alternates_for_symbols_8">8</string>
-    <string name="alternates_for_symbols_9">9</string>
-    <string name="alternates_for_symbols_0">0,ⁿ,∅</string>
+    <string name="more_keys_for_symbols_1">1,¹,½,⅓,¼,⅛</string>
+    <string name="more_keys_for_symbols_2">2,²,⅔</string>
+    <string name="more_keys_for_symbols_3">3,³,¾,⅜</string>
+    <string name="more_keys_for_symbols_4">4,⁴</string>
+    <string name="more_keys_for_symbols_5">5,⅝</string>
+    <string name="more_keys_for_symbols_6">6</string>
+    <string name="more_keys_for_symbols_7">7,⅞</string>
+    <string name="more_keys_for_symbols_8">8</string>
+    <string name="more_keys_for_symbols_9">9</string>
+    <string name="more_keys_for_symbols_0">0,ⁿ,∅</string>
     <string name="keylabel_for_comma">\u060c</string>
     <string name="keylabel_for_f1">\u060c</string>
     <string name="keylabel_for_symbols_question">\u061f</string>
     <string name="keylabel_for_symbols_semicolon">\u061b</string>
     <!-- \u066a: ARABIC PERCENT SIGN -->
     <string name="keylabel_for_symbols_percent">\u066a</string>
-    <string name="alternates_for_comma">,</string>
-    <string name="alternates_for_f1">,</string>
+    <string name="more_keys_for_comma">,</string>
+    <string name="more_keys_for_f1">,</string>
     <!-- @icon/3 is iconSettingsKey -->
-    <string name="alternates_for_f1_settings">\\,,\@icon/3|\@integer/key_settings</string>
+    <string name="more_keys_for_f1_settings">\\,,\@icon/3|\@integer/key_settings</string>
     <!-- @icon/7 is iconTabKey -->
-    <string name="alternates_for_f1_navigate">\\,,\@icon/7|\@integer/key_tab</string>
-    <string name="alternates_for_symbols_question">\?,¿</string>
-    <string name="alternates_for_symbols_semicolon">;</string>
-    <string name="alternates_for_symbols_percent">%,‰</string>
+    <string name="more_keys_for_f1_navigate">\\,,\@icon/7|\@integer/key_tab</string>
+    <string name="more_keys_for_symbols_question">\?,¿</string>
+    <string name="more_keys_for_symbols_semicolon">;</string>
+    <string name="more_keys_for_symbols_percent">%,‰</string>
     <string name="keylabel_for_apostrophe">"،"</string>
     <string name="keylabel_for_dash">"."</string>
     <string name="keyhintlabel_for_apostrophe">"؟"</string>
     <string name="keyhintlabel_for_dash">"\u064b"</string>
-    <string name="alternates_for_apostrophe">"\u061f,\u061b,!,:,-,/,\',\""</string>
-    <string name="alternates_for_dash">"\u0651,\u0652,\u064c,\u0640,\u064f,\u064e,\u0650,\u064b,\u064d"</string>
+    <string name="more_keys_for_apostrophe">"\u061f,\u061b,!,:,-,/,\',\""</string>
+    <string name="more_keys_for_dash">"\u0651,\u0652,\u064c,\u0640,\u064f,\u064e,\u0650,\u064b,\u064d"</string>
 </resources>
diff --git a/java/res/values-ca/donottranslate-altchars.xml b/java/res/values-ca/donottranslate-altchars.xml
deleted file mode 100644
index 336057b..0000000
--- a/java/res/values-ca/donottranslate-altchars.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">à,á,ä,â,ã,å,ą,æ,ā,ª</string>
-    <string name="alternates_for_e">3,è,é,ë,ê,ę,ė,ē</string>
-    <string name="alternates_for_i">8,í,ï,ì,î,į,ī</string>
-    <string name="alternates_for_o">9,ò,ó,ö,ô,õ,ø,œ,ō,º</string>
-    <string name="alternates_for_u">7,ú,ü,ù,û,ū</string>
-    <string name="alternates_for_n">ñ,ń</string>
-    <string name="alternates_for_c">ç,ć,č</string>
-    <string name="alternates_for_l">ŀ,ł</string>
-</resources>
diff --git a/java/res/values-pt/donottranslate-altchars.xml b/java/res/values-ca/donottranslate-more-keys.xml
similarity index 60%
rename from java/res/values-pt/donottranslate-altchars.xml
rename to java/res/values-ca/donottranslate-more-keys.xml
index a399761..bd9fb7c 100644
--- a/java/res/values-pt/donottranslate-altchars.xml
+++ b/java/res/values-ca/donottranslate-more-keys.xml
@@ -18,10 +18,12 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">á,ã,à,â,ä,å,æ,ª</string>
-    <string name="alternates_for_e">3,é,ê,è,ę,ė,ē,ë</string>
-    <string name="alternates_for_i">8,í,î,ì,ï,į,ī</string>
-    <string name="alternates_for_o">9,ó,õ,ô,ò,ö,œ,ø,ō,º</string>
-    <string name="alternates_for_u">7,ú,ü,ù,û,ū</string>
-    <string name="alternates_for_c">ç,č,ć</string>
+    <string name="more_keys_for_a">à,á,ä,â,ã,å,ą,æ,ā,ª</string>
+    <string name="more_keys_for_e">3,è,é,ë,ê,ę,ė,ē</string>
+    <string name="more_keys_for_i">8,í,ï,ì,î,į,ī</string>
+    <string name="more_keys_for_o">9,ò,ó,ö,ô,õ,ø,œ,ō,º</string>
+    <string name="more_keys_for_u">7,ú,ü,ù,û,ū</string>
+    <string name="more_keys_for_n">ñ,ń</string>
+    <string name="more_keys_for_c">ç,ć,č</string>
+    <string name="more_keys_for_l">ŀ,ł</string>
 </resources>
diff --git a/java/res/values-cs/donottranslate-altchars.xml b/java/res/values-cs/donottranslate-altchars.xml
deleted file mode 100644
index 541cd21..0000000
--- a/java/res/values-cs/donottranslate-altchars.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">á,à,â,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_e">3,é,ě,è,ê,ë,ę,ė,ē</string>
-    <string name="alternates_for_i">8,í,î,ï,ì,į,ī</string>
-    <string name="alternates_for_o">9,ó,ö,ô,ò,õ,œ,ø,ō</string>
-    <string name="alternates_for_u">7,ú,ů,û,ü,ù,ū</string>
-    <string name="alternates_for_s">š,ß,ś</string>
-    <string name="alternates_for_n">ň,ñ,ń</string>
-    <string name="alternates_for_c">č,ç,ć</string>
-    <string name="alternates_for_y">ý,ÿ</string>
-    <string name="alternates_for_d">ď</string>
-    <string name="alternates_for_r">4,ř</string>
-    <string name="alternates_for_t">5,ť</string>
-    <string name="alternates_for_z">6,ž,ź,ż</string>
-</resources>
diff --git a/java/res/values-cs/donottranslate-more-keys.xml b/java/res/values-cs/donottranslate-more-keys.xml
new file mode 100644
index 0000000..70b3f3e
--- /dev/null
+++ b/java/res/values-cs/donottranslate-more-keys.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, The Android Open Source Project
+**
+** 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="more_keys_for_a">á,à,â,ä,æ,ã,å,ā</string>
+    <string name="more_keys_for_e">3,é,ě,è,ê,ë,ę,ė,ē</string>
+    <string name="more_keys_for_i">8,í,î,ï,ì,į,ī</string>
+    <string name="more_keys_for_o">9,ó,ö,ô,ò,õ,œ,ø,ō</string>
+    <string name="more_keys_for_u">7,ú,ů,û,ü,ù,ū</string>
+    <string name="more_keys_for_s">š,ß,ś</string>
+    <string name="more_keys_for_n">ň,ñ,ń</string>
+    <string name="more_keys_for_c">č,ç,ć</string>
+    <string name="more_keys_for_y">ý,ÿ</string>
+    <string name="more_keys_for_d">ď</string>
+    <string name="more_keys_for_r">4,ř</string>
+    <string name="more_keys_for_t">5,ť</string>
+    <string name="more_keys_for_z">6,ž,ź,ż</string>
+</resources>
diff --git a/java/res/values-da/donottranslate-altchars.xml b/java/res/values-da/donottranslate-altchars.xml
deleted file mode 100644
index 46f1644..0000000
--- a/java/res/values-da/donottranslate-altchars.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">á,ä,à,â,ã,ā</string>
-    <string name="alternates_for_e">3,é,ë</string>
-    <string name="alternates_for_i">8,í,ï</string>
-    <string name="alternates_for_o">9,ó,ô,ò,õ,œ,ō</string>
-    <string name="alternates_for_u">7,ú,ü,û,ù,ū</string>
-    <string name="alternates_for_s">ß,ś,š</string>
-    <string name="alternates_for_n">ñ,ń</string>
-    <string name="alternates_for_y">6,ý,ÿ</string>
-    <string name="alternates_for_d">ð</string>
-    <string name="alternates_for_l">ł</string>
-    <string name="keylabel_for_scandinavia_row2_10">æ</string>
-    <string name="keylabel_for_scandinavia_row2_11">ø</string>
-    <string name="alternates_for_scandinavia_row2_10">ä</string>
-    <string name="alternates_for_scandinavia_row2_11">ö</string>
-</resources>
diff --git a/java/res/values-da/donottranslate-more-keys.xml b/java/res/values-da/donottranslate-more-keys.xml
new file mode 100644
index 0000000..12c1ebf
--- /dev/null
+++ b/java/res/values-da/donottranslate-more-keys.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, The Android Open Source Project
+**
+** 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="more_keys_for_a">á,ä,à,â,ã,ā</string>
+    <string name="more_keys_for_e">3,é,ë</string>
+    <string name="more_keys_for_i">8,í,ï</string>
+    <string name="more_keys_for_o">9,ó,ô,ò,õ,œ,ō</string>
+    <string name="more_keys_for_u">7,ú,ü,û,ù,ū</string>
+    <string name="more_keys_for_s">ß,ś,š</string>
+    <string name="more_keys_for_n">ñ,ń</string>
+    <string name="more_keys_for_y">6,ý,ÿ</string>
+    <string name="more_keys_for_d">ð</string>
+    <string name="more_keys_for_l">ł</string>
+    <string name="keylabel_for_scandinavia_row2_10">æ</string>
+    <string name="keylabel_for_scandinavia_row2_11">ø</string>
+    <string name="more_keys_for_scandinavia_row2_10">ä</string>
+    <string name="more_keys_for_scandinavia_row2_11">ö</string>
+</resources>
diff --git a/java/res/values-de-rZZ/donottranslate-altchars.xml b/java/res/values-de-rZZ/donottranslate-altchars.xml
deleted file mode 100644
index a6f8fc8..0000000
--- a/java/res/values-de-rZZ/donottranslate-altchars.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ä,â,à,á,æ,ã,å,ā</string>
-    <string name="alternates_for_e">3,ė</string>
-    <string name="alternates_for_o">9,ö,ô,ò,ó,õ,œ,ø,ō</string>
-    <string name="alternates_for_u">7,ü,û,ù,ú,ū</string>
-    <string name="alternates_for_s">ß,ś,š</string>
-    <string name="alternates_for_n">ñ,ń</string>
-    <string name="alternates_for_y">6</string>
-    <string name="alternates_for_z"></string>
-</resources>
diff --git a/java/res/values-ro/donottranslate-altchars.xml b/java/res/values-de-rZZ/donottranslate-more-keys.xml
similarity index 62%
copy from java/res/values-ro/donottranslate-altchars.xml
copy to java/res/values-de-rZZ/donottranslate-more-keys.xml
index 728ead4..06e76b0 100644
--- a/java/res/values-ro/donottranslate-altchars.xml
+++ b/java/res/values-de-rZZ/donottranslate-more-keys.xml
@@ -18,8 +18,12 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ă,â,à,á,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_i">8,î,ï,ì,í,į,ī</string>
-    <string name="alternates_for_s">ș,ß,ś,š</string>
-    <string name="alternates_for_t">5,ț</string>
+    <string name="more_keys_for_a">ä,â,à,á,æ,ã,å,ā</string>
+    <string name="more_keys_for_e">3,ė</string>
+    <string name="more_keys_for_o">9,ö,ô,ò,ó,õ,œ,ø,ō</string>
+    <string name="more_keys_for_u">7,ü,û,ù,ú,ū</string>
+    <string name="more_keys_for_s">ß,ś,š</string>
+    <string name="more_keys_for_n">ñ,ń</string>
+    <string name="more_keys_for_y">6</string>
+    <string name="more_keys_for_z"></string>
 </resources>
diff --git a/java/res/values-de/donottranslate-altchars.xml b/java/res/values-de/donottranslate-altchars.xml
deleted file mode 100644
index 8b8b6ae..0000000
--- a/java/res/values-de/donottranslate-altchars.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ä,â,à,á,æ,ã,å,ā</string>
-    <string name="alternates_for_e">3,ė</string>
-    <string name="alternates_for_o">9,ö,ô,ò,ó,õ,œ,ø,ō</string>
-    <string name="alternates_for_u">7,ü,û,ù,ú,ū</string>
-    <string name="alternates_for_s">ß,ś,š</string>
-    <string name="alternates_for_n">ñ,ń</string>
-    <string name="alternates_for_y"></string>
-    <string name="alternates_for_z">6</string>
-</resources>
diff --git a/java/res/values-ru/donottranslate-altchars.xml b/java/res/values-de/donottranslate-more-keys.xml
similarity index 62%
copy from java/res/values-ru/donottranslate-altchars.xml
copy to java/res/values-de/donottranslate-more-keys.xml
index 2a24e56..80aa32a 100644
--- a/java/res/values-ru/donottranslate-altchars.xml
+++ b/java/res/values-de/donottranslate-more-keys.xml
@@ -18,7 +18,12 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_cyrillic_e">5,ё</string>
-    <string name="alternates_for_cyrillic_soft_sign">ъ</string>
-    <string name="alternates_for_cyrillic_ha">ъ</string>
+    <string name="more_keys_for_a">ä,â,à,á,æ,ã,å,ā</string>
+    <string name="more_keys_for_e">3,ė</string>
+    <string name="more_keys_for_o">9,ö,ô,ò,ó,õ,œ,ø,ō</string>
+    <string name="more_keys_for_u">7,ü,û,ù,ú,ū</string>
+    <string name="more_keys_for_s">ß,ś,š</string>
+    <string name="more_keys_for_n">ñ,ń</string>
+    <string name="more_keys_for_y"></string>
+    <string name="more_keys_for_z">6</string>
 </resources>
diff --git a/java/res/values-en/donottranslate-altchars.xml b/java/res/values-en/donottranslate-altchars.xml
deleted file mode 100644
index 29582c9..0000000
--- a/java/res/values-en/donottranslate-altchars.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">à,á,â,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_e">3,è,é,ê,ë,ē</string>
-    <string name="alternates_for_i">8,î,ï,í,ī,ì</string>
-    <string name="alternates_for_o">9,ô,ö,ò,ó,œ,ø,ō,õ</string>
-    <string name="alternates_for_s">ß</string>
-    <string name="alternates_for_u">7,û,ü,ù,ú,ū</string>
-    <string name="alternates_for_n">ñ</string>
-    <string name="alternates_for_c">ç</string>
-</resources>
diff --git a/java/res/values-ru/donottranslate-altchars.xml b/java/res/values-en/donottranslate-more-keys.xml
similarity index 61%
copy from java/res/values-ru/donottranslate-altchars.xml
copy to java/res/values-en/donottranslate-more-keys.xml
index 2a24e56..bc26c6a 100644
--- a/java/res/values-ru/donottranslate-altchars.xml
+++ b/java/res/values-en/donottranslate-more-keys.xml
@@ -18,7 +18,12 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_cyrillic_e">5,ё</string>
-    <string name="alternates_for_cyrillic_soft_sign">ъ</string>
-    <string name="alternates_for_cyrillic_ha">ъ</string>
+    <string name="more_keys_for_a">à,á,â,ä,æ,ã,å,ā</string>
+    <string name="more_keys_for_e">3,è,é,ê,ë,ē</string>
+    <string name="more_keys_for_i">8,î,ï,í,ī,ì</string>
+    <string name="more_keys_for_o">9,ô,ö,ò,ó,œ,ø,ō,õ</string>
+    <string name="more_keys_for_s">ß</string>
+    <string name="more_keys_for_u">7,û,ü,ù,ú,ū</string>
+    <string name="more_keys_for_n">ñ</string>
+    <string name="more_keys_for_c">ç</string>
 </resources>
diff --git a/java/res/values-es/donottranslate-altchars.xml b/java/res/values-es/donottranslate-altchars.xml
deleted file mode 100644
index e1f849f..0000000
--- a/java/res/values-es/donottranslate-altchars.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">á,à,ä,â,ã,å,ą,æ,ā,ª</string>
-    <string name="alternates_for_e">3,é,è,ë,ê,ę,ė,ē</string>
-    <string name="alternates_for_i">8,í,ï,ì,î,į,ī</string>
-    <string name="alternates_for_o">9,ó,ò,ö,ô,õ,ø,œ,ō,º</string>
-    <string name="alternates_for_u">7,ú,ü,ù,û,ū</string>
-    <string name="alternates_for_n">ñ,ń</string>
-    <string name="alternates_for_c">ç,ć,č</string>
-    <string name="alternates_for_punctuation">"\\,,\?,!,¿,¡,:,-,\',\",),(,/,;,+,&amp;,\@"</string>
-</resources>
diff --git a/java/res/values-es/donottranslate-more-keys.xml b/java/res/values-es/donottranslate-more-keys.xml
new file mode 100644
index 0000000..d5a8ed1
--- /dev/null
+++ b/java/res/values-es/donottranslate-more-keys.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, The Android Open Source Project
+**
+** 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="more_keys_for_a">á,à,ä,â,ã,å,ą,æ,ā,ª</string>
+    <string name="more_keys_for_e">3,é,è,ë,ê,ę,ė,ē</string>
+    <string name="more_keys_for_i">8,í,ï,ì,î,į,ī</string>
+    <string name="more_keys_for_o">9,ó,ò,ö,ô,õ,ø,œ,ō,º</string>
+    <string name="more_keys_for_u">7,ú,ü,ù,û,ū</string>
+    <string name="more_keys_for_n">ñ,ń</string>
+    <string name="more_keys_for_c">ç,ć,č</string>
+    <string name="more_keys_for_punctuation">"\\,,\?,!,¿,¡,:,-,\',\",),(,/,;,+,&amp;,\@"</string>
+</resources>
diff --git a/java/res/values-fi/donottranslate-altchars.xml b/java/res/values-fi/donottranslate-more-keys.xml
similarity index 67%
rename from java/res/values-fi/donottranslate-altchars.xml
rename to java/res/values-fi/donottranslate-more-keys.xml
index ff87a32..df67c69 100644
--- a/java/res/values-fi/donottranslate-altchars.xml
+++ b/java/res/values-fi/donottranslate-more-keys.xml
@@ -18,13 +18,13 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">æ,à,á,â,ã,ā</string>
-    <string name="alternates_for_o">9,ø,ô,ò,ó,õ,œ,ō</string>
-    <string name="alternates_for_u">7,ü</string>
-    <string name="alternates_for_s">š,ß,ś</string>
-    <string name="alternates_for_z">ž,ź,ż</string>
+    <string name="more_keys_for_a">æ,à,á,â,ã,ā</string>
+    <string name="more_keys_for_o">9,ø,ô,ò,ó,õ,œ,ō</string>
+    <string name="more_keys_for_u">7,ü</string>
+    <string name="more_keys_for_s">š,ß,ś</string>
+    <string name="more_keys_for_z">ž,ź,ż</string>
     <string name="keylabel_for_scandinavia_row2_10">ö</string>
     <string name="keylabel_for_scandinavia_row2_11">ä</string>
-    <string name="alternates_for_scandinavia_row2_10">ø</string>
-    <string name="alternates_for_scandinavia_row2_11">æ</string>
+    <string name="more_keys_for_scandinavia_row2_10">ø</string>
+    <string name="more_keys_for_scandinavia_row2_11">æ</string>
 </resources>
diff --git a/java/res/values-fr/donottranslate-altchars.xml b/java/res/values-fr/donottranslate-altchars.xml
deleted file mode 100644
index ae9292f..0000000
--- a/java/res/values-fr/donottranslate-altchars.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">à,â,1,æ,á,ä,ã,å,ā,ª</string>
-    <string name="alternates_for_e">é,è,ê,ë,3,ę,ė,ē</string>
-    <string name="alternates_for_i">î,8,ï,ì,í,į,ī</string>
-    <string name="alternates_for_o">ô,œ,9,ö,ò,ó,õ,ø,ō,º</string>
-    <string name="alternates_for_u">ù,û,7,ü,ú,ū</string>
-    <string name="alternates_for_c">ç,ć,č</string>
-    <string name="alternates_for_y">6,ÿ</string>
-    <string name="alternates_for_q"></string>
-    <string name="alternates_for_w"></string>
-    <string name="alternates_for_z">2</string>
-</resources>
diff --git a/java/res/values-fr/donottranslate-more-keys.xml b/java/res/values-fr/donottranslate-more-keys.xml
new file mode 100644
index 0000000..cd6d49b
--- /dev/null
+++ b/java/res/values-fr/donottranslate-more-keys.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, The Android Open Source Project
+**
+** 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="more_keys_for_a">à,â,1,æ,á,ä,ã,å,ā,ª</string>
+    <string name="more_keys_for_e">é,è,ê,ë,3,ę,ė,ē</string>
+    <string name="more_keys_for_i">î,8,ï,ì,í,į,ī</string>
+    <string name="more_keys_for_o">ô,œ,9,ö,ò,ó,õ,ø,ō,º</string>
+    <string name="more_keys_for_u">ù,û,7,ü,ú,ū</string>
+    <string name="more_keys_for_c">ç,ć,č</string>
+    <string name="more_keys_for_y">6,ÿ</string>
+    <string name="more_keys_for_q"></string>
+    <string name="more_keys_for_w"></string>
+    <string name="more_keys_for_z">2</string>
+</resources>
diff --git a/java/res/values-hr/donottranslate-altchars.xml b/java/res/values-hr/donottranslate-altchars.xml
deleted file mode 100644
index d0c9d40..0000000
--- a/java/res/values-hr/donottranslate-altchars.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_s">š,ś,ß</string>
-    <string name="alternates_for_n">ñ,ń</string>
-    <string name="alternates_for_y"></string>
-    <string name="alternates_for_z">6,ž,ź,ż</string>
-    <string name="alternates_for_c">č,ć,ç</string>
-    <string name="alternates_for_d">đ</string>
-</resources>
diff --git a/java/res/values-ro/donottranslate-altchars.xml b/java/res/values-hr/donottranslate-more-keys.xml
similarity index 70%
copy from java/res/values-ro/donottranslate-altchars.xml
copy to java/res/values-hr/donottranslate-more-keys.xml
index 728ead4..c34e0e6 100644
--- a/java/res/values-ro/donottranslate-altchars.xml
+++ b/java/res/values-hr/donottranslate-more-keys.xml
@@ -18,8 +18,10 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ă,â,à,á,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_i">8,î,ï,ì,í,į,ī</string>
-    <string name="alternates_for_s">ș,ß,ś,š</string>
-    <string name="alternates_for_t">5,ț</string>
+    <string name="more_keys_for_s">š,ś,ß</string>
+    <string name="more_keys_for_n">ñ,ń</string>
+    <string name="more_keys_for_y"></string>
+    <string name="more_keys_for_z">6,ž,ź,ż</string>
+    <string name="more_keys_for_c">č,ć,ç</string>
+    <string name="more_keys_for_d">đ</string>
 </resources>
diff --git a/java/res/values-hu/donottranslate-altchars.xml b/java/res/values-hu/donottranslate-altchars.xml
deleted file mode 100644
index ae28cc5..0000000
--- a/java/res/values-hu/donottranslate-altchars.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">á,à,â,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_e">3,é,è,ê,ë,ę,ė,ē</string>
-    <string name="alternates_for_i">8,í,î,ï,ì,į,ī</string>
-    <string name="alternates_for_o">9,ó,ö,ő,ô,ò,õ,œ,ø,ō</string>
-    <string name="alternates_for_u">7,ú,ü,ű,û,ù,ū</string>
-    <string name="alternates_for_y"></string>
-    <string name="alternates_for_z">6</string>
-</resources>
diff --git a/java/res/values-ro/donottranslate-altchars.xml b/java/res/values-hu/donottranslate-more-keys.xml
similarity index 63%
copy from java/res/values-ro/donottranslate-altchars.xml
copy to java/res/values-hu/donottranslate-more-keys.xml
index 728ead4..42b3301 100644
--- a/java/res/values-ro/donottranslate-altchars.xml
+++ b/java/res/values-hu/donottranslate-more-keys.xml
@@ -18,8 +18,11 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ă,â,à,á,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_i">8,î,ï,ì,í,į,ī</string>
-    <string name="alternates_for_s">ș,ß,ś,š</string>
-    <string name="alternates_for_t">5,ț</string>
+    <string name="more_keys_for_a">á,à,â,ä,æ,ã,å,ā</string>
+    <string name="more_keys_for_e">3,é,è,ê,ë,ę,ė,ē</string>
+    <string name="more_keys_for_i">8,í,î,ï,ì,į,ī</string>
+    <string name="more_keys_for_o">9,ó,ö,ő,ô,ò,õ,œ,ø,ō</string>
+    <string name="more_keys_for_u">7,ú,ü,ű,û,ù,ū</string>
+    <string name="more_keys_for_y"></string>
+    <string name="more_keys_for_z">6</string>
 </resources>
diff --git a/java/res/values-it/donottranslate-altchars.xml b/java/res/values-it/donottranslate-altchars.xml
deleted file mode 100644
index 1131d48..0000000
--- a/java/res/values-it/donottranslate-altchars.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">à,á,â,ä,æ,ã,å,ā,ª</string>
-    <string name="alternates_for_e">3,è,é,ê,ë,ę,ė,ē</string>
-    <string name="alternates_for_i">8,ì,í,î,ï,į,ī</string>
-    <string name="alternates_for_o">9,ò,ó,ô,ö,õ,œ,ø,ō,º</string>
-    <string name="alternates_for_u">7,ù,ú,û,ü,ū</string>
-</resources>
diff --git a/java/res/values-ru/donottranslate-altchars.xml b/java/res/values-it/donottranslate-more-keys.xml
similarity index 68%
copy from java/res/values-ru/donottranslate-altchars.xml
copy to java/res/values-it/donottranslate-more-keys.xml
index 2a24e56..fa1537b 100644
--- a/java/res/values-ru/donottranslate-altchars.xml
+++ b/java/res/values-it/donottranslate-more-keys.xml
@@ -18,7 +18,9 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_cyrillic_e">5,ё</string>
-    <string name="alternates_for_cyrillic_soft_sign">ъ</string>
-    <string name="alternates_for_cyrillic_ha">ъ</string>
+    <string name="more_keys_for_a">à,á,â,ä,æ,ã,å,ā,ª</string>
+    <string name="more_keys_for_e">3,è,é,ê,ë,ę,ė,ē</string>
+    <string name="more_keys_for_i">8,ì,í,î,ï,į,ī</string>
+    <string name="more_keys_for_o">9,ò,ó,ô,ö,õ,œ,ø,ō,º</string>
+    <string name="more_keys_for_u">7,ù,ú,û,ü,ū</string>
 </resources>
diff --git a/java/res/values-land/dimens.xml b/java/res/values-land/dimens.xml
index 73e1aff..4bf0e20 100644
--- a/java/res/values-land/dimens.xml
+++ b/java/res/values-land/dimens.xml
@@ -59,6 +59,8 @@
     <dimen name="key_preview_offset_ics">0.01in</dimen>
 
     <dimen name="candidate_strip_height">36dip</dimen>
+    <dimen name="more_suggestions_row_height">36dip</dimen>
+    <dimen name="candidate_strip_minimum_height">160sp</dimen>
     <dimen name="candidate_strip_fading_edge_length">63dip</dimen>
     <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
     <!-- popup_key_height x 1.2 -->
diff --git a/java/res/values-lt/donottranslate-altchars.xml b/java/res/values-lt/donottranslate-altchars.xml
deleted file mode 100644
index 4aba93a..0000000
--- a/java/res/values-lt/donottranslate-altchars.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ą,à,á,â,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_e">3,ė,ę,è,é,ê,ë,ē</string>
-    <string name="alternates_for_i">8,į,î,ï,ì,í,ī</string>
-    <string name="alternates_for_u">7,ų,ū,û,ü,ù,ú</string>
-    <string name="alternates_for_s">š,ß,ś</string>
-    <string name="alternates_for_c">č,ç,ć</string>
-    <string name="alternates_for_z">ž,ź,ż</string>
-</resources>
diff --git a/java/res/values-ro/donottranslate-altchars.xml b/java/res/values-lt/donottranslate-more-keys.xml
similarity index 63%
copy from java/res/values-ro/donottranslate-altchars.xml
copy to java/res/values-lt/donottranslate-more-keys.xml
index 728ead4..6b81e45 100644
--- a/java/res/values-ro/donottranslate-altchars.xml
+++ b/java/res/values-lt/donottranslate-more-keys.xml
@@ -18,8 +18,11 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ă,â,à,á,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_i">8,î,ï,ì,í,į,ī</string>
-    <string name="alternates_for_s">ș,ß,ś,š</string>
-    <string name="alternates_for_t">5,ț</string>
+    <string name="more_keys_for_a">ą,à,á,â,ä,æ,ã,å,ā</string>
+    <string name="more_keys_for_e">3,ė,ę,è,é,ê,ë,ē</string>
+    <string name="more_keys_for_i">8,į,î,ï,ì,í,ī</string>
+    <string name="more_keys_for_u">7,ų,ū,û,ü,ù,ú</string>
+    <string name="more_keys_for_s">š,ß,ś</string>
+    <string name="more_keys_for_c">č,ç,ć</string>
+    <string name="more_keys_for_z">ž,ź,ż</string>
 </resources>
diff --git a/java/res/values-lv/donottranslate-altchars.xml b/java/res/values-lv/donottranslate-altchars.xml
deleted file mode 100644
index 05d9bc8..0000000
--- a/java/res/values-lv/donottranslate-altchars.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ā,à,á,â,ä,æ,ã,å</string>
-    <string name="alternates_for_e">3,ē,è,é,ê,ë,ę,ė</string>
-    <string name="alternates_for_i">8,ī,î,ï,ì,í,į</string>
-    <string name="alternates_for_u">7,ū,û,ü,ù,ú</string>
-    <string name="alternates_for_s">š,ß,ś</string>
-    <string name="alternates_for_n">ņ,ñ,ń</string>
-    <string name="alternates_for_c">č,ç,ć</string>
-    <string name="alternates_for_r">4,ŗ</string>
-    <string name="alternates_for_z">ž,ź,ż</string>
-    <string name="alternates_for_k">ķ</string>
-    <string name="alternates_for_l">ļ,ł</string>
-    <string name="alternates_for_g">ģ</string>
-</resources>
diff --git a/java/res/values-lv/donottranslate-more-keys.xml b/java/res/values-lv/donottranslate-more-keys.xml
new file mode 100644
index 0000000..77e1c26
--- /dev/null
+++ b/java/res/values-lv/donottranslate-more-keys.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="more_keys_for_a">ā,à,á,â,ä,æ,ã,å</string>
+    <string name="more_keys_for_e">3,ē,è,é,ê,ë,ę,ė</string>
+    <string name="more_keys_for_i">8,ī,î,ï,ì,í,į</string>
+    <string name="more_keys_for_u">7,ū,û,ü,ù,ú</string>
+    <string name="more_keys_for_s">š,ß,ś</string>
+    <string name="more_keys_for_n">ņ,ñ,ń</string>
+    <string name="more_keys_for_c">č,ç,ć</string>
+    <string name="more_keys_for_r">4,ŗ</string>
+    <string name="more_keys_for_z">ž,ź,ż</string>
+    <string name="more_keys_for_k">ķ</string>
+    <string name="more_keys_for_l">ļ,ł</string>
+    <string name="more_keys_for_g">ģ</string>
+</resources>
diff --git a/java/res/values-nb/donottranslate-altchars.xml b/java/res/values-nb/donottranslate-more-keys.xml
similarity index 68%
rename from java/res/values-nb/donottranslate-altchars.xml
rename to java/res/values-nb/donottranslate-more-keys.xml
index 798e51c..b98341c 100644
--- a/java/res/values-nb/donottranslate-altchars.xml
+++ b/java/res/values-nb/donottranslate-more-keys.xml
@@ -18,12 +18,12 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">à,ä,á,â,ã,ā</string>
-    <string name="alternates_for_e">3,é,è,ê,ë,ę,ė,ē</string>
-    <string name="alternates_for_o">9,ô,ò,ó,ö,õ,œ,ō</string>
-    <string name="alternates_for_u">7,ü,û,ù,ú,ū</string>
+    <string name="more_keys_for_a">à,ä,á,â,ã,ā</string>
+    <string name="more_keys_for_e">3,é,è,ê,ë,ę,ė,ē</string>
+    <string name="more_keys_for_o">9,ô,ò,ó,ö,õ,œ,ō</string>
+    <string name="more_keys_for_u">7,ü,û,ù,ú,ū</string>
     <string name="keylabel_for_scandinavia_row2_10">ø</string>
     <string name="keylabel_for_scandinavia_row2_11">æ</string>
-    <string name="alternates_for_scandinavia_row2_10">ö</string>
-    <string name="alternates_for_scandinavia_row2_11">ä</string>
+    <string name="more_keys_for_scandinavia_row2_10">ö</string>
+    <string name="more_keys_for_scandinavia_row2_11">ä</string>
 </resources>
diff --git a/java/res/values-nl/donottranslate-altchars.xml b/java/res/values-nl/donottranslate-more-keys.xml
similarity index 66%
rename from java/res/values-nl/donottranslate-altchars.xml
rename to java/res/values-nl/donottranslate-more-keys.xml
index e26a749..49cc419 100644
--- a/java/res/values-nl/donottranslate-altchars.xml
+++ b/java/res/values-nl/donottranslate-more-keys.xml
@@ -18,10 +18,10 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">á,ä,â,à,æ,ã,å,ā</string>
-    <string name="alternates_for_e">3,é,ë,ê,è,ę,ė,ē</string>
-    <string name="alternates_for_i">8,í,ï,ì,î,į,ī</string>
-    <string name="alternates_for_o">9,ó,ö,ô,ò,õ,œ,ø,ō</string>
-    <string name="alternates_for_u">7,ú,ü,û,ù,ū</string>
-    <string name="alternates_for_n">ñ,ń</string>
+    <string name="more_keys_for_a">á,ä,â,à,æ,ã,å,ā</string>
+    <string name="more_keys_for_e">3,é,ë,ê,è,ę,ė,ē</string>
+    <string name="more_keys_for_i">8,í,ï,ì,î,į,ī</string>
+    <string name="more_keys_for_o">9,ó,ö,ô,ò,õ,œ,ø,ō</string>
+    <string name="more_keys_for_u">7,ú,ü,û,ù,ū</string>
+    <string name="more_keys_for_n">ñ,ń</string>
 </resources>
diff --git a/java/res/values-pl/donottranslate-altchars.xml b/java/res/values-pl/donottranslate-altchars.xml
deleted file mode 100644
index 971d73b..0000000
--- a/java/res/values-pl/donottranslate-altchars.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ą,á,à,â,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_e">3,ę,è,é,ê,ë,ė,ē</string>
-    <string name="alternates_for_o">9,ó,ö,ô,ò,õ,œ,ø,ō</string>
-    <string name="alternates_for_s">ś,ß,š</string>
-    <string name="alternates_for_n">ń,ñ</string>
-    <string name="alternates_for_c">ć,ç,č</string>
-    <string name="alternates_for_z">ż,ź,ž</string>
-    <string name="alternates_for_l">ł</string>
-</resources>
diff --git a/java/res/values-ru/donottranslate-altchars.xml b/java/res/values-pl/donottranslate-more-keys.xml
similarity index 61%
copy from java/res/values-ru/donottranslate-altchars.xml
copy to java/res/values-pl/donottranslate-more-keys.xml
index 2a24e56..18e1499 100644
--- a/java/res/values-ru/donottranslate-altchars.xml
+++ b/java/res/values-pl/donottranslate-more-keys.xml
@@ -18,7 +18,12 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_cyrillic_e">5,ё</string>
-    <string name="alternates_for_cyrillic_soft_sign">ъ</string>
-    <string name="alternates_for_cyrillic_ha">ъ</string>
+    <string name="more_keys_for_a">ą,á,à,â,ä,æ,ã,å,ā</string>
+    <string name="more_keys_for_e">3,ę,è,é,ê,ë,ė,ē</string>
+    <string name="more_keys_for_o">9,ó,ö,ô,ò,õ,œ,ø,ō</string>
+    <string name="more_keys_for_s">ś,ß,š</string>
+    <string name="more_keys_for_n">ń,ñ</string>
+    <string name="more_keys_for_c">ć,ç,č</string>
+    <string name="more_keys_for_z">ż,ź,ž</string>
+    <string name="more_keys_for_l">ł</string>
 </resources>
diff --git a/java/res/values-ro/donottranslate-altchars.xml b/java/res/values-pt/donottranslate-more-keys.xml
similarity index 65%
copy from java/res/values-ro/donottranslate-altchars.xml
copy to java/res/values-pt/donottranslate-more-keys.xml
index 728ead4..31d9417 100644
--- a/java/res/values-ro/donottranslate-altchars.xml
+++ b/java/res/values-pt/donottranslate-more-keys.xml
@@ -18,8 +18,10 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ă,â,à,á,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_i">8,î,ï,ì,í,į,ī</string>
-    <string name="alternates_for_s">ș,ß,ś,š</string>
-    <string name="alternates_for_t">5,ț</string>
+    <string name="more_keys_for_a">á,ã,à,â,ä,å,æ,ª</string>
+    <string name="more_keys_for_e">3,é,ê,è,ę,ė,ē,ë</string>
+    <string name="more_keys_for_i">8,í,î,ì,ï,į,ī</string>
+    <string name="more_keys_for_o">9,ó,õ,ô,ò,ö,œ,ø,ō,º</string>
+    <string name="more_keys_for_u">7,ú,ü,ù,û,ū</string>
+    <string name="more_keys_for_c">ç,č,ć</string>
 </resources>
diff --git a/java/res/values-rm/donottranslate-altchars.xml b/java/res/values-rm/donottranslate-more-keys.xml
similarity index 91%
rename from java/res/values-rm/donottranslate-altchars.xml
rename to java/res/values-rm/donottranslate-more-keys.xml
index 0a5d2aa..ea9a559 100644
--- a/java/res/values-rm/donottranslate-altchars.xml
+++ b/java/res/values-rm/donottranslate-more-keys.xml
@@ -18,5 +18,5 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_o">9,ò,ó,ö,ô,õ,œ,ø</string>
+    <string name="more_keys_for_o">9,ò,ó,ö,ô,õ,œ,ø</string>
 </resources>
diff --git a/java/res/values-ro/donottranslate-altchars.xml b/java/res/values-ro/donottranslate-more-keys.xml
similarity index 75%
rename from java/res/values-ro/donottranslate-altchars.xml
rename to java/res/values-ro/donottranslate-more-keys.xml
index 728ead4..d7e6a17 100644
--- a/java/res/values-ro/donottranslate-altchars.xml
+++ b/java/res/values-ro/donottranslate-more-keys.xml
@@ -18,8 +18,8 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ă,â,à,á,ä,æ,ã,å,ā</string>
-    <string name="alternates_for_i">8,î,ï,ì,í,į,ī</string>
-    <string name="alternates_for_s">ș,ß,ś,š</string>
-    <string name="alternates_for_t">5,ț</string>
+    <string name="more_keys_for_a">ă,â,à,á,ä,æ,ã,å,ā</string>
+    <string name="more_keys_for_i">8,î,ï,ì,í,į,ī</string>
+    <string name="more_keys_for_s">ș,ß,ś,š</string>
+    <string name="more_keys_for_t">5,ț</string>
 </resources>
diff --git a/java/res/values-ru/donottranslate-altchars.xml b/java/res/values-ru/donottranslate-more-keys.xml
similarity index 80%
rename from java/res/values-ru/donottranslate-altchars.xml
rename to java/res/values-ru/donottranslate-more-keys.xml
index 2a24e56..f7e006e 100644
--- a/java/res/values-ru/donottranslate-altchars.xml
+++ b/java/res/values-ru/donottranslate-more-keys.xml
@@ -18,7 +18,7 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_cyrillic_e">5,ё</string>
-    <string name="alternates_for_cyrillic_soft_sign">ъ</string>
-    <string name="alternates_for_cyrillic_ha">ъ</string>
+    <string name="more_keys_for_cyrillic_e">5,ё</string>
+    <string name="more_keys_for_cyrillic_soft_sign">ъ</string>
+    <string name="more_keys_for_cyrillic_ha">ъ</string>
 </resources>
diff --git a/java/res/values-sk/donottranslate-altchars.xml b/java/res/values-sk/donottranslate-altchars.xml
deleted file mode 100644
index 6d9836e..0000000
--- a/java/res/values-sk/donottranslate-altchars.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">ä,á,à,â,æ,ã,å,ā</string>
-    <string name="alternates_for_e">3,é,ě,è,ê,ë,ę,ė,ē</string>
-    <string name="alternates_for_i">8,í,î,ï,ì,į,ī</string>
-    <string name="alternates_for_o">9,ô,ó,ö,ò,õ,œ,ø,ō</string>
-    <string name="alternates_for_u">7,ú,ú,û,ü,ù,ū</string>
-    <string name="alternates_for_s">š,ß,ś</string>
-    <string name="alternates_for_n">ň,ñ,ń</string>
-    <string name="alternates_for_c">č,ç,ć</string>
-    <string name="alternates_for_y">6,ý,ÿ</string>
-    <string name="alternates_for_d">ď</string>
-    <string name="alternates_for_r">4,ŕ,ř</string>
-    <string name="alternates_for_t">5,ť</string>
-    <string name="alternates_for_z">ž,ź,ż</string>
-    <string name="alternates_for_l">ľ,ĺ,ł</string>
-</resources>
diff --git a/java/res/values-sk/donottranslate-more-keys.xml b/java/res/values-sk/donottranslate-more-keys.xml
new file mode 100644
index 0000000..b73db0a
--- /dev/null
+++ b/java/res/values-sk/donottranslate-more-keys.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="more_keys_for_a">ä,á,à,â,æ,ã,å,ā</string>
+    <string name="more_keys_for_e">3,é,ě,è,ê,ë,ę,ė,ē</string>
+    <string name="more_keys_for_i">8,í,î,ï,ì,į,ī</string>
+    <string name="more_keys_for_o">9,ô,ó,ö,ò,õ,œ,ø,ō</string>
+    <string name="more_keys_for_u">7,ú,ú,û,ü,ù,ū</string>
+    <string name="more_keys_for_s">š,ß,ś</string>
+    <string name="more_keys_for_n">ň,ñ,ń</string>
+    <string name="more_keys_for_c">č,ç,ć</string>
+    <string name="more_keys_for_y">6,ý,ÿ</string>
+    <string name="more_keys_for_d">ď</string>
+    <string name="more_keys_for_r">4,ŕ,ř</string>
+    <string name="more_keys_for_t">5,ť</string>
+    <string name="more_keys_for_z">ž,ź,ż</string>
+    <string name="more_keys_for_l">ľ,ĺ,ł</string>
+</resources>
diff --git a/java/res/values-sv/donottranslate-altchars.xml b/java/res/values-sv/donottranslate-more-keys.xml
similarity index 69%
rename from java/res/values-sv/donottranslate-altchars.xml
rename to java/res/values-sv/donottranslate-more-keys.xml
index d03ae1a..1fa29a8 100644
--- a/java/res/values-sv/donottranslate-altchars.xml
+++ b/java/res/values-sv/donottranslate-more-keys.xml
@@ -18,12 +18,12 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_e">3,é,è,ê,ë,ę</string>
-    <string name="alternates_for_o">9,œ,ô,ò,ó,õ,ō</string>
-    <string name="alternates_for_u">7,ü,û,ù,ú,ū</string>
-    <string name="alternates_for_s">ß,ś,š</string>
+    <string name="more_keys_for_e">3,é,è,ê,ë,ę</string>
+    <string name="more_keys_for_o">9,œ,ô,ò,ó,õ,ō</string>
+    <string name="more_keys_for_u">7,ü,û,ù,ú,ū</string>
+    <string name="more_keys_for_s">ß,ś,š</string>
     <string name="keylabel_for_scandinavia_row2_10">ö</string>
     <string name="keylabel_for_scandinavia_row2_11">ä</string>
-    <string name="alternates_for_scandinavia_row2_10">ø</string>
-    <string name="alternates_for_scandinavia_row2_11">æ</string>
+    <string name="more_keys_for_scandinavia_row2_10">ø</string>
+    <string name="more_keys_for_scandinavia_row2_11">æ</string>
 </resources>
diff --git a/java/res/values-sw600dp/config.xml b/java/res/values-sw600dp/config.xml
index 17aeff7..1854a86 100644
--- a/java/res/values-sw600dp/config.xml
+++ b/java/res/values-sw600dp/config.xml
@@ -25,7 +25,7 @@
     <bool name="config_enable_show_popup_on_keypress_option">false</bool>
     <bool name="config_enable_bigram_suggestions_option">false</bool>
     <bool name="config_sliding_key_input_enabled">false</bool>
-    <bool name="config_digit_popup_characters_enabled">false</bool>
+    <bool name="config_digit_more_keys_enabled">false</bool>
     <!-- Whether or not Popup on key press is enabled by default -->
     <bool name="config_default_popup_preview">false</bool>
     <bool name="config_default_sound_enabled">true</bool>
@@ -39,5 +39,5 @@
     <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
     <string name="config_default_keyboard_theme_id" translatable="false">5</string>
     <string name="config_text_size_of_language_on_spacebar" translatable="false">medium</string>
-    <integer name="config_max_mini_keyboard_column">5</integer>
+    <integer name="config_max_more_keys_column">5</integer>
 </resources>
diff --git a/java/res/values-sw600dp/dimens.xml b/java/res/values-sw600dp/dimens.xml
index 942bc72..6ce23cc 100644
--- a/java/res/values-sw600dp/dimens.xml
+++ b/java/res/values-sw600dp/dimens.xml
@@ -67,6 +67,7 @@
     <dimen name="key_preview_offset_ics">0.05in</dimen>
 
     <dimen name="candidate_strip_height">44dip</dimen>
+    <dimen name="more_suggestions_row_height">44dip</dimen>
     <dimen name="candidate_strip_padding">15.0mm</dimen>
     <dimen name="candidate_min_width">0.3in</dimen>
     <dimen name="candidate_padding">12dip</dimen>
diff --git a/java/res/values-sw768dp/config.xml b/java/res/values-sw768dp/config.xml
index 8b4ff36..a438fe9 100644
--- a/java/res/values-sw768dp/config.xml
+++ b/java/res/values-sw768dp/config.xml
@@ -25,7 +25,7 @@
     <bool name="config_enable_show_popup_on_keypress_option">false</bool>
     <bool name="config_enable_bigram_suggestions_option">false</bool>
     <bool name="config_sliding_key_input_enabled">false</bool>
-    <bool name="config_digit_popup_characters_enabled">false</bool>
+    <bool name="config_digit_more_keys_enabled">false</bool>
     <!-- Whether or not Popup on key press is enabled by default -->
     <bool name="config_default_popup_preview">false</bool>
     <bool name="config_default_sound_enabled">true</bool>
@@ -37,7 +37,7 @@
     <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
     <string name="config_default_keyboard_theme_id" translatable="false">5</string>
     <string name="config_text_size_of_language_on_spacebar" translatable="false">medium</string>
-    <integer name="config_max_mini_keyboard_column">5</integer>
+    <integer name="config_max_more_keys_column">5</integer>
     <!--  Screen metrics for logging. 0 = "mdpi", 1 = "hdpi", 2 = "xlarge" -->
     <integer name="log_screen_metrics">2</integer>
 </resources>
diff --git a/java/res/values-sw768dp/dimens.xml b/java/res/values-sw768dp/dimens.xml
index f0340bc..9b307e6 100644
--- a/java/res/values-sw768dp/dimens.xml
+++ b/java/res/values-sw768dp/dimens.xml
@@ -70,9 +70,8 @@
     <dimen name="key_preview_offset_ics">0.05in</dimen>
 
     <dimen name="candidate_strip_height">44dip</dimen>
-    <!-- candidate_strip_minimum_height =
-         key_preview_height_holo - key_preview_offset_holo + alpha -->
-    <dimen name="candidate_strip_minimum_height">18mm</dimen>
+    <dimen name="more_suggestions_row_height">44dip</dimen>
+    <dimen name="candidate_strip_minimum_height">200sp</dimen>
     <dimen name="candidate_strip_padding">15.0mm</dimen>
     <dimen name="candidate_min_width">46dip</dimen>
     <dimen name="candidate_padding">8dip</dimen>
diff --git a/java/res/values-tr/donottranslate-altchars.xml b/java/res/values-tr/donottranslate-altchars.xml
deleted file mode 100644
index 1b83b65..0000000
--- a/java/res/values-tr/donottranslate-altchars.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">â</string>
-    <string name="alternates_for_i">8,ı,î,ï,ì,í,į,ī</string>
-    <string name="alternates_for_o">9,ö,ô,œ,ò,ó,õ,ø,ō</string>
-    <string name="alternates_for_u">7,ü,û,ù,ú,ū</string>
-    <string name="alternates_for_s">ş,ß,ś,š</string>
-    <string name="alternates_for_g">ğ</string>
-    <string name="alternates_for_c">ç,ć,č</string>
-</resources>
diff --git a/java/res/values-ru/donottranslate-altchars.xml b/java/res/values-tr/donottranslate-more-keys.xml
similarity index 64%
copy from java/res/values-ru/donottranslate-altchars.xml
copy to java/res/values-tr/donottranslate-more-keys.xml
index 2a24e56..6906b35 100644
--- a/java/res/values-ru/donottranslate-altchars.xml
+++ b/java/res/values-tr/donottranslate-more-keys.xml
@@ -18,7 +18,11 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_cyrillic_e">5,ё</string>
-    <string name="alternates_for_cyrillic_soft_sign">ъ</string>
-    <string name="alternates_for_cyrillic_ha">ъ</string>
+    <string name="more_keys_for_a">â</string>
+    <string name="more_keys_for_i">8,ı,î,ï,ì,í,į,ī</string>
+    <string name="more_keys_for_o">9,ö,ô,œ,ò,ó,õ,ø,ō</string>
+    <string name="more_keys_for_u">7,ü,û,ù,ú,ū</string>
+    <string name="more_keys_for_s">ş,ß,ś,š</string>
+    <string name="more_keys_for_g">ğ</string>
+    <string name="more_keys_for_c">ç,ć,č</string>
 </resources>
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 734004f..9d34268 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -27,6 +27,7 @@
         <attr name="miniKeyboardPanelStyle" format="reference" />
         <!-- Suggestions strip style -->
         <attr name="suggestionsStripBackgroundStyle" format="reference" />
+        <attr name="suggestionsPaneViewStyle" format="reference" />
         <attr name="suggestionBackgroundStyle" format="reference" />
         <attr name="suggestionPreviewBackgroundStyle" format="reference" />
         <attr name="candidateViewStyle" format="reference" />
@@ -95,8 +96,8 @@
         <!-- Amount to offset the touch Y coordinate by, for bias correction. -->
         <attr name="verticalCorrection" format="dimension" />
 
-        <!-- Layout resource for popup panel -->
-        <attr name="popupLayout" format="reference" />
+        <!-- Layout resource for more keys panel -->
+        <attr name="moreKeysLayout" format="reference" />
 
         <attr name="shadowColor" format="color" />
         <attr name="shadowRadius" format="float" />
@@ -153,8 +154,8 @@
         <attr name="horizontalGap" format="dimension|fraction" />
         <!-- Default vertical gap between rows of keys. -->
         <attr name="verticalGap" format="dimension|fraction" />
-        <!-- Popup panel layout template -->
-        <attr name="popupTemplate" format="reference" />
+        <!-- More keys keyboard layout template -->
+        <attr name="moreKeysTemplate" format="reference" />
         <!-- Locale of the keyboard layout -->
         <attr name="keyboardLocale" format="string" />
         <!-- True if the keyboard is Right-To-Left -->
@@ -178,10 +179,10 @@
     <declare-styleable name="Keyboard_Key">
         <!-- The unicode value that this key outputs. -->
         <attr name="code" format="integer" />
-        <!-- The characters to display in the popup keyboard. -->
-        <attr name="popupCharacters" format="string" />
-        <!-- Maximum column of mini keyboard -->
-        <attr name="maxMiniKeyboardColumn" format="integer" />
+        <!-- The keys to display in the more keys keyboard. -->
+        <attr name="moreKeys" format="string" />
+        <!-- Maximum column of more keys keyboard -->
+        <attr name="maxMoreKeysColumn" format="integer" />
         <!-- Whether this is a functional key which has different key top than normal key. -->
         <attr name="isFunctional" format="boolean" />
         <!-- Whether this is a toggle key. -->
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 28cbc95..923e37d 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -27,7 +27,7 @@
     <bool name="config_enable_bigram_suggestions_option">true</bool>
     <bool name="config_enable_usability_study_mode_option">false</bool>
     <bool name="config_sliding_key_input_enabled">true</bool>
-    <bool name="config_digit_popup_characters_enabled">true</bool>
+    <bool name="config_digit_more_keys_enabled">true</bool>
     <!-- Whether or not Popup on key press is enabled by default -->
     <bool name="config_default_popup_preview">true</bool>
     <!-- Default value for bigram suggestion: while showing candidates for a word should we weigh
@@ -67,7 +67,7 @@
     <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
     <string name="config_default_keyboard_theme_id" translatable="false">5</string>
     <string name="config_text_size_of_language_on_spacebar" translatable="false">small</string>
-    <integer name="config_max_mini_keyboard_column">5</integer>
+    <integer name="config_max_more_keys_column">5</integer>
     <string-array name="auto_correction_threshold_values" translatable="false">
         <!-- Off, When auto correction setting is Off, this value is not used. -->
         <item></item>
diff --git a/java/res/values/dimens.xml b/java/res/values/dimens.xml
index 2c4b35e..b7609a4 100644
--- a/java/res/values/dimens.xml
+++ b/java/res/values/dimens.xml
@@ -77,9 +77,11 @@
     <dimen name="key_preview_offset_ics">0.05in</dimen>
 
     <dimen name="candidate_strip_height">40dip</dimen>
-    <!-- candidate_strip_minimum_height =
-         key_preview_height_holo - key_preview_offset_holo + alpha -->
-    <dimen name="candidate_strip_minimum_height">100sp</dimen>
+    <dimen name="more_suggestions_key_horizontal_padding">12dip</dimen>
+    <dimen name="more_suggestions_row_height">40dip</dimen>
+    <dimen name="more_suggestions_slide_allowance">0.2in</dimen>
+    <fraction name="more_suggestions_info_ratio">12%</fraction>
+    <dimen name="candidate_strip_minimum_height">200sp</dimen>
     <dimen name="candidate_strip_fading_edge_length">63dip</dimen>
     <dimen name="candidate_strip_padding">0dip</dimen>
     <dimen name="candidate_min_width">44dip</dimen>
diff --git a/java/res/values/donottranslate-altchars.xml b/java/res/values/donottranslate-altchars.xml
deleted file mode 100644
index acbf7df..0000000
--- a/java/res/values/donottranslate-altchars.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** 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.
-*/
--->
-<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a"></string>
-    <string name="alternates_for_e">3</string>
-    <string name="alternates_for_i">8</string>
-    <string name="alternates_for_o">9</string>
-    <string name="alternates_for_u">7</string>
-    <string name="alternates_for_s"></string>
-    <string name="alternates_for_n"></string>
-    <string name="alternates_for_c"></string>
-    <string name="alternates_for_y">6</string>
-    <string name="alternates_for_q">1</string>
-    <string name="alternates_for_w">2</string>
-    <string name="alternates_for_d"></string>
-    <string name="alternates_for_r">4</string>
-    <string name="alternates_for_t">5</string>
-    <string name="alternates_for_z"></string>
-    <string name="alternates_for_k"></string>
-    <string name="alternates_for_l"></string>
-    <string name="alternates_for_g"></string>
-    <string name="alternates_for_p">0</string>
-    <string name="alternates_for_v"></string>
-    <string name="keylabel_for_scandinavia_row2_10"></string>
-    <string name="keylabel_for_scandinavia_row2_11"></string>
-    <string name="alternates_for_scandinavia_row2_10"></string>
-    <string name="alternates_for_scandinavia_row2_11"></string>
-    <string name="alternates_for_cyrillic_e"></string>
-    <string name="alternates_for_cyrillic_soft_sign"></string>
-    <string name="alternates_for_cyrillic_ha"></string>
-    <string name="alternates_for_currency_dollar">¢,£,€,¥,₱</string>
-    <string name="alternates_for_currency_euro">¢,£,$,¥,₱</string>
-    <string name="alternates_for_currency_pound">¢,$,€,¥,₱</string>
-    <string name="alternates_for_currency_general">¢,$,€,£,¥,₱</string>
-    <string name="alternates_for_smiley">":-)|:-) ,:-(|:-( ,;-)|;-) ,:-P|:-P ,=-O|=-O ,:-*|:-* ,:O|:O ,B-)|B-) ,:-$|:-$ ,:-!|:-! ,:-[|:-[ ,O:-)|O:-) ,:-\\\\\\\\|:-\\\\\\\\ ,:\'(|:\'( ,:-D|:-D "</string>
-    <string name="alternates_for_punctuation">"\\,,\?,!,:,-,\',\",(,),/,;,+,&amp;,\@"</string>
-    <integer name="mini_keyboard_column_for_punctuation">7</integer>
-    <string name="keyhintlabel_for_punctuation"></string>
-    <string name="keylabel_for_popular_domain">".com"</string>
-    <!-- popular web domains for the locale - most popular, displayed on the keyboard -->
-    <string name="alternates_for_popular_domain">".net,.org,.gov,.edu"</string>
-    <string name="keylabel_for_symbols_1">1</string>
-    <string name="keylabel_for_symbols_2">2</string>
-    <string name="keylabel_for_symbols_3">3</string>
-    <string name="keylabel_for_symbols_4">4</string>
-    <string name="keylabel_for_symbols_5">5</string>
-    <string name="keylabel_for_symbols_6">6</string>
-    <string name="keylabel_for_symbols_7">7</string>
-    <string name="keylabel_for_symbols_8">8</string>
-    <string name="keylabel_for_symbols_9">9</string>
-    <string name="keylabel_for_symbols_0">0</string>
-    <string name="alternates_for_symbols_1">¹,½,⅓,¼,⅛</string>
-    <string name="alternates_for_symbols_2">²,⅔</string>
-    <string name="alternates_for_symbols_3">³,¾,⅜</string>
-    <string name="alternates_for_symbols_4">⁴</string>
-    <string name="alternates_for_symbols_5">⅝</string>
-    <string name="alternates_for_symbols_6"></string>
-    <string name="alternates_for_symbols_7">⅞</string>
-    <string name="alternates_for_symbols_8"></string>
-    <string name="alternates_for_symbols_9"></string>
-    <string name="alternates_for_symbols_0">ⁿ,∅</string>
-    <string name="keylabel_for_comma">,</string>
-    <string name="keylabel_for_f1">,</string>
-    <string name="keylabel_for_symbols_question">\?</string>
-    <string name="keylabel_for_symbols_semicolon">;</string>
-    <string name="keylabel_for_symbols_percent">%</string>
-    <string name="alternates_for_comma"></string>
-    <string name="alternates_for_f1"></string>
-    <!-- @icon/3 is iconSettingsKey -->
-    <string name="alternates_for_f1_settings">\@icon/3|\@integer/key_settings</string>
-    <!-- @icon/7 is iconTabKey -->
-    <string name="alternates_for_f1_navigate">\@icon/7|\@integer/key_tab</string>
-    <string name="alternates_for_symbols_question">¿</string>
-    <string name="alternates_for_symbols_semicolon"></string>
-    <string name="alternates_for_symbols_percent">‰</string>
-    <string name="keylabel_for_apostrophe">\'</string>
-    <string name="keylabel_for_dash">-</string>
-    <string name="keyhintlabel_for_apostrophe">\"</string>
-    <string name="keyhintlabel_for_dash">_</string>
-    <string name="alternates_for_apostrophe">\"</string>
-    <string name="alternates_for_dash">_</string>
-</resources>
diff --git a/java/res/values/donottranslate-more-keys.xml b/java/res/values/donottranslate-more-keys.xml
new file mode 100644
index 0000000..7e396b6
--- /dev/null
+++ b/java/res/values/donottranslate-more-keys.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, The Android Open Source Project
+**
+** 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="more_keys_for_a"></string>
+    <string name="more_keys_for_e">3</string>
+    <string name="more_keys_for_i">8</string>
+    <string name="more_keys_for_o">9</string>
+    <string name="more_keys_for_u">7</string>
+    <string name="more_keys_for_s"></string>
+    <string name="more_keys_for_n"></string>
+    <string name="more_keys_for_c"></string>
+    <string name="more_keys_for_y">6</string>
+    <string name="more_keys_for_q">1</string>
+    <string name="more_keys_for_w">2</string>
+    <string name="more_keys_for_d"></string>
+    <string name="more_keys_for_r">4</string>
+    <string name="more_keys_for_t">5</string>
+    <string name="more_keys_for_z"></string>
+    <string name="more_keys_for_k"></string>
+    <string name="more_keys_for_l"></string>
+    <string name="more_keys_for_g"></string>
+    <string name="more_keys_for_p">0</string>
+    <string name="more_keys_for_v"></string>
+    <string name="keylabel_for_scandinavia_row2_10"></string>
+    <string name="keylabel_for_scandinavia_row2_11"></string>
+    <string name="more_keys_for_scandinavia_row2_10"></string>
+    <string name="more_keys_for_scandinavia_row2_11"></string>
+    <string name="more_keys_for_cyrillic_e"></string>
+    <string name="more_keys_for_cyrillic_soft_sign"></string>
+    <string name="more_keys_for_cyrillic_ha"></string>
+    <string name="more_keys_for_currency_dollar">¢,£,€,¥,₱</string>
+    <string name="more_keys_for_currency_euro">¢,£,$,¥,₱</string>
+    <string name="more_keys_for_currency_pound">¢,$,€,¥,₱</string>
+    <string name="more_keys_for_currency_general">¢,$,€,£,¥,₱</string>
+    <string name="more_keys_for_smiley">":-)|:-) ,:-(|:-( ,;-)|;-) ,:-P|:-P ,=-O|=-O ,:-*|:-* ,:O|:O ,B-)|B-) ,:-$|:-$ ,:-!|:-! ,:-[|:-[ ,O:-)|O:-) ,:-\\\\\\\\|:-\\\\\\\\ ,:\'(|:\'( ,:-D|:-D "</string>
+    <string name="more_keys_for_punctuation">"\\,,\?,!,:,-,\',\",(,),/,;,+,&amp;,\@"</string>
+    <integer name="mini_keyboard_column_for_punctuation">7</integer>
+    <string name="keyhintlabel_for_punctuation"></string>
+    <string name="keylabel_for_popular_domain">".com"</string>
+    <!-- popular web domains for the locale - most popular, displayed on the keyboard -->
+    <string name="more_keys_for_popular_domain">".net,.org,.gov,.edu"</string>
+    <string name="keylabel_for_symbols_1">1</string>
+    <string name="keylabel_for_symbols_2">2</string>
+    <string name="keylabel_for_symbols_3">3</string>
+    <string name="keylabel_for_symbols_4">4</string>
+    <string name="keylabel_for_symbols_5">5</string>
+    <string name="keylabel_for_symbols_6">6</string>
+    <string name="keylabel_for_symbols_7">7</string>
+    <string name="keylabel_for_symbols_8">8</string>
+    <string name="keylabel_for_symbols_9">9</string>
+    <string name="keylabel_for_symbols_0">0</string>
+    <string name="more_keys_for_symbols_1">¹,½,⅓,¼,⅛</string>
+    <string name="more_keys_for_symbols_2">²,⅔</string>
+    <string name="more_keys_for_symbols_3">³,¾,⅜</string>
+    <string name="more_keys_for_symbols_4">⁴</string>
+    <string name="more_keys_for_symbols_5">⅝</string>
+    <string name="more_keys_for_symbols_6"></string>
+    <string name="more_keys_for_symbols_7">⅞</string>
+    <string name="more_keys_for_symbols_8"></string>
+    <string name="more_keys_for_symbols_9"></string>
+    <string name="more_keys_for_symbols_0">ⁿ,∅</string>
+    <string name="keylabel_for_comma">,</string>
+    <string name="keylabel_for_f1">,</string>
+    <string name="keylabel_for_symbols_question">\?</string>
+    <string name="keylabel_for_symbols_semicolon">;</string>
+    <string name="keylabel_for_symbols_percent">%</string>
+    <string name="more_keys_for_comma"></string>
+    <string name="more_keys_for_f1"></string>
+    <!-- @icon/3 is iconSettingsKey -->
+    <string name="more_keys_for_f1_settings">\@icon/3|\@integer/key_settings</string>
+    <!-- @icon/7 is iconTabKey -->
+    <string name="more_keys_for_f1_navigate">\@icon/7|\@integer/key_tab</string>
+    <string name="more_keys_for_symbols_question">¿</string>
+    <string name="more_keys_for_symbols_semicolon"></string>
+    <string name="more_keys_for_symbols_percent">‰</string>
+    <string name="keylabel_for_apostrophe">\'</string>
+    <string name="keylabel_for_dash">-</string>
+    <string name="keyhintlabel_for_apostrophe">\"</string>
+    <string name="keyhintlabel_for_dash">_</string>
+    <string name="more_keys_for_apostrophe">\"</string>
+    <string name="more_keys_for_dash">_</string>
+</resources>
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 247bdba..2a3d705 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -332,11 +332,11 @@
     <!-- Title of the item to change the keyboard theme [CHAR LIMIT=20]-->
     <string name="keyboard_layout">Keyboard theme</string>
 
-    <!-- Description for German QWERTY keyboard subtype [CHAR LIMIT=35] -->
+    <!-- Description for German QWERTY keyboard subtype [CHAR LIMIT=22] -->
     <string name="subtype_de_qwerty">German QWERTY</string>
-    <!-- Description for English (United Kingdom) keyboard subtype [CHAR LIMIT=35] -->
+    <!-- Description for English (United Kingdom) keyboard subtype [CHAR LIMIT=22] -->
     <string name="subtype_en_GB">English (UK)</string>
-    <!-- Description for English (United States) keyboard subtype [CHAR LIMIT=35] -->
+    <!-- Description for English (United States) keyboard subtype [CHAR LIMIT=22] -->
     <string name="subtype_en_US">English (US)</string>
 
     <!-- Title of an option for usability study mode -->
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index eb5b749..4cc2a53 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -21,12 +21,12 @@
         <item name="keyboardHeight">@dimen/keyboardHeight</item>
         <item name="maxKeyboardHeight">@fraction/maxKeyboardHeight</item>
         <item name="minKeyboardHeight">@fraction/minKeyboardHeight</item>
-        <item name="popupTemplate">@xml/kbd_mini_keyboard_template</item>
+        <item name="moreKeysTemplate">@xml/kbd_mini_keyboard_template</item>
         <item name="keyboardTopPadding">@fraction/keyboard_top_padding</item>
         <item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding</item>
         <item name="horizontalGap">@fraction/key_horizontal_gap</item>
         <item name="verticalGap">@fraction/key_bottom_gap</item>
-        <item name="maxMiniKeyboardColumn">@integer/config_max_mini_keyboard_column</item>
+        <item name="maxMoreKeysColumn">@integer/config_max_more_keys_column</item>
     </style>
     <style name="LatinKeyboard">
         <item name="autoCorrectionSpacebarLedEnabled">@bool/config_auto_correction_spacebar_led_enabled
@@ -61,7 +61,7 @@
         <item name="keyPreviewOffset">@dimen/key_preview_offset</item>
         <item name="keyPreviewHeight">@dimen/key_preview_height</item>
         <item name="keyPreviewTextRatio">@fraction/key_preview_text_ratio</item>
-        <item name="popupLayout">@layout/mini_keyboard</item>
+        <item name="moreKeysLayout">@layout/mini_keyboard</item>
         <item name="verticalCorrection">@dimen/keyboard_vertical_correction</item>
         <item name="shadowColor">#BB000000</item>
         <item name="shadowRadius">2.75</item>
@@ -79,6 +79,11 @@
         <item name="android:paddingLeft">@dimen/mini_keyboard_horizontal_edges_padding</item>
         <item name="android:paddingRight">@dimen/mini_keyboard_horizontal_edges_padding</item>
     </style>
+    <style
+        name="SuggestionsPaneViewStyle"
+        parent="MiniKeyboardView"
+    >
+    </style>
     <style name="SuggestionsStripBackgroundStyle">
         <item name="android:background">@drawable/keyboard_suggest_strip</item>
     </style>
@@ -236,6 +241,11 @@
     >
     </style>
     <style
+        name="SuggestionsPaneViewStyle.IceCreamSandwich"
+        parent="MiniKeyboardView.IceCreamSandwich"
+    >
+    </style>
+    <style
         name="CandidateViewStyle.IceCreamSandwich"
         parent="SuggestionsStripBackgroundStyle.IceCreamSandwich"
     >
diff --git a/java/res/values/themes-basic-highcontrast.xml b/java/res/values/themes-basic-highcontrast.xml
index 17c06a2..51bf2f1 100644
--- a/java/res/values/themes-basic-highcontrast.xml
+++ b/java/res/values/themes-basic-highcontrast.xml
@@ -22,6 +22,7 @@
         <item name="miniKeyboardViewStyle">@style/MiniKeyboardView</item>
         <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
         <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
+        <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
         <item name="candidateViewStyle">@style/CandidateViewStyle</item>
diff --git a/java/res/values/themes-basic.xml b/java/res/values/themes-basic.xml
index 23c71bd..7288dba 100644
--- a/java/res/values/themes-basic.xml
+++ b/java/res/values/themes-basic.xml
@@ -22,6 +22,7 @@
         <item name="miniKeyboardViewStyle">@style/MiniKeyboardView</item>
         <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
         <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
+        <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
         <item name="candidateViewStyle">@style/CandidateViewStyle</item>
diff --git a/java/res/values/themes-gingerbread.xml b/java/res/values/themes-gingerbread.xml
index 1e3419f..5b62378 100644
--- a/java/res/values/themes-gingerbread.xml
+++ b/java/res/values/themes-gingerbread.xml
@@ -22,6 +22,7 @@
         <item name="miniKeyboardViewStyle">@style/MiniKeyboardView.Gingerbread</item>
         <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
         <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
+        <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
         <item name="candidateViewStyle">@style/CandidateViewStyle</item>
diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml
index 7fa879c..597d87b 100644
--- a/java/res/values/themes-ics.xml
+++ b/java/res/values/themes-ics.xml
@@ -22,6 +22,7 @@
         <item name="miniKeyboardViewStyle">@style/MiniKeyboardView.IceCreamSandwich</item>
         <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle.IceCreamSandwich</item>
         <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle.IceCreamSandwich</item>
+        <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle.IceCreamSandwich</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.IceCreamSandwich</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle.IceCreamSandwich</item>
         <item name="candidateViewStyle">@style/CandidateViewStyle.IceCreamSandwich</item>
diff --git a/java/res/values/themes-stone-bold.xml b/java/res/values/themes-stone-bold.xml
index fa2ee2d..ff7107d 100644
--- a/java/res/values/themes-stone-bold.xml
+++ b/java/res/values/themes-stone-bold.xml
@@ -22,7 +22,8 @@
         <item name="miniKeyboardViewStyle">@style/MiniKeyboardView.Stone</item>
         <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
         <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
-        <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
+        <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
+            <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
         <item name="candidateViewStyle">@style/CandidateViewStyle</item>
     </style>
diff --git a/java/res/values/themes-stone.xml b/java/res/values/themes-stone.xml
index 494bae6..35390d1 100644
--- a/java/res/values/themes-stone.xml
+++ b/java/res/values/themes-stone.xml
@@ -22,6 +22,7 @@
         <item name="miniKeyboardViewStyle">@style/MiniKeyboardView.Stone</item>
         <item name="miniKeyboardPanelStyle">@style/MiniKeyboardPanelStyle</item>
         <item name="suggestionsStripBackgroundStyle">@style/SuggestionsStripBackgroundStyle</item>
+        <item name="suggestionsPaneViewStyle">@style/SuggestionsPaneViewStyle</item>
         <item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
         <item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
         <item name="candidateViewStyle">@style/CandidateViewStyle</item>
diff --git a/java/res/xml-sw600dp/kbd_key_styles.xml b/java/res/xml-sw600dp/kbd_key_styles.xml
index 43b6623..2c31e27 100644
--- a/java/res/xml-sw600dp/kbd_key_styles.xml
+++ b/java/res/xml-sw600dp/kbd_key_styles.xml
@@ -38,7 +38,7 @@
             <key-style
                 latin:styleName="f2PopupStyle"
                 latin:keyLabelOption="hasPopupHint"
-                latin:popupCharacters="\@icon/3|\@integer/key_settings"
+                latin:moreKeys="\@icon/3|\@integer/key_settings"
                 latin:parentStyle="functionalKeyStyle" />
         </default>
     </switch>
@@ -72,8 +72,8 @@
         latin:keyLabel=":-)"
         latin:keyOutputText=":-) "
         latin:keyLabelOption="hasPopupHint"
-        latin:popupCharacters="@string/alternates_for_smiley"
-        latin:maxMiniKeyboardColumn="5" />
+        latin:moreKeys="@string/more_keys_for_smiley"
+        latin:maxMoreKeysColumn="5" />
     <key-style
         latin:styleName="shortcutKeyStyle"
         latin:code="@integer/key_shortcut"
@@ -117,5 +117,5 @@
         latin:keyLabel="@string/keylabel_for_popular_domain"
         latin:keyLabelOption="fontNormal|hasPopupHint"
         latin:keyOutputText="@string/keylabel_for_popular_domain"
-        latin:popupCharacters="@string/alternates_for_popular_domain" />
+        latin:moreKeys="@string/more_keys_for_popular_domain" />
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_popup_template.xml b/java/res/xml-sw600dp/kbd_mini_keyboard_template.xml
similarity index 90%
rename from java/res/xml-sw600dp/kbd_popup_template.xml
rename to java/res/xml-sw600dp/kbd_mini_keyboard_template.xml
index d976499..9955fe8 100644
--- a/java/res/xml-sw600dp/kbd_popup_template.xml
+++ b/java/res/xml-sw600dp/kbd_mini_keyboard_template.xml
@@ -20,8 +20,6 @@
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="8%p"
-    latin:horizontalGap="@fraction/key_horizontal_gap"
-    latin:verticalGap="0px"
     latin:rowHeight="@dimen/popup_key_height"
     >
 </Keyboard>
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row1.xml b/java/res/xml-sw600dp/kbd_qwerty_row1.xml
index c7dfcc8..07d8e22 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row1.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row1.xml
@@ -26,34 +26,34 @@
     >
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/more_keys_for_p" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-10.0%p"
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row2.xml b/java/res/xml-sw600dp/kbd_qwerty_row2.xml
index 78004fe..52a948f 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row2.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row2.xml
@@ -26,29 +26,29 @@
     >
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a"
+            latin:moreKeys="@string/more_keys_for_a"
             latin:keyXPos="4.5%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyXPos="-14.6%p"
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row3.xml b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
index 456f3c8..4dabf63 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row3.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row3.xml
@@ -29,20 +29,20 @@
             latin:keyWidth="10.0%p" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="m" />
         <include
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row4.xml b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
index 4c978cb..ef02922 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_row4.xml
+++ b/java/res/xml-sw600dp/kbd_qwerty_row4.xml
@@ -47,7 +47,7 @@
                     latin:keyLabel="/"
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="\@"
-                    latin:popupCharacters="\@" />
+                    latin:moreKeys="\@" />
             </default>
         </switch>
         <Key
diff --git a/java/res/xml-sw600dp/kbd_row3_comma_period.xml b/java/res/xml-sw600dp/kbd_row3_comma_period.xml
index 2545316..b844430 100644
--- a/java/res/xml-sw600dp/kbd_row3_comma_period.xml
+++ b/java/res/xml-sw600dp/kbd_row3_comma_period.xml
@@ -35,12 +35,12 @@
                 latin:keyLabel=","
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="!"
-                latin:popupCharacters="!" />
+                latin:moreKeys="!" />
             <Key
                 latin:keyLabel="."
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="\?"
-                latin:popupCharacters="\?" />
+                latin:moreKeys="\?" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_row3_smiley.xml b/java/res/xml-sw600dp/kbd_row3_smiley.xml
index 0ae3ae4..f9b647c 100644
--- a/java/res/xml-sw600dp/kbd_row3_smiley.xml
+++ b/java/res/xml-sw600dp/kbd_row3_smiley.xml
@@ -37,7 +37,7 @@
                 latin:keyLabel="-"
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="_"
-                latin:popupCharacters="_"
+                latin:moreKeys="_"
                 latin:keyXPos="-8.9%p"
                 latin:keyWidth="fillBoth" />
         </case>
@@ -48,7 +48,7 @@
                 latin:keyLabel=":"
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="+"
-                latin:popupCharacters="+"
+                latin:moreKeys="+"
                 latin:keyXPos="-8.9%p"
                 latin:keyWidth="fillBoth" />
         </case>
diff --git a/java/res/xml-sw600dp/kbd_row4_apostrophe_dash.xml b/java/res/xml-sw600dp/kbd_row4_apostrophe_dash.xml
index 50d4d4b..9536e81 100644
--- a/java/res/xml-sw600dp/kbd_row4_apostrophe_dash.xml
+++ b/java/res/xml-sw600dp/kbd_row4_apostrophe_dash.xml
@@ -35,14 +35,14 @@
                 latin:keyLabel="/"
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel=":"
-                latin:popupCharacters=":" />
+                latin:moreKeys=":" />
         </case>
         <default>
             <Key
                 latin:keyLabel="@string/keylabel_for_apostrophe"
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="@string/keyhintlabel_for_apostrophe"
-                latin:popupCharacters="@string/alternates_for_apostrophe" />
+                latin:moreKeys="@string/more_keys_for_apostrophe" />
         </default>
     </switch>
     <switch>
@@ -57,7 +57,7 @@
                 latin:keyLabel="@string/keylabel_for_dash"
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="@string/keyhintlabel_for_dash"
-                latin:popupCharacters="@string/alternates_for_dash" />
+                latin:moreKeys="@string/more_keys_for_dash" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_rows_arabic.xml b/java/res/xml-sw600dp/kbd_rows_arabic.xml
index 4c20f51..275df50 100644
--- a/java/res/xml-sw600dp/kbd_rows_arabic.xml
+++ b/java/res/xml-sw600dp/kbd_rows_arabic.xml
@@ -36,7 +36,7 @@
             latin:keyLabel="ق" />
         <Key
             latin:keyLabel="ف"
-            latin:popupCharacters="ڤ" />
+            latin:moreKeys="ڤ" />
         <Key
             latin:keyLabel="غ" />
         <Key
@@ -45,14 +45,14 @@
              \u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
         <Key
             latin:keyLabel="ه"
-            latin:popupCharacters="\ufeeb|\u0647\u0640" />
+            latin:moreKeys="\ufeeb|\u0647\u0640" />
         <Key
             latin:keyLabel="خ" />
         <Key
             latin:keyLabel="ح" />
         <Key
             latin:keyLabel="ج"
-            latin:popupCharacters="چ" />
+            latin:moreKeys="چ" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-10.0%p"
@@ -70,7 +70,7 @@
             latin:keyLabel="ي" />
         <Key
             latin:keyLabel="ب"
-            latin:popupCharacters="پ" />
+            latin:moreKeys="پ" />
         <!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
              \u0644: ARABIC LETTER LAM
              \u0627: ARABIC LETTER ALEF
@@ -82,13 +82,13 @@
              \u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
         <Key
             latin:keyLabel="ل"
-            latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
+            latin:moreKeys="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
         <!-- \u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
              \u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
              \u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
         <Key
             latin:keyLabel="ا"
-            latin:popupCharacters="\u0623,\u0625,\u0622" />
+            latin:moreKeys="\u0623,\u0625,\u0622" />
         <Key
             latin:keyLabel="ت" />
         <Key
@@ -97,7 +97,7 @@
             latin:keyLabel="م" />
         <Key
             latin:keyLabel="ك"
-            latin:popupCharacters="گ" />
+            latin:moreKeys="گ" />
         <Key
             latin:keyLabel="ط" />
         <Key
@@ -123,7 +123,7 @@
                     latin:keyLabel="-"
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="_"
-                    latin:popupCharacters="_" />
+                    latin:moreKeys="_" />
             </case>
             <case
                 latin:imeAction="actionSearch"
@@ -132,7 +132,7 @@
                     latin:keyLabel=":"
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="+"
-                    latin:popupCharacters="+" />
+                    latin:moreKeys="+" />
             </case>
             <default>
                 <Key
@@ -157,7 +157,7 @@
             latin:keyLabel="و" />
         <Key
             latin:keyLabel="ز"
-            latin:popupCharacters="ژ" />
+            latin:moreKeys="ژ" />
         <Key
             latin:keyLabel="ظ" />
         <Key
diff --git a/java/res/xml-sw600dp/kbd_rows_azerty.xml b/java/res/xml-sw600dp/kbd_rows_azerty.xml
index 406b4e6..8ae7455 100644
--- a/java/res/xml-sw600dp/kbd_rows_azerty.xml
+++ b/java/res/xml-sw600dp/kbd_rows_azerty.xml
@@ -28,34 +28,34 @@
     >
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a" />
+            latin:moreKeys="@string/more_keys_for_a" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/more_keys_for_p" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-10.0%p"
@@ -66,29 +66,29 @@
     >
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q"
+            latin:moreKeys="@string/more_keys_for_q"
             latin:keyXPos="5.0%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyLabel="m" />
         <Key
@@ -104,20 +104,20 @@
             latin:keyWidth="10.0%p" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="\'" />
         <switch>
@@ -134,12 +134,12 @@
                     latin:keyLabel=","
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="!"
-                    latin:popupCharacters="!" />
+                    latin:moreKeys="!" />
                 <Key
                     latin:keyLabel="."
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="\?"
-                    latin:popupCharacters="\?" />
+                    latin:moreKeys="\?" />
             </default>
         </switch>
         <include
diff --git a/java/res/xml-sw600dp/kbd_rows_hebrew.xml b/java/res/xml-sw600dp/kbd_rows_hebrew.xml
index fc2247c..a8adbd3 100644
--- a/java/res/xml-sw600dp/kbd_rows_hebrew.xml
+++ b/java/res/xml-sw600dp/kbd_rows_hebrew.xml
@@ -59,17 +59,17 @@
             latin:keyLabel="ד" />
         <Key
             latin:keyLabel="ג"
-            latin:popupCharacters="ג׳" />
+            latin:moreKeys="ג׳" />
         <Key
             latin:keyLabel="כ" />
         <Key
             latin:keyLabel="ע" />
         <Key
             latin:keyLabel="י"
-            latin:popupCharacters="ײַ" />
+            latin:moreKeys="ײַ" />
         <Key
             latin:keyLabel="ח"
-            latin:popupCharacters="ח׳" />
+            latin:moreKeys="ח׳" />
         <Key
             latin:keyLabel="ל" />
         <Key
@@ -96,7 +96,7 @@
                     latin:keyLabel="-"
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="_"
-                    latin:popupCharacters="_"
+                    latin:moreKeys="_"
                     latin:keyWidth="10.0%p" />
             </case>
             <case
@@ -106,7 +106,7 @@
                     latin:keyLabel=":"
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="+"
-                    latin:popupCharacters="+"
+                    latin:moreKeys="+"
                     latin:keyWidth="10.0%p" />
             </case>
             <default>
@@ -117,7 +117,7 @@
         </switch>
         <Key
             latin:keyLabel="ז"
-            latin:popupCharacters="ז׳" />
+            latin:moreKeys="ז׳" />
         <Key
             latin:keyLabel="ס" />
         <Key
@@ -130,13 +130,13 @@
             latin:keyLabel="מ" />
         <Key
             latin:keyLabel="צ"
-            latin:popupCharacters="צ׳" />
+            latin:moreKeys="צ׳" />
         <Key
             latin:keyLabel="ת"
-            latin:popupCharacters="ת׳" />
+            latin:moreKeys="ת׳" />
         <Key
             latin:keyLabel="ץ"
-            latin:popupCharacters="ץ׳" />
+            latin:moreKeys="ץ׳" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyXPos="-10.400%p"
diff --git a/java/res/xml-sw600dp/kbd_rows_qwertz.xml b/java/res/xml-sw600dp/kbd_rows_qwertz.xml
index 3d177e7..98667e0 100644
--- a/java/res/xml-sw600dp/kbd_rows_qwertz.xml
+++ b/java/res/xml-sw600dp/kbd_rows_qwertz.xml
@@ -28,34 +28,34 @@
     >
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/more_keys_for_p" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-10.0%p"
@@ -71,20 +71,20 @@
             latin:keyWidth="10.0%p" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="m" />
         <switch>
@@ -101,12 +101,12 @@
                     latin:keyLabel=","
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="!"
-                    latin:popupCharacters="!" />
+                    latin:moreKeys="!" />
                 <Key
                     latin:keyLabel="."
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="\?"
-                    latin:popupCharacters="\?" />
+                    latin:moreKeys="\?" />
             </default>
         </switch>
         <include
diff --git a/java/res/xml-sw600dp/kbd_rows_russian.xml b/java/res/xml-sw600dp/kbd_rows_russian.xml
index 2f4b95e..cc9ad3a 100644
--- a/java/res/xml-sw600dp/kbd_rows_russian.xml
+++ b/java/res/xml-sw600dp/kbd_rows_russian.xml
@@ -36,7 +36,7 @@
             latin:keyLabel="к" />
         <Key
             latin:keyLabel="е"
-            latin:popupCharacters="@string/alternates_for_cyrillic_e" />
+            latin:moreKeys="@string/more_keys_for_cyrillic_e" />
         <Key
             latin:keyLabel="н" />
         <Key
@@ -124,12 +124,12 @@
                     latin:keyLabel=","
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="!"
-                    latin:popupCharacters="!" />
+                    latin:moreKeys="!" />
                 <Key
                     latin:keyLabel="."
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="\?"
-                    latin:popupCharacters="\?" />
+                    latin:moreKeys="\?" />
             </default>
         </switch>
         <include
diff --git a/java/res/xml-sw600dp/kbd_rows_scandinavian.xml b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
index 5059137..19fb521 100644
--- a/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
+++ b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
@@ -28,34 +28,34 @@
     >
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/more_keys_for_p" />
         <Key
             latin:keyLabel="å" />
         <Key
@@ -69,34 +69,34 @@
         <Key
             latin:keyLabel="a"
             latin:keyXPos="3.5%p"
-            latin:popupCharacters="@string/alternates_for_a" />
+            latin:moreKeys="@string/more_keys_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+            latin:moreKeys="@string/more_keys_for_scandinavia_row2_10" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
+            latin:moreKeys="@string/more_keys_for_scandinavia_row2_11" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyXPos="-14.6%p"
@@ -112,20 +112,20 @@
             latin:keyWidth="4.35%p" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="m" />
         <include
diff --git a/java/res/xml-sw600dp/kbd_rows_spanish.xml b/java/res/xml-sw600dp/kbd_rows_spanish.xml
index 49243eb..8506af6 100644
--- a/java/res/xml-sw600dp/kbd_rows_spanish.xml
+++ b/java/res/xml-sw600dp/kbd_rows_spanish.xml
@@ -30,29 +30,29 @@
     >
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a"
+            latin:moreKeys="@string/more_keys_for_a"
             latin:keyXPos="5.0%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyLabel="ñ" />
         <Key
diff --git a/java/res/xml-sw600dp/kbd_rows_symbols.xml b/java/res/xml-sw600dp/kbd_rows_symbols.xml
index 420e46c..d3513c9 100644
--- a/java/res/xml-sw600dp/kbd_rows_symbols.xml
+++ b/java/res/xml-sw600dp/kbd_rows_symbols.xml
@@ -30,34 +30,34 @@
     >
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_1"
-            latin:popupCharacters="@string/alternates_for_symbols_1" />
+            latin:moreKeys="@string/more_keys_for_symbols_1" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_2"
-            latin:popupCharacters="@string/alternates_for_symbols_2" />
+            latin:moreKeys="@string/more_keys_for_symbols_2" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_3"
-            latin:popupCharacters="@string/alternates_for_symbols_3" />
+            latin:moreKeys="@string/more_keys_for_symbols_3" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_4"
-            latin:popupCharacters="@string/alternates_for_symbols_4" />
+            latin:moreKeys="@string/more_keys_for_symbols_4" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_5"
-            latin:popupCharacters="@string/alternates_for_symbols_5" />
+            latin:moreKeys="@string/more_keys_for_symbols_5" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_6"
-            latin:popupCharacters="@string/alternates_for_symbols_6" />
+            latin:moreKeys="@string/more_keys_for_symbols_6" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_7"
-            latin:popupCharacters="@string/alternates_for_symbols_7" />
+            latin:moreKeys="@string/more_keys_for_symbols_7" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_8"
-            latin:popupCharacters="@string/alternates_for_symbols_8" />
+            latin:moreKeys="@string/more_keys_for_symbols_8" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_9"
-            latin:popupCharacters="@string/alternates_for_symbols_9" />
+            latin:moreKeys="@string/more_keys_for_symbols_9" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_0"
-            latin:popupCharacters="@string/alternates_for_symbols_0" />
+            latin:moreKeys="@string/more_keys_for_symbols_0" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-10.0%p"
@@ -73,24 +73,24 @@
             latin:keyStyle="currencyKeyStyle" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_percent"
-            latin:popupCharacters="@string/alternates_for_symbols_percent" />
+            latin:moreKeys="@string/more_keys_for_symbols_percent" />
         <Key
             latin:keyLabel="&amp;" />
         <Key
             latin:keyLabel="*"
-            latin:popupCharacters="†,‡,★" />
+            latin:moreKeys="†,‡,★" />
         <Key
             latin:keyLabel="-"
-            latin:popupCharacters="_,–,—" />
+            latin:moreKeys="_,–,—" />
         <Key
             latin:keyLabel="+"
-            latin:popupCharacters="±" />
+            latin:moreKeys="±" />
         <Key
             latin:keyLabel="("
-            latin:popupCharacters="[,{,&lt;" />
+            latin:moreKeys="[,{,&lt;" />
         <Key
             latin:keyLabel=")"
-            latin:popupCharacters="],},&gt;" />
+            latin:moreKeys="],},&gt;" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyXPos="-14.6%p"
@@ -104,20 +104,20 @@
             latin:keyWidth="10.0%p" />
         <Key
             latin:keyLabel="&lt;"
-            latin:popupCharacters="≤,«,‹" />
+            latin:moreKeys="≤,«,‹" />
         <Key
             latin:keyLabel="&gt;"
-            latin:popupCharacters="≥,»,›" />
+            latin:moreKeys="≥,»,›" />
         <Key
             latin:keyLabel="="
-            latin:popupCharacters="≠,≈" />
+            latin:moreKeys="≠,≈" />
         <switch>
             <case
                 latin:mode="url"
             >
                 <Key
                     latin:keyLabel="\'"
-                    latin:popupCharacters="‘,’,‚,‛" />
+                    latin:moreKeys="‘,’,‚,‛" />
             </case>
             <default>
                 <Key
@@ -126,18 +126,18 @@
         </switch>
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_semicolon"
-            latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
+            latin:moreKeys="@string/more_keys_for_symbols_semicolon" />
         <Key
             latin:keyLabel="@string/keylabel_for_comma"
-            latin:popupCharacters="@string/alternates_for_comma" />
+            latin:moreKeys="@string/more_keys_for_comma" />
         <Key
             latin:keyLabel="." />
         <Key
             latin:keyLabel="!"
-            latin:popupCharacters="¡" />
+            latin:moreKeys="¡" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_question"
-            latin:popupCharacters="@string/alternates_for_symbols_question" />
+            latin:moreKeys="@string/more_keys_for_symbols_question" />
         <Key
             latin:keyLabel="/"
             latin:keyWidth="fillRight" />
@@ -157,10 +157,10 @@
             latin:keyXPos="30.750%p"
             latin:keyWidth="39.750%p" />
         <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
-        <!-- latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛" -->
+        <!-- latin:moreKeys="“,”,„,‟,«,»,‘,’,‚,‛" -->
         <Key
             latin:keyLabel="&quot;"
-            latin:popupCharacters="“,”,«,»,‘,’,‚,‛" />
+            latin:moreKeys="“,”,«,»,‘,’,‚,‛" />
         <Key
             latin:keyLabel="_" />
         <Spacer
diff --git a/java/res/xml-sw600dp/kbd_rows_symbols_shift.xml b/java/res/xml-sw600dp/kbd_rows_symbols_shift.xml
index c5143d9..3d62eff 100644
--- a/java/res/xml-sw600dp/kbd_rows_symbols_shift.xml
+++ b/java/res/xml-sw600dp/kbd_rows_symbols_shift.xml
@@ -34,19 +34,19 @@
             latin:keyLabel="|" />
         <Key
             latin:keyLabel="•"
-            latin:popupCharacters="♪,♥,♠,♦,♣" />
+            latin:moreKeys="♪,♥,♠,♦,♣" />
         <Key
             latin:keyLabel="√" />
         <Key
             latin:keyLabel="π"
-            latin:popupCharacters="Π" />
+            latin:moreKeys="Π" />
         <Key
             latin:keyLabel="÷" />
         <Key
             latin:keyLabel="×" />
         <Key
             latin:keyLabel="§"
-            latin:popupCharacters="¶" />
+            latin:moreKeys="¶" />
         <Key
             latin:keyLabel="Δ" />
         <Key
@@ -68,13 +68,13 @@
             latin:keyLabel="¥" />
         <Key
             latin:keyLabel="^"
-            latin:popupCharacters="↑,↓,←,→" />
+            latin:moreKeys="↑,↓,←,→" />
         <Key
             latin:keyLabel="°"
-            latin:popupCharacters="′,″" />
+            latin:moreKeys="′,″" />
         <Key
             latin:keyLabel="±"
-            latin:popupCharacters="∞" />
+            latin:moreKeys="∞" />
         <Key
             latin:keyLabel="{" />
         <Key
diff --git a/java/res/xml-sw768dp/kbd_key_styles.xml b/java/res/xml-sw768dp/kbd_key_styles.xml
index 52ee91a..6570ebc 100644
--- a/java/res/xml-sw768dp/kbd_key_styles.xml
+++ b/java/res/xml-sw768dp/kbd_key_styles.xml
@@ -54,8 +54,8 @@
         latin:keyLabel=":-)"
         latin:keyOutputText=":-) "
         latin:keyLabelOption="hasPopupHint"
-        latin:popupCharacters="@string/alternates_for_smiley"
-        latin:maxMiniKeyboardColumn="5" />
+        latin:moreKeys="@string/more_keys_for_smiley"
+        latin:maxMoreKeysColumn="5" />
     <key-style
         latin:styleName="settingsKeyStyle"
         latin:code="@integer/key_settings"
@@ -103,5 +103,5 @@
         latin:keyLabel="@string/keylabel_for_popular_domain"
         latin:keyLabelOption="fontNormal|hasPopupHint"
         latin:keyOutputText="@string/keylabel_for_popular_domain"
-        latin:popupCharacters="@string/alternates_for_popular_domain" />
+        latin:moreKeys="@string/more_keys_for_popular_domain" />
 </merge>
diff --git a/java/res/xml-sw768dp/kbd_popup_template.xml b/java/res/xml-sw768dp/kbd_mini_keyboard_template.xml
similarity index 93%
rename from java/res/xml-sw768dp/kbd_popup_template.xml
rename to java/res/xml-sw768dp/kbd_mini_keyboard_template.xml
index 7d39d1a..1c15a5e 100644
--- a/java/res/xml-sw768dp/kbd_popup_template.xml
+++ b/java/res/xml-sw768dp/kbd_mini_keyboard_template.xml
@@ -20,8 +20,6 @@
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="5.0%p"
-    latin:horizontalGap="0px"
-    latin:verticalGap="0px"
     latin:rowHeight="@dimen/popup_key_height"
     >
 </Keyboard>
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row1.xml b/java/res/xml-sw768dp/kbd_qwerty_row1.xml
index 0fdb463..14b8bdd 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row1.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row1.xml
@@ -30,34 +30,34 @@
             latin:keyWidth="7.969%p" />
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/more_keys_for_p" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-9.219%p"
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row2.xml b/java/res/xml-sw768dp/kbd_qwerty_row2.xml
index 7f7dd57..2c312a3 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row2.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row2.xml
@@ -30,28 +30,28 @@
             latin:keyWidth="11.172%p"/>
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a" />
+            latin:moreKeys="@string/more_keys_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyXPos="-15.704%p"
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row3.xml b/java/res/xml-sw768dp/kbd_qwerty_row3.xml
index 677235f..f2f137e 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row3.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row3.xml
@@ -29,20 +29,20 @@
             latin:keyWidth="13.829%p"/>
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="m" />
         <include
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row4.xml b/java/res/xml-sw768dp/kbd_qwerty_row4.xml
index 1ff9d81..9346111 100644
--- a/java/res/xml-sw768dp/kbd_qwerty_row4.xml
+++ b/java/res/xml-sw768dp/kbd_qwerty_row4.xml
@@ -59,7 +59,7 @@
                             latin:keyLabel=":"
                             latin:keyLabelOption="hasUppercaseLetter"
                             latin:keyHintLabel="+"
-                            latin:popupCharacters="+" />
+                            latin:moreKeys="+" />
                     </case>
                     <default>
                         <Key
@@ -78,7 +78,7 @@
                             latin:keyLabel="/"
                             latin:keyLabelOption="hasUppercaseLetter"
                             latin:keyHintLabel="\@"
-                            latin:popupCharacters="\@" />
+                            latin:moreKeys="\@" />
                     </default>
                 </switch>
             </default>
diff --git a/java/res/xml-sw768dp/kbd_row3_comma_period.xml b/java/res/xml-sw768dp/kbd_row3_comma_period.xml
index 2545316..b844430 100644
--- a/java/res/xml-sw768dp/kbd_row3_comma_period.xml
+++ b/java/res/xml-sw768dp/kbd_row3_comma_period.xml
@@ -35,12 +35,12 @@
                 latin:keyLabel=","
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="!"
-                latin:popupCharacters="!" />
+                latin:moreKeys="!" />
             <Key
                 latin:keyLabel="."
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="\?"
-                latin:popupCharacters="\?" />
+                latin:moreKeys="\?" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml b/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml
index 50d4d4b..9536e81 100644
--- a/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml
+++ b/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml
@@ -35,14 +35,14 @@
                 latin:keyLabel="/"
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel=":"
-                latin:popupCharacters=":" />
+                latin:moreKeys=":" />
         </case>
         <default>
             <Key
                 latin:keyLabel="@string/keylabel_for_apostrophe"
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="@string/keyhintlabel_for_apostrophe"
-                latin:popupCharacters="@string/alternates_for_apostrophe" />
+                latin:moreKeys="@string/more_keys_for_apostrophe" />
         </default>
     </switch>
     <switch>
@@ -57,7 +57,7 @@
                 latin:keyLabel="@string/keylabel_for_dash"
                 latin:keyLabelOption="hasUppercaseLetter"
                 latin:keyHintLabel="@string/keyhintlabel_for_dash"
-                latin:popupCharacters="@string/alternates_for_dash" />
+                latin:moreKeys="@string/more_keys_for_dash" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml-sw768dp/kbd_rows_arabic.xml b/java/res/xml-sw768dp/kbd_rows_arabic.xml
index 2f10d54..984ba50 100644
--- a/java/res/xml-sw768dp/kbd_rows_arabic.xml
+++ b/java/res/xml-sw768dp/kbd_rows_arabic.xml
@@ -40,7 +40,7 @@
             latin:keyLabel="ق" />
         <Key
             latin:keyLabel="ف"
-            latin:popupCharacters="ڤ" />
+            latin:moreKeys="ڤ" />
         <Key
             latin:keyLabel="غ" />
         <Key
@@ -49,14 +49,14 @@
              \u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
         <Key
             latin:keyLabel="ه"
-            latin:popupCharacters="\ufeeb|\u0647\u0640" />
+            latin:moreKeys="\ufeeb|\u0647\u0640" />
         <Key
             latin:keyLabel="خ" />
         <Key
             latin:keyLabel="ح" />
         <Key
             latin:keyLabel="ج"
-            latin:popupCharacters="چ" />
+            latin:moreKeys="چ" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-11.500%p"
@@ -77,7 +77,7 @@
             latin:keyLabel="ي" />
         <Key
             latin:keyLabel="ب"
-            latin:popupCharacters="پ" />
+            latin:moreKeys="پ" />
         <!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
              \u0644: ARABIC LETTER LAM
              \u0627: ARABIC LETTER ALEF
@@ -89,13 +89,13 @@
              \u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
         <Key
             latin:keyLabel="ل"
-            latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
+            latin:moreKeys="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
         <!-- \u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
              \u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
              \u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
         <Key
             latin:keyLabel="ا"
-            latin:popupCharacters="\u0623,\u0625,\u0622" />
+            latin:moreKeys="\u0623,\u0625,\u0622" />
         <Key
             latin:keyLabel="ت" />
         <Key
@@ -104,7 +104,7 @@
             latin:keyLabel="م" />
         <Key
             latin:keyLabel="ك"
-            latin:popupCharacters="گ" />
+            latin:moreKeys="گ" />
         <Key
             latin:keyLabel="ط" />
         <Key
@@ -134,7 +134,7 @@
             latin:keyLabel="و" />
         <Key
             latin:keyLabel="ز"
-            latin:popupCharacters="ژ" />
+            latin:moreKeys="ژ" />
         <Key
             latin:keyLabel="ظ" />
         <Key
diff --git a/java/res/xml-sw768dp/kbd_rows_azerty.xml b/java/res/xml-sw768dp/kbd_rows_azerty.xml
index 7aec0d1..4659d99 100644
--- a/java/res/xml-sw768dp/kbd_rows_azerty.xml
+++ b/java/res/xml-sw768dp/kbd_rows_azerty.xml
@@ -32,34 +32,34 @@
             latin:keyWidth="7.969%p" />
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a" />
+            latin:moreKeys="@string/more_keys_for_a" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/more_keys_for_p" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-9.219%p"
@@ -74,28 +74,28 @@
             latin:keyWidth="10.167%p" />
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyLabel="m" />
         <Key
@@ -111,25 +111,25 @@
             latin:keyWidth="13.829%p" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="\'"
             latin:keyLabelOption="hasUppercaseLetter"
             latin:keyHintLabel=":"
-            latin:popupCharacters=":" />
+            latin:moreKeys=":" />
         <switch>
             <case
                 latin:mode="email"
@@ -144,12 +144,12 @@
                     latin:keyLabel=","
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="!"
-                    latin:popupCharacters="!" />
+                    latin:moreKeys="!" />
                 <Key
                     latin:keyLabel="."
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="\?"
-                    latin:popupCharacters="\?" />
+                    latin:moreKeys="\?" />
             </default>
         </switch>
         <Key
diff --git a/java/res/xml-sw768dp/kbd_rows_hebrew.xml b/java/res/xml-sw768dp/kbd_rows_hebrew.xml
index bacc6a1..27b39d1 100644
--- a/java/res/xml-sw768dp/kbd_rows_hebrew.xml
+++ b/java/res/xml-sw768dp/kbd_rows_hebrew.xml
@@ -66,17 +66,17 @@
             latin:keyLabel="ד" />
         <Key
             latin:keyLabel="ג"
-            latin:popupCharacters="ג׳" />
+            latin:moreKeys="ג׳" />
         <Key
             latin:keyLabel="כ" />
         <Key
             latin:keyLabel="ע" />
         <Key
             latin:keyLabel="י"
-            latin:popupCharacters="ײַ" />
+            latin:moreKeys="ײַ" />
         <Key
             latin:keyLabel="ח"
-            latin:popupCharacters="ח׳" />
+            latin:moreKeys="ח׳" />
         <Key
             latin:keyLabel="ל" />
         <Key
@@ -89,7 +89,7 @@
     >
         <Key
             latin:keyLabel="ז"
-            latin:popupCharacters="ז׳"
+            latin:moreKeys="ז׳"
             latin:keyXPos="13.829%p" />
         <Key
             latin:keyLabel="ס" />
@@ -103,13 +103,13 @@
             latin:keyLabel="מ" />
         <Key
             latin:keyLabel="צ"
-            latin:popupCharacters="צ׳" />
+            latin:moreKeys="צ׳" />
         <Key
             latin:keyLabel="ת"
-            latin:popupCharacters="ת׳" />
+            latin:moreKeys="ת׳" />
         <Key
             latin:keyLabel="ץ"
-            latin:popupCharacters="ץ׳" />
+            latin:moreKeys="ץ׳" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyXPos="-10.400%p"
diff --git a/java/res/xml-sw768dp/kbd_rows_qwertz.xml b/java/res/xml-sw768dp/kbd_rows_qwertz.xml
index 5556d1f..82e0dd0 100644
--- a/java/res/xml-sw768dp/kbd_rows_qwertz.xml
+++ b/java/res/xml-sw768dp/kbd_rows_qwertz.xml
@@ -32,34 +32,34 @@
             latin:keyWidth="7.969%p" />
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/more_keys_for_p" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-9.219%p"
@@ -75,20 +75,20 @@
             latin:keyWidth="13.829%p" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="m" />
         <switch>
@@ -105,12 +105,12 @@
                     latin:keyLabel=","
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="!"
-                    latin:popupCharacters="!" />
+                    latin:moreKeys="!" />
                 <Key
                     latin:keyLabel="."
                     latin:keyLabelOption="hasUppercaseLetter"
                     latin:keyHintLabel="\?"
-                    latin:popupCharacters="\?" />
+                    latin:moreKeys="\?" />
             </default>
         </switch>
         <Key
diff --git a/java/res/xml-sw768dp/kbd_rows_russian.xml b/java/res/xml-sw768dp/kbd_rows_russian.xml
index 82ceaea..e5f5569 100644
--- a/java/res/xml-sw768dp/kbd_rows_russian.xml
+++ b/java/res/xml-sw768dp/kbd_rows_russian.xml
@@ -39,7 +39,7 @@
             latin:keyLabel="к" />
         <Key
             latin:keyLabel="е"
-            latin:popupCharacters="@string/alternates_for_cyrillic_e" />
+            latin:moreKeys="@string/more_keys_for_cyrillic_e" />
         <Key
             latin:keyLabel="н" />
         <Key
diff --git a/java/res/xml-sw768dp/kbd_rows_scandinavian.xml b/java/res/xml-sw768dp/kbd_rows_scandinavian.xml
index 743c6bd..b9d1680 100644
--- a/java/res/xml-sw768dp/kbd_rows_scandinavian.xml
+++ b/java/res/xml-sw768dp/kbd_rows_scandinavian.xml
@@ -32,34 +32,34 @@
             latin:keyWidth="7.500%p" />
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/more_keys_for_p" />
         <Key
             latin:keyLabel="å" />
         <Key
@@ -76,34 +76,34 @@
             latin:keyWidth="9.375%p" />
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a" />
+            latin:moreKeys="@string/more_keys_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+            latin:moreKeys="@string/more_keys_for_scandinavia_row2_10" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
+            latin:moreKeys="@string/more_keys_for_scandinavia_row2_11" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyXPos="-9.375%p"
@@ -117,20 +117,20 @@
             latin:keyWidth="12.750%p" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="m" />
         <include
diff --git a/java/res/xml-sw768dp/kbd_rows_spanish.xml b/java/res/xml-sw768dp/kbd_rows_spanish.xml
index 510cafb..c737f40 100644
--- a/java/res/xml-sw768dp/kbd_rows_spanish.xml
+++ b/java/res/xml-sw768dp/kbd_rows_spanish.xml
@@ -34,28 +34,28 @@
             latin:keyWidth="10.167%p" />
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a" />
+            latin:moreKeys="@string/more_keys_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyLabel="ñ" />
         <Key
diff --git a/java/res/xml-sw768dp/kbd_rows_symbols.xml b/java/res/xml-sw768dp/kbd_rows_symbols.xml
index 66b9789..fd18a2a 100644
--- a/java/res/xml-sw768dp/kbd_rows_symbols.xml
+++ b/java/res/xml-sw768dp/kbd_rows_symbols.xml
@@ -34,34 +34,34 @@
             latin:keyWidth="7.969%p" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_1"
-            latin:popupCharacters="@string/alternates_for_symbols_1" />
+            latin:moreKeys="@string/more_keys_for_symbols_1" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_2"
-            latin:popupCharacters="@string/alternates_for_symbols_2" />
+            latin:moreKeys="@string/more_keys_for_symbols_2" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_3"
-            latin:popupCharacters="@string/alternates_for_symbols_3" />
+            latin:moreKeys="@string/more_keys_for_symbols_3" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_4"
-            latin:popupCharacters="@string/alternates_for_symbols_4" />
+            latin:moreKeys="@string/more_keys_for_symbols_4" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_5"
-            latin:popupCharacters="@string/alternates_for_symbols_5" />
+            latin:moreKeys="@string/more_keys_for_symbols_5" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_6"
-            latin:popupCharacters="@string/alternates_for_symbols_6" />
+            latin:moreKeys="@string/more_keys_for_symbols_6" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_7"
-            latin:popupCharacters="@string/alternates_for_symbols_7" />
+            latin:moreKeys="@string/more_keys_for_symbols_7" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_8"
-            latin:popupCharacters="@string/alternates_for_symbols_8" />
+            latin:moreKeys="@string/more_keys_for_symbols_8" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_9"
-            latin:popupCharacters="@string/alternates_for_symbols_9" />
+            latin:moreKeys="@string/more_keys_for_symbols_9" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_0"
-            latin:popupCharacters="@string/alternates_for_symbols_0" />
+            latin:moreKeys="@string/more_keys_for_symbols_0" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-9.219%p"
@@ -80,24 +80,24 @@
             latin:keyStyle="currencyKeyStyle" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_percent"
-            latin:popupCharacters="@string/alternates_for_symbols_percent" />
+            latin:moreKeys="@string/more_keys_for_symbols_percent" />
         <Key
             latin:keyLabel="&amp;" />
         <Key
             latin:keyLabel="*"
-            latin:popupCharacters="†,‡,★" />
+            latin:moreKeys="†,‡,★" />
         <Key
             latin:keyLabel="-"
-            latin:popupCharacters="_,–,—" />
+            latin:moreKeys="_,–,—" />
         <Key
             latin:keyLabel="+"
-            latin:popupCharacters="±" />
+            latin:moreKeys="±" />
         <Key
             latin:keyLabel="("
-            latin:popupCharacters="[,{,&lt;" />
+            latin:moreKeys="[,{,&lt;" />
         <Key
             latin:keyLabel=")"
-            latin:popupCharacters="],},&gt;" />
+            latin:moreKeys="],},&gt;" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyXPos="-15.704%p"
@@ -111,20 +111,20 @@
             latin:keyWidth="13.829%p" />
         <Key
             latin:keyLabel="&lt;"
-            latin:popupCharacters="≤,«,‹" />
+            latin:moreKeys="≤,«,‹" />
         <Key
             latin:keyLabel="&gt;"
-            latin:popupCharacters="≥,»,›" />
+            latin:moreKeys="≥,»,›" />
         <Key
             latin:keyLabel="="
-            latin:popupCharacters="≠,≈" />
+            latin:moreKeys="≠,≈" />
         <switch>
             <case
                 latin:mode="url"
             >
                 <Key
                     latin:keyLabel="\'"
-                    latin:popupCharacters="‘,’,‚,‛" />
+                    latin:moreKeys="‘,’,‚,‛" />
             </case>
             <default>
                 <Key
@@ -133,18 +133,18 @@
         </switch>
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_semicolon"
-            latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
+            latin:moreKeys="@string/more_keys_for_symbols_semicolon" />
         <Key
             latin:keyLabel="@string/keylabel_for_comma"
-            latin:popupCharacters="@string/alternates_for_comma" />
+            latin:moreKeys="@string/more_keys_for_comma" />
         <Key
             latin:keyLabel="." />
         <Key
             latin:keyLabel="!"
-            latin:popupCharacters="¡" />
+            latin:moreKeys="¡" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_question"
-            latin:popupCharacters="@string/alternates_for_symbols_question" />
+            latin:moreKeys="@string/more_keys_for_symbols_question" />
         <Key
             latin:keyStyle="toMoreSymbolKeyStyle"
             latin:keyXPos="-13.750%p"
@@ -172,10 +172,10 @@
             latin:keyXPos="31.250%p"
             latin:keyWidth="37.500%p" />
         <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
-        <!-- latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛" -->
+        <!-- latin:moreKeys="“,”,„,‟,«,»,‘,’,‚,‛" -->
         <Key
             latin:keyLabel="&quot;"
-            latin:popupCharacters="“,”,«,»,‘,’,‚,‛" />
+            latin:moreKeys="“,”,«,»,‘,’,‚,‛" />
         <Key
             latin:keyLabel="_" />
         <switch>
diff --git a/java/res/xml-sw768dp/kbd_rows_symbols_shift.xml b/java/res/xml-sw768dp/kbd_rows_symbols_shift.xml
index 82bc4b2..30f72ac 100644
--- a/java/res/xml-sw768dp/kbd_rows_symbols_shift.xml
+++ b/java/res/xml-sw768dp/kbd_rows_symbols_shift.xml
@@ -38,19 +38,19 @@
             latin:keyLabel="|" />
         <Key
             latin:keyLabel="•"
-            latin:popupCharacters="♪,♥,♠,♦,♣" />
+            latin:moreKeys="♪,♥,♠,♦,♣" />
         <Key
             latin:keyLabel="√" />
         <Key
             latin:keyLabel="π"
-            latin:popupCharacters="Π" />
+            latin:moreKeys="Π" />
         <Key
             latin:keyLabel="÷" />
         <Key
             latin:keyLabel="×" />
         <Key
             latin:keyLabel="§"
-            latin:popupCharacters="¶" />
+            latin:moreKeys="¶" />
         <Key
             latin:keyLabel="Δ" />
         <Key
@@ -75,13 +75,13 @@
             latin:keyLabel="¥" />
         <Key
             latin:keyLabel="^"
-            latin:popupCharacters="↑,↓,←,→" />
+            latin:moreKeys="↑,↓,←,→" />
         <Key
             latin:keyLabel="°"
-            latin:popupCharacters="′,″" />
+            latin:moreKeys="′,″" />
         <Key
             latin:keyLabel="±"
-            latin:popupCharacters="∞" />
+            latin:moreKeys="∞" />
         <Key
             latin:keyLabel="{" />
         <Key
diff --git a/java/res/xml/kbd_currency_key_styles.xml b/java/res/xml/kbd_currency_key_styles.xml
index d2c7117..bcdfe56 100644
--- a/java/res/xml/kbd_currency_key_styles.xml
+++ b/java/res/xml/kbd_currency_key_styles.xml
@@ -62,7 +62,7 @@
             <key-style
                 latin:styleName="currencyKeyStyle"
                 latin:keyLabel="€"
-                latin:popupCharacters="@string/alternates_for_currency_euro" />
+                latin:moreKeys="@string/more_keys_for_currency_euro" />
         </case>
         <case
             latin:languageCode="ca|et|lb|mt|sla"
@@ -70,7 +70,7 @@
             <key-style
                 latin:styleName="currencyKeyStyle"
                 latin:keyLabel="€"
-                latin:popupCharacters="@string/alternates_for_currency_euro" />
+                latin:moreKeys="@string/more_keys_for_currency_euro" />
         </case>
         <case
             latin:countryCode="AD|AT|BE|CY|EE|FI|FR|DE|GR|IE|IT|XK|LU|MT|MO|ME|NL|PT|SM|SK|SI|ES|VA"
@@ -78,7 +78,7 @@
             <key-style
                 latin:styleName="currencyKeyStyle"
                 latin:keyLabel="€"
-                latin:popupCharacters="@string/alternates_for_currency_euro" />
+                latin:moreKeys="@string/more_keys_for_currency_euro" />
         </case>
         <case
             latin:languageCode="iw"
@@ -86,7 +86,7 @@
             <key-style
                 latin:styleName="currencyKeyStyle"
                 latin:keyLabel="₪"
-                latin:popupCharacters="@string/alternates_for_currency_general" />
+                latin:moreKeys="@string/more_keys_for_currency_general" />
         </case>
         <!-- United Kingdom -->
         <case
@@ -95,13 +95,13 @@
             <key-style
                 latin:styleName="currencyKeyStyle"
                 latin:keyLabel="£"
-                latin:popupCharacters="@string/alternates_for_currency_pound" />
+                latin:moreKeys="@string/more_keys_for_currency_pound" />
         </case>
         <default>
             <key-style
                 latin:styleName="currencyKeyStyle"
                 latin:keyLabel="$"
-                latin:popupCharacters="@string/alternates_for_currency_dollar" />
+                latin:moreKeys="@string/more_keys_for_currency_dollar" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml
index 86f0bf2..12eab22 100644
--- a/java/res/xml/kbd_key_styles.xml
+++ b/java/res/xml/kbd_key_styles.xml
@@ -33,7 +33,7 @@
             <key-style
                 latin:styleName="f1PopupStyle"
                 latin:keyLabelOption="hasPopupHint"
-                latin:popupCharacters="@string/alternates_for_f1"
+                latin:moreKeys="@string/more_keys_for_f1"
                 latin:parentStyle="functionalKeyStyle" />
         </case>
         <!-- clobberSettingsKey="false -->
@@ -43,7 +43,7 @@
             <key-style
                 latin:styleName="f1PopupStyle"
                 latin:keyLabelOption="hasPopupHint"
-                latin:popupCharacters="@string/alternates_for_f1_settings"
+                latin:moreKeys="@string/more_keys_for_f1_settings"
                 latin:parentStyle="functionalKeyStyle" />
         </case>
         <!-- clobberSettingsKey="false" hasSettingsKey="true" -->
@@ -53,7 +53,7 @@
             <key-style
                 latin:styleName="f1PopupStyle"
                 latin:keyLabelOption="hasPopupHint"
-                latin:popupCharacters="@string/alternates_for_f1_navigate"
+                latin:moreKeys="@string/more_keys_for_f1_navigate"
                 latin:parentStyle="functionalKeyStyle" />
         </case>
         <!-- clobberSettingsKey="false" and hasSettingsKey="true" navigateAction="false" -->
@@ -61,7 +61,7 @@
             <key-style
                 latin:styleName="f1PopupStyle"
                 latin:keyLabelOption="hasPopupHint"
-                latin:popupCharacters="@string/alternates_for_f1"
+                latin:moreKeys="@string/more_keys_for_f1"
                 latin:parentStyle="functionalKeyStyle" />
         </default>
     </switch>
@@ -90,8 +90,8 @@
                 latin:keyLabel=":-)"
                 latin:keyOutputText=":-) "
                 latin:keyLabelOption="hasPopupHint"
-                latin:popupCharacters="@string/alternates_for_smiley"
-                latin:maxMiniKeyboardColumn="5"
+                latin:moreKeys="@string/more_keys_for_smiley"
+                latin:maxMoreKeysColumn="5"
                 latin:parentStyle="functionalKeyStyle" />
         </case>
         <case
@@ -220,7 +220,7 @@
         latin:keyLabel="."
         latin:keyHintLabel="@string/keyhintlabel_for_punctuation"
         latin:keyLabelOption="hasPopupHint"
-        latin:popupCharacters="@string/alternates_for_punctuation"
-        latin:maxMiniKeyboardColumn="@integer/mini_keyboard_column_for_punctuation"
+        latin:moreKeys="@string/more_keys_for_punctuation"
+        latin:maxMoreKeysColumn="@integer/mini_keyboard_column_for_punctuation"
         latin:parentStyle="functionalKeyStyle" />
 </merge>
diff --git a/java/res/xml/kbd_mini_keyboard_template.xml b/java/res/xml/kbd_mini_keyboard_template.xml
index 79db081..d25878b 100644
--- a/java/res/xml/kbd_mini_keyboard_template.xml
+++ b/java/res/xml/kbd_mini_keyboard_template.xml
@@ -20,8 +20,6 @@
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
     latin:keyWidth="10%p"
-    latin:horizontalGap="@fraction/key_horizontal_gap"
-    latin:verticalGap="0px"
     latin:rowHeight="@dimen/popup_key_height"
     >
 </Keyboard>
diff --git a/java/res/xml/kbd_qwerty_row1.xml b/java/res/xml/kbd_qwerty_row1.xml
index daa1382..e8e8d1b 100644
--- a/java/res/xml/kbd_qwerty_row1.xml
+++ b/java/res/xml/kbd_qwerty_row1.xml
@@ -27,43 +27,43 @@
         <Key
             latin:keyLabel="q"
             latin:keyHintLabel="1"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="w"
             latin:keyHintLabel="2"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="e"
             latin:keyHintLabel="3"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
             latin:keyHintLabel="4"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
             latin:keyHintLabel="5"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="y"
             latin:keyHintLabel="6"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="u"
             latin:keyHintLabel="7"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
             latin:keyHintLabel="8"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
             latin:keyHintLabel="9"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
             latin:keyHintLabel="0"
-            latin:popupCharacters="@string/alternates_for_p"
+            latin:moreKeys="@string/more_keys_for_p"
             latin:keyWidth="fillRight" />
     </Row>
 </merge>
diff --git a/java/res/xml/kbd_qwerty_row2.xml b/java/res/xml/kbd_qwerty_row2.xml
index 6e4872e..8986780 100644
--- a/java/res/xml/kbd_qwerty_row2.xml
+++ b/java/res/xml/kbd_qwerty_row2.xml
@@ -26,29 +26,29 @@
     >
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a"
+            latin:moreKeys="@string/more_keys_for_a"
             latin:keyXPos="5%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <!-- Here is 5%p space -->
     </Row>
 </merge>
diff --git a/java/res/xml/kbd_qwerty_row3.xml b/java/res/xml/kbd_qwerty_row3.xml
index 6a20355..c2b45e7 100644
--- a/java/res/xml/kbd_qwerty_row3.xml
+++ b/java/res/xml/kbd_qwerty_row3.xml
@@ -30,20 +30,20 @@
             latin:visualInsetsRight="1%p" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="m" />
         <Key
diff --git a/java/res/xml/kbd_rows_arabic.xml b/java/res/xml/kbd_rows_arabic.xml
index daa2a65..569ac7e 100644
--- a/java/res/xml/kbd_rows_arabic.xml
+++ b/java/res/xml/kbd_rows_arabic.xml
@@ -29,47 +29,47 @@
         <Key
             latin:keyLabel="ض"
             latin:keyHintLabel="1"
-            latin:popupCharacters="1,١" />
+            latin:moreKeys="1,١" />
         <Key
             latin:keyLabel="ص"
             latin:keyHintLabel="2"
-            latin:popupCharacters="2,٢" />
+            latin:moreKeys="2,٢" />
         <Key
             latin:keyLabel="ق"
             latin:keyHintLabel="3"
-            latin:popupCharacters="3,٣" />
+            latin:moreKeys="3,٣" />
         <!-- \u06a4: ARABIC LETTER VEH -->
         <Key
             latin:keyLabel="ف"
             latin:keyHintLabel="4"
-            latin:popupCharacters="4,٤,\u06a4" />
+            latin:moreKeys="4,٤,\u06a4" />
         <Key
             latin:keyLabel="غ"
             latin:keyHintLabel="5"
-            latin:popupCharacters="5,٥" />
+            latin:moreKeys="5,٥" />
         <Key
             latin:keyLabel="ع"
             latin:keyHintLabel="6"
-            latin:popupCharacters="6,٦" />
+            latin:moreKeys="6,٦" />
         <!-- \ufeeb: ARABIC LETTER HEH INITIAL FORM
              \u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
         <Key
             latin:keyLabel="ه"
             latin:keyHintLabel="7"
-            latin:popupCharacters="7,٧,\ufeeb|\u0647\u0640" />
+            latin:moreKeys="7,٧,\ufeeb|\u0647\u0640" />
         <Key
             latin:keyLabel="خ"
             latin:keyHintLabel="8"
-            latin:popupCharacters="8,٨" />
+            latin:moreKeys="8,٨" />
         <Key
             latin:keyLabel="ح"
             latin:keyHintLabel="9"
-            latin:popupCharacters="9,٩" />
+            latin:moreKeys="9,٩" />
         <!-- \u0686: ARABIC LETTER TCHEH -->
         <Key
             latin:keyLabel="ج"
             latin:keyHintLabel="0"
-            latin:popupCharacters="0,٠,\u0686"
+            latin:moreKeys="0,٠,\u0686"
             latin:keyWidth="fillRight" />
     </Row>
     <Row
@@ -83,10 +83,10 @@
              \u0649: ARABIC LETTER ALEF MAKSURA -->
         <Key
             latin:keyLabel="ي"
-            latin:popupCharacters="\u0626,\u0649" />
+            latin:moreKeys="\u0626,\u0649" />
         <Key
             latin:keyLabel="ب"
-            latin:popupCharacters="پ" />
+            latin:moreKeys="پ" />
         <!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
              \u0644: ARABIC LETTER LAM
              \u0627: ARABIC LETTER ALEF
@@ -98,24 +98,24 @@
              \u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
         <Key
             latin:keyLabel="ل"
-            latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
+            latin:moreKeys="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
         <!-- \u0621: ARABIC LETTER HAMZA
              \u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
              \u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
              \u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
         <Key
             latin:keyLabel="ا"
-            latin:popupCharacters="\u0621,\u0623,\u0625,\u0622" />
+            latin:moreKeys="\u0621,\u0623,\u0625,\u0622" />
         <Key
             latin:keyLabel="ت"
-            latin:popupCharacters="ث" />
+            latin:moreKeys="ث" />
         <Key
             latin:keyLabel="ن" />
         <Key
             latin:keyLabel="م" />
         <Key
             latin:keyLabel="ك"
-            latin:popupCharacters="گ"
+            latin:moreKeys="گ"
             latin:keyWidth="fillRight" />
     </Row>
     <Row
@@ -132,14 +132,14 @@
             latin:keyLabel="د" />
         <Key
             latin:keyLabel="ز"
-            latin:popupCharacters="ژ" />
+            latin:moreKeys="ژ" />
         <Key
             latin:keyLabel="ر" />
         <Key
             latin:keyLabel="ة" />
         <Key
             latin:keyLabel="و"
-            latin:popupCharacters="ؤ" />
+            latin:moreKeys="ؤ" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="fillRight"
diff --git a/java/res/xml/kbd_rows_azerty.xml b/java/res/xml/kbd_rows_azerty.xml
index dbf25eb..54fe546 100644
--- a/java/res/xml/kbd_rows_azerty.xml
+++ b/java/res/xml/kbd_rows_azerty.xml
@@ -29,43 +29,43 @@
         <Key
             latin:keyLabel="a"
             latin:keyHintLabel="1"
-            latin:popupCharacters="@string/alternates_for_a" />
+            latin:moreKeys="@string/more_keys_for_a" />
         <Key
             latin:keyLabel="z"
             latin:keyHintLabel="2"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="e"
             latin:keyHintLabel="3"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
             latin:keyHintLabel="4"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
             latin:keyHintLabel="5"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="y"
             latin:keyHintLabel="6"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="u"
             latin:keyHintLabel="7"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
             latin:keyHintLabel="8"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
             latin:keyHintLabel="9"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
             latin:keyHintLabel="0"
-            latin:popupCharacters="@string/alternates_for_p"
+            latin:moreKeys="@string/more_keys_for_p"
             latin:keyWidth="fillRight" />
     </Row>
     <Row
@@ -73,28 +73,28 @@
     >
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyLabel="m"
             latin:keyWidth="fillRight" />
@@ -108,24 +108,24 @@
             latin:visualInsetsRight="1%p" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
 
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="\'"
-            latin:popupCharacters="‘,’,‚,‛" />
+            latin:moreKeys="‘,’,‚,‛" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="fillRight"
diff --git a/java/res/xml/kbd_rows_hebrew.xml b/java/res/xml/kbd_rows_hebrew.xml
index 1ec0768..6be8174 100644
--- a/java/res/xml/kbd_rows_hebrew.xml
+++ b/java/res/xml/kbd_rows_hebrew.xml
@@ -57,17 +57,17 @@
             latin:keyLabel="ד" />
         <Key
             latin:keyLabel="ג"
-            latin:popupCharacters="ג׳" />
+            latin:moreKeys="ג׳" />
         <Key
             latin:keyLabel="כ" />
         <Key
             latin:keyLabel="ע" />
         <Key
             latin:keyLabel="י"
-            latin:popupCharacters="ײַ" />
+            latin:moreKeys="ײַ" />
         <Key
             latin:keyLabel="ח"
-            latin:popupCharacters="ח׳" />
+            latin:moreKeys="ח׳" />
         <Key
             latin:keyLabel="ל" />
         <Key
@@ -81,7 +81,7 @@
     >
         <Key
             latin:keyLabel="ז"
-            latin:popupCharacters="ז׳"
+            latin:moreKeys="ז׳"
             latin:keyXPos="5%p" />
         <Key
             latin:keyLabel="ס" />
@@ -95,13 +95,13 @@
             latin:keyLabel="מ" />
         <Key
             latin:keyLabel="צ"
-            latin:popupCharacters="צ׳" />
+            latin:moreKeys="צ׳" />
         <Key
             latin:keyLabel="ת"
-            latin:popupCharacters="ת׳" />
+            latin:moreKeys="ת׳" />
         <Key
             latin:keyLabel="ץ"
-            latin:popupCharacters="ץ׳" />
+            latin:moreKeys="ץ׳" />
         <!-- Here is 5%p space -->
     </Row>
     <include
diff --git a/java/res/xml/kbd_rows_qwertz.xml b/java/res/xml/kbd_rows_qwertz.xml
index f948921..71bb601 100644
--- a/java/res/xml/kbd_rows_qwertz.xml
+++ b/java/res/xml/kbd_rows_qwertz.xml
@@ -29,43 +29,43 @@
         <Key
             latin:keyLabel="q"
             latin:keyHintLabel="1"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/more_keys_for_q" />
         <Key
             latin:keyLabel="w"
             latin:keyHintLabel="2"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="e"
             latin:keyHintLabel="3"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
             latin:keyHintLabel="4"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
             latin:keyHintLabel="5"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="z"
             latin:keyHintLabel="6"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/more_keys_for_z" />
         <Key
             latin:keyLabel="u"
             latin:keyHintLabel="7"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
             latin:keyHintLabel="8"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
             latin:keyHintLabel="9"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
             latin:keyHintLabel="0"
-            latin:popupCharacters="@string/alternates_for_p"
+            latin:moreKeys="@string/more_keys_for_p"
             latin:keyWidth="fillRight" />
     </Row>
     <include
@@ -79,20 +79,20 @@
             latin:visualInsetsRight="1%p" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/more_keys_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/more_keys_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/more_keys_for_n" />
         <Key
             latin:keyLabel="m" />
         <Key
diff --git a/java/res/xml/kbd_rows_russian.xml b/java/res/xml/kbd_rows_russian.xml
index 0c7a237..d6075d2 100644
--- a/java/res/xml/kbd_rows_russian.xml
+++ b/java/res/xml/kbd_rows_russian.xml
@@ -29,47 +29,47 @@
         <Key
             latin:keyLabel="й"
             latin:keyHintLabel="1"
-            latin:popupCharacters="1"
+            latin:moreKeys="1"
             latin:keyWidth="8.75%p" />
         <Key
             latin:keyLabel="ц"
             latin:keyHintLabel="2"
-            latin:popupCharacters="2" />
+            latin:moreKeys="2" />
         <Key
             latin:keyLabel="у"
             latin:keyHintLabel="3"
-            latin:popupCharacters="3" />
+            latin:moreKeys="3" />
         <Key
             latin:keyLabel="к"
             latin:keyHintLabel="4"
-            latin:popupCharacters="4" />
+            latin:moreKeys="4" />
         <Key
             latin:keyLabel="е"
             latin:keyHintLabel="5"
-            latin:popupCharacters="@string/alternates_for_cyrillic_e" />
+            latin:moreKeys="@string/more_keys_for_cyrillic_e" />
         <Key
             latin:keyLabel="н"
             latin:keyHintLabel="6"
-            latin:popupCharacters="6" />
+            latin:moreKeys="6" />
         <Key
             latin:keyLabel="г"
             latin:keyHintLabel="7"
-            latin:popupCharacters="7" />
+            latin:moreKeys="7" />
         <Key
             latin:keyLabel="ш"
             latin:keyHintLabel="8"
-            latin:popupCharacters="8" />
+            latin:moreKeys="8" />
         <Key
             latin:keyLabel="щ"
             latin:keyHintLabel="9"
-            latin:popupCharacters="9" />
+            latin:moreKeys="9" />
         <Key
             latin:keyLabel="з"
             latin:keyHintLabel="0"
-            latin:popupCharacters="0" />
+            latin:moreKeys="0" />
         <Key
             latin:keyLabel="х"
-            latin:popupCharacters="@string/alternates_for_cyrillic_ha"
+            latin:moreKeys="@string/more_keys_for_cyrillic_ha"
             latin:keyWidth="fillRight" />
     </Row>
     <Row
@@ -120,7 +120,7 @@
             latin:keyLabel="т" />
         <Key
             latin:keyLabel="ь"
-            latin:popupCharacters="@string/alternates_for_cyrillic_soft_sign" />
+            latin:moreKeys="@string/more_keys_for_cyrillic_soft_sign" />
         <Key
             latin:keyLabel="б" />
         <Key
diff --git a/java/res/xml/kbd_rows_scandinavian.xml b/java/res/xml/kbd_rows_scandinavian.xml
index 7e8902e..6ef54eb 100644
--- a/java/res/xml/kbd_rows_scandinavian.xml
+++ b/java/res/xml/kbd_rows_scandinavian.xml
@@ -29,44 +29,44 @@
         <Key
             latin:keyLabel="q"
             latin:keyHintLabel="1"
-            latin:popupCharacters="@string/alternates_for_q"
+            latin:moreKeys="@string/more_keys_for_q"
             latin:keyWidth="8.75%p" />
         <Key
             latin:keyLabel="w"
             latin:keyHintLabel="2"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/more_keys_for_w" />
         <Key
             latin:keyLabel="e"
             latin:keyHintLabel="3"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/more_keys_for_e" />
         <Key
             latin:keyLabel="r"
             latin:keyHintLabel="4"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/more_keys_for_r" />
         <Key
             latin:keyLabel="t"
             latin:keyHintLabel="5"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/more_keys_for_t" />
         <Key
             latin:keyLabel="y"
             latin:keyHintLabel="6"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/more_keys_for_y" />
         <Key
             latin:keyLabel="u"
             latin:keyHintLabel="7"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/more_keys_for_u" />
         <Key
             latin:keyLabel="i"
             latin:keyHintLabel="8"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/more_keys_for_i" />
         <Key
             latin:keyLabel="o"
             latin:keyHintLabel="9"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/more_keys_for_o" />
         <Key
             latin:keyLabel="p"
             latin:keyHintLabel="0"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/more_keys_for_p" />
         <Key
             latin:keyLabel="å"
             latin:keyWidth="fillRight" />
@@ -76,35 +76,35 @@
     >
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a"
+            latin:moreKeys="@string/more_keys_for_a"
             latin:keyWidth="8.75%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+            latin:moreKeys="@string/more_keys_for_scandinavia_row2_10" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_11"
+            latin:moreKeys="@string/more_keys_for_scandinavia_row2_11"
             latin:keyWidth="fillRight" />
     </Row>
     <include
diff --git a/java/res/xml/kbd_rows_serbian.xml b/java/res/xml/kbd_rows_serbian.xml
index 73c807f..c911ae8 100644
--- a/java/res/xml/kbd_rows_serbian.xml
+++ b/java/res/xml/kbd_rows_serbian.xml
@@ -29,43 +29,43 @@
         <Key
             latin:keyLabel="љ"
             latin:keyHintLabel="1"
-            latin:popupCharacters="1" />
+            latin:moreKeys="1" />
         <Key
             latin:keyLabel="њ"
             latin:keyHintLabel="2"
-            latin:popupCharacters="2" />
+            latin:moreKeys="2" />
         <Key
             latin:keyLabel="е"
             latin:keyHintLabel="3"
-            latin:popupCharacters="3" />
+            latin:moreKeys="3" />
         <Key
             latin:keyLabel="р"
             latin:keyHintLabel="4"
-            latin:popupCharacters="4" />
+            latin:moreKeys="4" />
         <Key
             latin:keyLabel="т"
             latin:keyHintLabel="5"
-            latin:popupCharacters="5" />
+            latin:moreKeys="5" />
         <Key
             latin:keyLabel="з"
             latin:keyHintLabel="6"
-            latin:popupCharacters="6" />
+            latin:moreKeys="6" />
         <Key
             latin:keyLabel="у"
             latin:keyHintLabel="7"
-            latin:popupCharacters="7" />
+            latin:moreKeys="7" />
         <Key
             latin:keyLabel="и"
             latin:keyHintLabel="8"
-            latin:popupCharacters="8" />
+            latin:moreKeys="8" />
         <Key
             latin:keyLabel="о"
             latin:keyHintLabel="9"
-            latin:popupCharacters="9" />
+            latin:moreKeys="9" />
         <Key
             latin:keyLabel="п"
             latin:keyHintLabel="0"
-            latin:popupCharacters="0" />
+            latin:moreKeys="0" />
         <Key
             latin:keyLabel="ш"
             latin:keyWidth="fillRight" />
diff --git a/java/res/xml/kbd_rows_spanish.xml b/java/res/xml/kbd_rows_spanish.xml
index 6d00718..03d631e 100644
--- a/java/res/xml/kbd_rows_spanish.xml
+++ b/java/res/xml/kbd_rows_spanish.xml
@@ -30,28 +30,28 @@
     >
         <Key
             latin:keyLabel="a"
-            latin:popupCharacters="@string/alternates_for_a" />
+            latin:moreKeys="@string/more_keys_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/more_keys_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/more_keys_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/more_keys_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/more_keys_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/more_keys_for_l" />
         <Key
             latin:keyLabel="ñ" />
     </Row>
diff --git a/java/res/xml/kbd_rows_symbols.xml b/java/res/xml/kbd_rows_symbols.xml
index 5880d52..e0ede8b 100644
--- a/java/res/xml/kbd_rows_symbols.xml
+++ b/java/res/xml/kbd_rows_symbols.xml
@@ -30,34 +30,34 @@
     >
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_1"
-            latin:popupCharacters="@string/alternates_for_symbols_1" />
+            latin:moreKeys="@string/more_keys_for_symbols_1" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_2"
-            latin:popupCharacters="@string/alternates_for_symbols_2" />
+            latin:moreKeys="@string/more_keys_for_symbols_2" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_3"
-            latin:popupCharacters="@string/alternates_for_symbols_3" />
+            latin:moreKeys="@string/more_keys_for_symbols_3" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_4"
-            latin:popupCharacters="@string/alternates_for_symbols_4" />
+            latin:moreKeys="@string/more_keys_for_symbols_4" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_5"
-            latin:popupCharacters="@string/alternates_for_symbols_5" />
+            latin:moreKeys="@string/more_keys_for_symbols_5" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_6"
-            latin:popupCharacters="@string/alternates_for_symbols_6" />
+            latin:moreKeys="@string/more_keys_for_symbols_6" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_7"
-            latin:popupCharacters="@string/alternates_for_symbols_7" />
+            latin:moreKeys="@string/more_keys_for_symbols_7" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_8"
-            latin:popupCharacters="@string/alternates_for_symbols_8" />
+            latin:moreKeys="@string/more_keys_for_symbols_8" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_9"
-            latin:popupCharacters="@string/alternates_for_symbols_9" />
+            latin:moreKeys="@string/more_keys_for_symbols_9" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_0"
-            latin:popupCharacters="@string/alternates_for_symbols_0"
+            latin:moreKeys="@string/more_keys_for_symbols_0"
             latin:keyWidth="fillRight" />
     </Row>
     <Row
@@ -71,24 +71,24 @@
             latin:keyStyle="currencyKeyStyle" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_percent"
-            latin:popupCharacters="@string/alternates_for_symbols_percent" />
+            latin:moreKeys="@string/more_keys_for_symbols_percent" />
         <Key
             latin:keyLabel="&amp;" />
         <Key
             latin:keyLabel="*"
-            latin:popupCharacters="†,‡,★" />
+            latin:moreKeys="†,‡,★" />
         <Key
             latin:keyLabel="-"
-            latin:popupCharacters="_,–,—" />
+            latin:moreKeys="_,–,—" />
         <Key
             latin:keyLabel="+"
-            latin:popupCharacters="±" />
+            latin:moreKeys="±" />
         <Key
             latin:keyLabel="("
-            latin:popupCharacters="[,{,&lt;" />
+            latin:moreKeys="[,{,&lt;" />
         <Key
             latin:keyLabel=")"
-            latin:popupCharacters="],},&gt;"
+            latin:moreKeys="],},&gt;"
             latin:keyWidth="fillRight" />
     </Row>
     <Row
@@ -100,26 +100,26 @@
             latin:visualInsetsRight="1%p" />
         <Key
             latin:keyLabel="!"
-            latin:popupCharacters="¡" />
+            latin:moreKeys="¡" />
         <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. -->
-        <!-- latin:popupCharacters="“,”,„,‟,«,»" -->
+        <!-- latin:moreKeys="“,”,„,‟,«,»" -->
         <Key
             latin:keyLabel="&quot;"
-            latin:popupCharacters="“,”,«,»"
-            latin:maxMiniKeyboardColumn="6" />
+            latin:moreKeys="“,”,«,»"
+            latin:maxMoreKeysColumn="6" />
         <Key
             latin:keyLabel="\'"
-            latin:popupCharacters="‘,’,‚,‛" />
+            latin:moreKeys="‘,’,‚,‛" />
         <Key
             latin:keyLabel=":" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_semicolon"
-            latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
+            latin:moreKeys="@string/more_keys_for_symbols_semicolon" />
         <Key
             latin:keyLabel="/" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_question"
-            latin:popupCharacters="@string/alternates_for_symbols_question" />
+            latin:moreKeys="@string/more_keys_for_symbols_question" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="fillRight"
diff --git a/java/res/xml/kbd_rows_symbols_shift.xml b/java/res/xml/kbd_rows_symbols_shift.xml
index ff272f1..66c14fe 100644
--- a/java/res/xml/kbd_rows_symbols_shift.xml
+++ b/java/res/xml/kbd_rows_symbols_shift.xml
@@ -34,12 +34,12 @@
             latin:keyLabel="|" />
         <Key
             latin:keyLabel="•"
-            latin:popupCharacters="♪,♥,♠,♦,♣" />
+            latin:moreKeys="♪,♥,♠,♦,♣" />
         <Key
             latin:keyLabel="√" />
         <Key
             latin:keyLabel="π"
-            latin:popupCharacters="Π" />
+            latin:moreKeys="Π" />
         <Key
             latin:keyLabel="÷" />
         <Key
@@ -63,15 +63,15 @@
             latin:keyLabel="€" />
         <Key
             latin:keyLabel="°"
-            latin:popupCharacters="′,″" />
+            latin:moreKeys="′,″" />
         <Key
             latin:keyLabel="^"
-            latin:popupCharacters="↑,↓,←,→" />
+            latin:moreKeys="↑,↓,←,→" />
         <Key
             latin:keyLabel="_" />
         <Key
             latin:keyLabel="="
-            latin:popupCharacters="≠,≈,∞" />
+            latin:moreKeys="≠,≈,∞" />
         <Key
             latin:keyLabel="[" />
         <Key
@@ -93,15 +93,15 @@
             latin:keyLabel="©" />
         <Key
             latin:keyLabel="¶"
-            latin:popupCharacters="§" />
+            latin:moreKeys="§" />
         <Key
             latin:keyLabel="\\" />
         <Key
             latin:keyLabel="&lt;"
-            latin:popupCharacters="≤,«,‹" />
+            latin:moreKeys="≤,«,‹" />
         <Key
             latin:keyLabel="&gt;"
-            latin:popupCharacters="≥,»,›" />
+            latin:moreKeys="≥,»,›" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="fillRight"
diff --git a/java/res/xml-sw600dp/kbd_popup_template.xml b/java/res/xml/kbd_suggestions_pane_template.xml
similarity index 82%
copy from java/res/xml-sw600dp/kbd_popup_template.xml
copy to java/res/xml/kbd_suggestions_pane_template.xml
index d976499..21316e6 100644
--- a/java/res/xml-sw600dp/kbd_popup_template.xml
+++ b/java/res/xml/kbd_suggestions_pane_template.xml
@@ -19,9 +19,7 @@
 -->
 
 <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8%p"
-    latin:horizontalGap="@fraction/key_horizontal_gap"
-    latin:verticalGap="0px"
-    latin:rowHeight="@dimen/popup_key_height"
+    latin:keyWidth="10%p"
+    latin:rowHeight="@dimen/more_suggestions_row_height"
     >
 </Keyboard>
diff --git a/java/res/xml/kbd_symbols_shift_row4.xml b/java/res/xml/kbd_symbols_shift_row4.xml
index bcab19b..c8d5293 100644
--- a/java/res/xml/kbd_symbols_shift_row4.xml
+++ b/java/res/xml/kbd_symbols_shift_row4.xml
@@ -34,7 +34,7 @@
                     latin:keyWidth="15%p" />
                 <Key
                     latin:keyLabel="„"
-                    latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛"
+                    latin:moreKeys="“,”,„,‟,«,»,‘,’,‚,‛"
                     latin:keyStyle="functionalKeyStyle" />
                 <Key
                     latin:keyStyle="spaceKeyStyle"
@@ -55,7 +55,7 @@
                     latin:keyboardLayout="@xml/kbd_settings_or_tab" />
                 <Key
                     latin:keyLabel="„"
-                    latin:popupCharacters="“,”,„,‟,«,»,‘,’,‚,‛"
+                    latin:moreKeys="“,”,„,‟,«,»,‘,’,‚,‛"
                     latin:keyWidth="9.2%p"
                     latin:keyStyle="functionalKeyStyle" />
                 <Key
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index 452294e..f2f3178 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -20,7 +20,7 @@
 <!-- The attributes in this XML file provide configuration information -->
 <!-- for the Input Method Manager. -->
 
-<!-- Keyboard: en_US, en_GB, ar, cs, da, de, de_ZZ, es, es_US, fi, fr, fr_CA, fr_CH, hr, hu, it, iw, nb, nl, pl, pt, ru, sr, sv, tr -->
+<!-- Keyboard: en_US, en_GB, ar, cs, da, de, de(QWERTY), es, es_US, fi, fr, fr_CA, fr_CH, hr, hu, it, iw, nb, nl, pl, pt, ru, sr, sv, tr -->
 <!-- TODO: use <lang>_keyboard icon instead of a common keyboard icon. -->
 <!-- If IME doesn't have an applicable subtype, the first subtype will be used as a default
      subtype.-->
@@ -64,9 +64,9 @@
     />
     <subtype android:icon="@drawable/ic_subtype_keyboard"
             android:label="@string/subtype_de_qwerty"
-            android:imeSubtypeLocale="de_ZZ"
+            android:imeSubtypeLocale="de"
             android:imeSubtypeMode="keyboard"
-            android:imeSubtypeExtraValue="AsciiCapable"
+            android:imeSubtypeExtraValue="AsciiCapable,KeyboardLocale=de_ZZ"
     />
     <subtype android:icon="@drawable/ic_subtype_keyboard"
             android:label="@string/subtype_generic"
diff --git a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java
index 7aab66d..8e2ee0f 100644
--- a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java
+++ b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java
@@ -73,16 +73,17 @@
     // This call is required to let LatinIME itself know a subtype changed
     // event when the API level is 10 or previous.
     @SuppressWarnings("unused")
-    public void notifyOnCurrentInputMethodSubtypeChanged(InputMethodSubtypeCompatWrapper subtype) {
+    public void notifyOnCurrentInputMethodSubtypeChanged(
+            InputMethodSubtypeCompatWrapper newSubtype) {
         // Do nothing when the API level is 11 or later
         // and FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES is not true
         if (CAN_HANDLE_ON_CURRENT_INPUT_METHOD_SUBTYPE_CHANGED && !InputMethodManagerCompatWrapper.
                 FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES) {
             return;
         }
-        if (subtype == null) {
-            subtype = mImm.getCurrentInputMethodSubtype();
-        }
+        final InputMethodSubtypeCompatWrapper subtype = (newSubtype == null)
+                ? mImm.getCurrentInputMethodSubtype()
+                : newSubtype;
         if (subtype != null) {
             if (!InputMethodManagerCompatWrapper.FORCE_ENABLE_VOICE_EVEN_WITH_NO_VOICE_SUBTYPES
                     && !subtype.isDummy()) return;
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 8baf3f7..b919bcf 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -30,7 +30,7 @@
 import com.android.inputmethod.keyboard.internal.KeyboardBuilder.ParseException;
 import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
 import com.android.inputmethod.keyboard.internal.KeyboardParams;
-import com.android.inputmethod.keyboard.internal.PopupCharactersParser;
+import com.android.inputmethod.keyboard.internal.MoreKeySpecParser;
 import com.android.inputmethod.keyboard.internal.Row;
 import com.android.inputmethod.latin.R;
 
@@ -90,10 +90,10 @@
     public final int mY;
     /** Text to output when pressed. This can be multiple characters, like ".com" */
     public final CharSequence mOutputText;
-    /** Popup characters */
-    public final CharSequence[] mPopupCharacters;
-    /** Popup keyboard maximum column number */
-    public final int mMaxMiniKeyboardColumn;
+    /** More keys */
+    public final CharSequence[] mMoreKeys;
+    /** More keys maximum column number */
+    public final int mMaxMoreKeysColumn;
 
     /**
      * Flags that specify the anchoring to edges of the keyboard for detecting touch events
@@ -192,22 +192,22 @@
         }
     }
 
-    private static int getCode(Resources res, KeyboardParams params, String popupSpec) {
+    private static int getCode(Resources res, KeyboardParams params, String moreKeySpec) {
         return getRtlParenthesisCode(
-                PopupCharactersParser.getCode(res, popupSpec), params.mIsRtlKeyboard);
+                MoreKeySpecParser.getCode(res, moreKeySpec), params.mIsRtlKeyboard);
     }
 
-    private static Drawable getIcon(KeyboardParams params, String popupSpec) {
-        return params.mIconsSet.getIcon(PopupCharactersParser.getIconId(popupSpec));
+    private static Drawable getIcon(KeyboardParams params, String moreKeySpec) {
+        return params.mIconsSet.getIcon(MoreKeySpecParser.getIconId(moreKeySpec));
     }
 
     /**
-     * This constructor is being used only for key in popup mini keyboard.
+     * This constructor is being used only for key in more keys keyboard.
      */
-    public Key(Resources res, KeyboardParams params, String popupSpec,
+    public Key(Resources res, KeyboardParams params, String moreKeySpec,
             int x, int y, int width, int height, int edgeFlags) {
-        this(params, PopupCharactersParser.getLabel(popupSpec), null, getIcon(params, popupSpec),
-                getCode(res, params, popupSpec), PopupCharactersParser.getOutputText(popupSpec),
+        this(params, MoreKeySpecParser.getLabel(moreKeySpec), null, getIcon(params, moreKeySpec),
+                getCode(res, params, moreKeySpec), MoreKeySpecParser.getOutputText(moreKeySpec),
                 x, y, width, height, edgeFlags);
     }
 
@@ -227,8 +227,8 @@
         mFunctional = false;
         mSticky = false;
         mRepeatable = false;
-        mPopupCharacters = null;
-        mMaxMiniKeyboardColumn = 0;
+        mMoreKeys = null;
+        mMaxMoreKeysColumn = 0;
         mLabel = label;
         mOutputText = outputText;
         mCode = code;
@@ -312,19 +312,19 @@
             mY = y;
             mWidth = keyWidth - mHorizontalGap;
 
-            final CharSequence[] popupCharacters = style.getTextArray(
-                    keyAttr, R.styleable.Keyboard_Key_popupCharacters);
-            // In Arabic symbol layouts, we'd like to keep digits in popup characters regardless of
-            // config_digit_popup_characters_enabled.
+            final CharSequence[] moreKeys = style.getTextArray(
+                    keyAttr, R.styleable.Keyboard_Key_moreKeys);
+            // In Arabic symbol layouts, we'd like to keep digits in more keys regardless of
+            // config_digit_more_keys_enabled.
             if (params.mId.isAlphabetKeyboard() && !res.getBoolean(
-                    R.bool.config_digit_popup_characters_enabled)) {
-                mPopupCharacters = PopupCharactersParser.filterOut(
-                        res, popupCharacters, PopupCharactersParser.DIGIT_FILTER);
+                    R.bool.config_digit_more_keys_enabled)) {
+                mMoreKeys = MoreKeySpecParser.filterOut(
+                        res, moreKeys, MoreKeySpecParser.DIGIT_FILTER);
             } else {
-                mPopupCharacters = popupCharacters;
+                mMoreKeys = moreKeys;
             }
-            mMaxMiniKeyboardColumn = style.getInt(keyboardAttr,
-                    R.styleable.Keyboard_Key_maxMiniKeyboardColumn,
+            mMaxMoreKeysColumn = style.getInt(keyboardAttr,
+                    R.styleable.Keyboard_Key_maxMoreKeysColumn,
                     params.mMaxMiniKeyboardColumn);
 
             mRepeatable = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable, false);
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index 5dabb93..3a8a1d4 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -101,8 +101,8 @@
 
     public final int mMostCommonKeyWidth;
 
-    /** Popup keyboard template */
-    public final int mPopupTemplateId;
+    /** More keys keyboard template */
+    public final int mMoreKeysTemplate;
 
     /** Maximum column for mini keyboard */
     public final int mMaxMiniKeyboardColumn;
@@ -130,7 +130,7 @@
         mWidth = params.mWidth;
         mMostCommonKeyWidth = params.mMostCommonKeyWidth;
         mIsRtlKeyboard = params.mIsRtlKeyboard;
-        mPopupTemplateId = params.mPopupTemplateId;
+        mMoreKeysTemplate = params.mMoreKeysTemplate;
         mMaxMiniKeyboardColumn = params.mMaxMiniKeyboardColumn;
 
         mDefaultRowHeight = params.mDefaultRowHeight;
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index 4c5c2bc..ceadc91 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -79,7 +79,7 @@
 
     // XML attributes
     protected final float mVerticalCorrection;
-    protected final int mPopupLayout;
+    protected final int mMoreKeysLayout;
     private final float mBackgroundDimAmount;
 
     // HORIZONTAL ELLIPSIS "...", character for popup hint.
@@ -343,7 +343,7 @@
         }
         mVerticalCorrection = a.getDimensionPixelOffset(
                 R.styleable.KeyboardView_verticalCorrection, 0);
-        mPopupLayout = a.getResourceId(R.styleable.KeyboardView_popupLayout, 0);
+        mMoreKeysLayout = a.getResourceId(R.styleable.KeyboardView_moreKeysLayout, 0);
         mBackgroundDimAmount = a.getFloat(R.styleable.KeyboardView_backgroundDimAmount, 0.5f);
         a.recycle();
 
@@ -679,7 +679,7 @@
         }
 
         // Draw popup hint "..." at the bottom right corner of the key.
-        if ((key.hasPopupHint() && key.mPopupCharacters != null && key.mPopupCharacters.length > 0)
+        if ((key.hasPopupHint() && key.mMoreKeys != null && key.mMoreKeys.length > 0)
                 || key.needsSpecialPopupHint()) {
             paint.setTextSize(params.mKeyHintLetterSize);
             paint.setColor(params.mKeyHintLabelColor);
@@ -880,7 +880,7 @@
 
         // Set the preview background state
         previewText.getBackground().setState(
-                key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
+                key.mMoreKeys != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET);
         previewText.setTextColor(params.mPreviewTextColor);
         FrameLayoutCompatUtils.placeViewAt(
                 previewText, previewX, previewY, previewWidth, previewHeight);
@@ -928,7 +928,7 @@
     }
 
     @Override
-    public boolean dismissPopupPanel() {
+    public boolean dismissMoreKeysPanel() {
         return false;
     }
 
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
index 1e7ec9e..777bae3 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -64,11 +64,11 @@
     private final int mKeyRepeatInterval;
 
     // Mini keyboard
-    private PopupWindow mPopupWindow;
-    private PopupPanel mPopupPanel;
-    private int mPopupPanelPointerTrackerId;
-    private final WeakHashMap<Key, PopupPanel> mPopupPanelCache =
-            new WeakHashMap<Key, PopupPanel>();
+    private PopupWindow mMoreKeysWindow;
+    private MoreKeysPanel mMoreKeysPanel;
+    private int mMoreKeysPanelPointerTrackerId;
+    private final WeakHashMap<Key, MoreKeysPanel> mMoreKeysPanelCache =
+            new WeakHashMap<Key, MoreKeysPanel>();
 
     /** Listener for {@link KeyboardActionListener}. */
     private KeyboardActionListener mKeyboardActionListener;
@@ -297,7 +297,7 @@
         mKeyDetector.setProximityThreshold(keyboard.mMostCommonKeyWidth);
         PointerTracker.setKeyDetector(mKeyDetector);
         mTouchScreenRegulator.setKeyboard(keyboard);
-        mPopupPanelCache.clear();
+        mMoreKeysPanelCache.clear();
     }
 
     /**
@@ -333,12 +333,12 @@
 
     private boolean openMiniKeyboardIfRequired(int keyIndex, PointerTracker tracker) {
         // Check if we have a popup layout specified first.
-        if (mPopupLayout == 0) {
+        if (mMoreKeysLayout == 0) {
             return false;
         }
 
         // Check if we are already displaying popup panel.
-        if (mPopupPanel != null)
+        if (mMoreKeysPanel != null)
             return false;
         final Key parentKey = tracker.getKey(keyIndex);
         if (parentKey == null)
@@ -353,12 +353,12 @@
         mKeyboardActionListener.onCodeInput(Keyboard.CODE_CAPSLOCK, null, 0, 0);
     }
 
-    // This default implementation returns a popup mini keyboard panel.
-    protected PopupPanel onCreatePopupPanel(Key parentKey) {
-        if (parentKey.mPopupCharacters == null)
+    // This default implementation returns a more keys panel.
+    protected MoreKeysPanel onCreateMoreKeysPanel(Key parentKey) {
+        if (parentKey.mMoreKeys == null)
             return null;
 
-        final View container = LayoutInflater.from(getContext()).inflate(mPopupLayout, null);
+        final View container = LayoutInflater.from(getContext()).inflate(mMoreKeysLayout, null);
         if (container == null)
             throw new NullPointerException();
 
@@ -366,7 +366,7 @@
                 (MiniKeyboardView)container.findViewById(R.id.mini_keyboard_view);
         final Keyboard parentKeyboard = getKeyboard();
         final Keyboard miniKeyboard = new MiniKeyboard.Builder(
-                this, parentKeyboard.mPopupTemplateId, parentKey, parentKeyboard).build();
+                this, parentKeyboard.mMoreKeysTemplate, parentKey, parentKeyboard).build();
         miniKeyboardView.setKeyboard(miniKeyboard);
         container.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
 
@@ -375,7 +375,7 @@
 
     @Override
     protected boolean needsToDimKeyboard() {
-        return mPopupPanel != null;
+        return mMoreKeysPanel != null;
     }
 
     public void setSpacebarTextFadeFactor(float fadeFactor, LatinKeyboard oldKeyboard) {
@@ -417,10 +417,10 @@
                 tracker.onLongPressed();
                 return true;
             } else {
-                return openPopupPanel(parentKey, tracker);
+                return openMoreKeysPanel(parentKey, tracker);
             }
         } else {
-            return openPopupPanel(parentKey, tracker);
+            return openMoreKeysPanel(parentKey, tracker);
         }
     }
 
@@ -431,34 +431,35 @@
         return true;
     }
 
-    private boolean openPopupPanel(Key parentKey, PointerTracker tracker) {
-        PopupPanel popupPanel = mPopupPanelCache.get(parentKey);
-        if (popupPanel == null) {
-            popupPanel = onCreatePopupPanel(parentKey);
-            if (popupPanel == null)
+    private boolean openMoreKeysPanel(Key parentKey, PointerTracker tracker) {
+        MoreKeysPanel moreKeysPanel = mMoreKeysPanelCache.get(parentKey);
+        if (moreKeysPanel == null) {
+            moreKeysPanel = onCreateMoreKeysPanel(parentKey);
+            if (moreKeysPanel == null)
                 return false;
-            mPopupPanelCache.put(parentKey, popupPanel);
+            mMoreKeysPanelCache.put(parentKey, moreKeysPanel);
         }
-        if (mPopupWindow == null) {
-            mPopupWindow = new PopupWindow(getContext());
-            mPopupWindow.setBackgroundDrawable(null);
-            mPopupWindow.setAnimationStyle(R.style.MiniKeyboardAnimation);
+        if (mMoreKeysWindow == null) {
+            mMoreKeysWindow = new PopupWindow(getContext());
+            mMoreKeysWindow.setBackgroundDrawable(null);
+            mMoreKeysWindow.setAnimationStyle(R.style.MiniKeyboardAnimation);
             // Allow popup window to be drawn off the screen.
-            mPopupWindow.setClippingEnabled(false);
+            mMoreKeysWindow.setClippingEnabled(false);
         }
-        mPopupPanel = popupPanel;
-        mPopupPanelPointerTrackerId = tracker.mPointerId;
+        mMoreKeysPanel = moreKeysPanel;
+        mMoreKeysPanelPointerTrackerId = tracker.mPointerId;
 
         final Keyboard keyboard = getKeyboard();
-        popupPanel.setShifted(keyboard.isShiftedOrShiftLocked());
+        moreKeysPanel.setShifted(keyboard.isShiftedOrShiftLocked());
         final int pointX = (mConfigShowMiniKeyboardAtTouchedPoint) ? tracker.getLastX()
                 : parentKey.mX + parentKey.mWidth / 2;
         final int pointY = parentKey.mY - keyboard.mVerticalGap;
-        popupPanel.showPopupPanel(
-                this, this, pointX, pointY, mPopupWindow, getKeyboardActionListener());
-        final int translatedX = popupPanel.translateX(tracker.getLastX());
-        final int translatedY = popupPanel.translateY(tracker.getLastY());
-        tracker.onShowPopupPanel(translatedX, translatedY, SystemClock.uptimeMillis(), popupPanel);
+        moreKeysPanel.showMoreKeysPanel(
+                this, this, pointX, pointY, mMoreKeysWindow, getKeyboardActionListener());
+        final int translatedX = moreKeysPanel.translateX(tracker.getLastX());
+        final int translatedY = moreKeysPanel.translateY(tracker.getLastY());
+        tracker.onShowMoreKeysPanel(
+                translatedX, translatedY, SystemClock.uptimeMillis(), moreKeysPanel);
 
         invalidateAllKeys();
         return true;
@@ -469,7 +470,7 @@
     }
 
     public boolean isInSlidingKeyInput() {
-        if (mPopupPanel != null) {
+        if (mMoreKeysPanel != null) {
             return true;
         } else {
             return PointerTracker.isAnyInSlidingKeyInput();
@@ -504,7 +505,7 @@
         }
 
         // Gesture detector must be enabled only when mini-keyboard is not on the screen.
-        if (mPopupPanel == null && mGestureDetector != null
+        if (mMoreKeysPanel == null && mGestureDetector != null
                 && mGestureDetector.onTouchEvent(me)) {
             PointerTracker.dismissAllKeyPreviews();
             mKeyTimerHandler.cancelKeyTimers();
@@ -515,9 +516,9 @@
         final int index = me.getActionIndex();
         final int id = me.getPointerId(index);
         final int x, y;
-        if (mPopupPanel != null && id == mPopupPanelPointerTrackerId) {
-            x = mPopupPanel.translateX((int)me.getX(index));
-            y = mPopupPanel.translateY((int)me.getY(index));
+        if (mMoreKeysPanel != null && id == mMoreKeysPanelPointerTrackerId) {
+            x = mMoreKeysPanel.translateX((int)me.getX(index));
+            y = mMoreKeysPanel.translateY((int)me.getY(index));
         } else {
             x = (int)me.getX(index);
             y = (int)me.getY(index);
@@ -569,9 +570,10 @@
             for (int i = 0; i < pointerCount; i++) {
                 final PointerTracker tracker = getPointerTracker(me.getPointerId(i));
                 final int px, py;
-                if (mPopupPanel != null && tracker.mPointerId == mPopupPanelPointerTrackerId) {
-                    px = mPopupPanel.translateX((int)me.getX(i));
-                    py = mPopupPanel.translateY((int)me.getY(i));
+                if (mMoreKeysPanel != null
+                        && tracker.mPointerId == mMoreKeysPanelPointerTrackerId) {
+                    px = mMoreKeysPanel.translateX((int)me.getX(i));
+                    py = mMoreKeysPanel.translateY((int)me.getY(i));
                 } else {
                     px = (int)me.getX(i);
                     py = (int)me.getY(i);
@@ -608,16 +610,16 @@
     @Override
     public void closing() {
         super.closing();
-        dismissPopupPanel();
-        mPopupPanelCache.clear();
+        dismissMoreKeysPanel();
+        mMoreKeysPanelCache.clear();
     }
 
     @Override
-    public boolean dismissPopupPanel() {
-        if (mPopupWindow != null && mPopupWindow.isShowing()) {
-            mPopupWindow.dismiss();
-            mPopupPanel = null;
-            mPopupPanelPointerTrackerId = -1;
+    public boolean dismissMoreKeysPanel() {
+        if (mMoreKeysWindow != null && mMoreKeysWindow.isShowing()) {
+            mMoreKeysWindow.dismiss();
+            mMoreKeysPanel = null;
+            mMoreKeysPanelPointerTrackerId = -1;
             invalidateAllKeys();
             return true;
         }
@@ -625,7 +627,7 @@
     }
 
     public boolean handleBack() {
-        return dismissPopupPanel();
+        return dismissMoreKeysPanel();
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
index 6119fa2..da91b62 100644
--- a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
@@ -20,7 +20,7 @@
 
 import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
 import com.android.inputmethod.keyboard.internal.KeyboardParams;
-import com.android.inputmethod.keyboard.internal.PopupCharactersParser;
+import com.android.inputmethod.keyboard.internal.MoreKeySpecParser;
 import com.android.inputmethod.latin.R;
 
 public class MiniKeyboard extends Keyboard {
@@ -36,7 +36,7 @@
     }
 
     public static class Builder extends KeyboardBuilder<Builder.MiniKeyboardParams> {
-        private final CharSequence[] mPopupCharacters;
+        private final CharSequence[] mMoreKeys;
 
         public static class MiniKeyboardParams extends KeyboardParams {
             /* package */int mTopRowAdjustment;
@@ -224,22 +224,22 @@
             // mParams.mVerticalGap = parentKeyboard.mVerticalGap;
 
             mParams.mIsRtlKeyboard = parentKeyboard.mIsRtlKeyboard;
-            mPopupCharacters = parentKey.mPopupCharacters;
+            mMoreKeys = parentKey.mMoreKeys;
 
-            final int keyWidth = getMaxKeyWidth(view, mPopupCharacters, mParams.mDefaultKeyWidth);
-            mParams.setParameters(mPopupCharacters.length, parentKey.mMaxMiniKeyboardColumn,
+            final int keyWidth = getMaxKeyWidth(view, mMoreKeys, mParams.mDefaultKeyWidth);
+            mParams.setParameters(mMoreKeys.length, parentKey.mMaxMoreKeysColumn,
                     keyWidth, parentKeyboard.mDefaultRowHeight, parentKey.mX
                             + (mParams.mDefaultKeyWidth - keyWidth) / 2, view.getMeasuredWidth());
         }
 
-        private static int getMaxKeyWidth(KeyboardView view, CharSequence[] popupCharacters,
+        private static int getMaxKeyWidth(KeyboardView view, CharSequence[] moreKeys,
                 int minKeyWidth) {
             final int padding = (int) view.getContext().getResources()
                     .getDimension(R.dimen.mini_keyboard_key_horizontal_padding);
             Paint paint = null;
             int maxWidth = minKeyWidth;
-            for (CharSequence popupSpec : popupCharacters) {
-                final CharSequence label = PopupCharactersParser.getLabel(popupSpec.toString());
+            for (CharSequence moreKeySpec : moreKeys) {
+                final CharSequence label = MoreKeySpecParser.getLabel(moreKeySpec.toString());
                 // If the label is single letter, minKeyWidth is enough to hold
                 // the label.
                 if (label != null && label.length() > 1) {
@@ -259,10 +259,10 @@
         @Override
         public MiniKeyboard build() {
             final MiniKeyboardParams params = mParams;
-            for (int n = 0; n < mPopupCharacters.length; n++) {
-                final String popupSpec = mPopupCharacters[n].toString();
+            for (int n = 0; n < mMoreKeys.length; n++) {
+                final String moreKeySpec = mMoreKeys[n].toString();
                 final int row = n / params.mNumColumns;
-                final Key key = new Key(mResources, params, popupSpec, params.getX(n, row),
+                final Key key = new Key(mResources, params, moreKeySpec, params.getX(n, row),
                         params.getY(row), params.mDefaultKeyWidth, params.mDefaultRowHeight,
                         params.getRowFlags(row));
                 params.onAddKey(key);
diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboardView.java
index 7a0f73f..f331662 100644
--- a/java/src/com/android/inputmethod/keyboard/MiniKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboardView.java
@@ -33,7 +33,7 @@
  * A view that renders a virtual {@link MiniKeyboard}. It handles rendering of keys and detecting
  * key presses and touch movements.
  */
-public class MiniKeyboardView extends KeyboardView implements PopupPanel {
+public class MiniKeyboardView extends KeyboardView implements MoreKeysPanel {
     private final int[] mCoordinates = new int[2];
 
     private final KeyDetector mKeyDetector;
@@ -88,16 +88,7 @@
         }
     }
 
-    private static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy() {
-        @Override
-        public void startKeyRepeatTimer(long delay, int keyIndex, PointerTracker tracker) {}
-        @Override
-        public void startLongPressTimer(long delay, int keyIndex, PointerTracker tracker) {}
-        @Override
-        public void cancelLongPressTimer() {}
-        @Override
-        public void cancelKeyTimers() {}
-    };
+    private static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy.Adapter();
 
     private final KeyboardActionListener mMiniKeyboardListener =
             new KeyboardActionListener.Adapter() {
@@ -196,7 +187,7 @@
     }
 
     @Override
-    public void showPopupPanel(View parentView, Controller controller, int pointX, int pointY,
+    public void showMoreKeysPanel(View parentView, Controller controller, int pointX, int pointY,
             PopupWindow window, KeyboardActionListener listener) {
         mController = controller;
         mListener = listener;
@@ -232,8 +223,8 @@
     }
 
     @Override
-    public boolean dismissPopupPanel() {
-        return mController.dismissPopupPanel();
+    public boolean dismissMoreKeysPanel() {
+        return mController.dismissMoreKeysPanel();
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/keyboard/MoreKeysPanel.java b/java/src/com/android/inputmethod/keyboard/MoreKeysPanel.java
new file mode 100644
index 0000000..6314a99
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysPanel.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.android.inputmethod.keyboard;
+
+import android.view.View;
+import android.widget.PopupWindow;
+
+public interface MoreKeysPanel extends PointerTracker.KeyEventHandler {
+    public interface Controller {
+        public boolean dismissMoreKeysPanel();
+    }
+
+    public void setShifted(boolean shifted);
+
+    /**
+     * Show more keys panel.
+     *
+     * @param parentView the parent view of this more keys panel
+     * @param controller the controller that can dismiss this more keys panel
+     * @param pointX x coordinate of this more keys panel
+     * @param pointY y coordinate of this more keys panel
+     * @param window PopupWindow to be used to show this more keys panel
+     * @param listener the listener that will receive keyboard action from this more keys panel.
+     */
+    public void showMoreKeysPanel(View parentView, Controller controller, int pointX, int pointY,
+            PopupWindow window, KeyboardActionListener listener);
+
+    /**
+     * Translate X-coordinate of touch event to the local X-coordinate of this
+     * {@link MoreKeysPanel}.
+     *
+     * @param x the global X-coordinate
+     * @return the local X-coordinate to this {@link MoreKeysPanel}
+     */
+    public int translateX(int x);
+
+    /**
+     * Translate Y-coordinate of touch event to the local Y-coordinate of this
+     * {@link MoreKeysPanel}.
+     *
+     * @param y the global Y-coordinate
+     * @return the local Y-coordinate to this {@link MoreKeysPanel}
+     */
+    public int translateY(int y);
+}
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 7ae6220..0314867 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -63,7 +63,7 @@
         public TimerProxy getTimerProxy();
     }
 
-    public interface DrawingProxy extends PopupPanel.Controller {
+    public interface DrawingProxy extends MoreKeysPanel.Controller {
         public void invalidateKey(Key key);
         public TextView inflateKeyPreviewText();
         public void showKeyPreview(int keyIndex, PointerTracker tracker);
@@ -76,6 +76,17 @@
         public void startLongPressTimer(long delay, int keyIndex, PointerTracker tracker);
         public void cancelLongPressTimer();
         public void cancelKeyTimers();
+
+        public static class Adapter implements TimerProxy {
+            @Override
+            public void startKeyRepeatTimer(long delay, int keyIndex, PointerTracker tracker) {}
+            @Override
+            public void startLongPressTimer(long delay, int keyIndex, PointerTracker tracker) {}
+            @Override
+            public void cancelLongPressTimer() {}
+            @Override
+            public void cancelKeyTimers() {}
+        }
     }
 
     private static KeyboardSwitcher sKeyboardSwitcher;
@@ -123,8 +134,8 @@
     // true if event is already translated to a key action.
     private boolean mKeyAlreadyProcessed;
 
-    // true if this pointer has been long-pressed and is showing a popup panel.
-    private boolean mIsShowingPopupPanel;
+    // true if this pointer has been long-pressed and is showing a more keys panel.
+    private boolean mIsShowingMoreKeysPanel;
 
     // true if this pointer is repeatable key
     private boolean mIsRepeatableKey;
@@ -572,9 +583,9 @@
         }
         final int keyIndex = onUpKey(keyX, keyY, eventTime);
         setReleasedKeyGraphics(keyIndex);
-        if (mIsShowingPopupPanel) {
-            mDrawingProxy.dismissPopupPanel();
-            mIsShowingPopupPanel = false;
+        if (mIsShowingMoreKeysPanel) {
+            mDrawingProxy.dismissMoreKeysPanel();
+            mIsShowingMoreKeysPanel = false;
         }
         if (mKeyAlreadyProcessed)
             return;
@@ -583,10 +594,10 @@
         }
     }
 
-    public void onShowPopupPanel(int x, int y, long eventTime, KeyEventHandler handler) {
+    public void onShowMoreKeysPanel(int x, int y, long eventTime, KeyEventHandler handler) {
         onLongPressed();
         onDownEvent(x, y, eventTime, handler);
-        mIsShowingPopupPanel = true;
+        mIsShowingMoreKeysPanel = true;
     }
 
     public void onLongPressed() {
@@ -615,9 +626,9 @@
         mDrawingProxy.cancelShowKeyPreview(this);
         setReleasedKeyGraphics(mKeyIndex);
         mIsInSlidingKeyInput = false;
-        if (mIsShowingPopupPanel) {
-            mDrawingProxy.dismissPopupPanel();
-            mIsShowingPopupPanel = false;
+        if (mIsShowingMoreKeysPanel) {
+            mDrawingProxy.dismissMoreKeysPanel();
+            mIsShowingMoreKeysPanel = false;
         }
     }
 
diff --git a/java/src/com/android/inputmethod/keyboard/PopupPanel.java b/java/src/com/android/inputmethod/keyboard/PopupPanel.java
deleted file mode 100644
index 5e51fd5..0000000
--- a/java/src/com/android/inputmethod/keyboard/PopupPanel.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.inputmethod.keyboard;
-
-import android.view.View;
-import android.widget.PopupWindow;
-
-public interface PopupPanel extends PointerTracker.KeyEventHandler {
-    public interface Controller {
-        public boolean dismissPopupPanel();
-    }
-
-    public void setShifted(boolean shifted);
-
-    /**
-     * Show popup panel.
-     * @param parentView the parent view of this popup panel
-     * @param controller the controller that can dismiss this popup panel
-     * @param pointX x coordinate of this popup panel
-     * @param pointY y coordinate of this popup panel
-     * @param window PopupWindow to be used to show this popup panel
-     * @param listener the listener that will receive keyboard action from this popup panel.
-     */
-    public void showPopupPanel(View parentView, Controller controller, int pointX, int pointY,
-            PopupWindow window, KeyboardActionListener listener);
-
-    /**
-     * Translate X-coordinate of touch event to the local X-coordinate of this PopupPanel.
-     * @param x the global X-coordinate
-     * @return the local X-coordinate to this PopupPanel
-     */
-    public int translateX(int x);
-
-    /**
-     * Translate Y-coordinate of touch event to the local Y-coordinate of this PopupPanel.
-     * @param y the global Y-coordinate
-     * @return the local Y-coordinate to this PopupPanel
-     */
-    public int translateY(int y);
-}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
index 66dde05..6d78e85 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
@@ -166,12 +166,12 @@
             readText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
             readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
             readText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
-            readTextArray(keyAttr, R.styleable.Keyboard_Key_popupCharacters);
+            readTextArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
             readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelOption);
             readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon);
             readInt(keyAttr, R.styleable.Keyboard_Key_keyIconPreview);
             readInt(keyAttr, R.styleable.Keyboard_Key_keyIconShifted);
-            readInt(keyAttr, R.styleable.Keyboard_Key_maxMiniKeyboardColumn);
+            readInt(keyAttr, R.styleable.Keyboard_Key_maxMoreKeysColumn);
             readBoolean(keyAttr, R.styleable.Keyboard_Key_isFunctional);
             readBoolean(keyAttr, R.styleable.Keyboard_Key_isSticky);
             readBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
index 5c76fac..c605deb 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java
@@ -255,10 +255,10 @@
 
             mParams.mIsRtlKeyboard = keyboardAttr.getBoolean(
                     R.styleable.Keyboard_isRtlKeyboard, false);
-            mParams.mPopupTemplateId = keyboardAttr.getResourceId(
-                    R.styleable.Keyboard_popupTemplate, 0);
+            mParams.mMoreKeysTemplate = keyboardAttr.getResourceId(
+                    R.styleable.Keyboard_moreKeysTemplate, 0);
             mParams.mMaxMiniKeyboardColumn = keyAttr.getInt(
-                    R.styleable.Keyboard_Key_maxMiniKeyboardColumn, 5);
+                    R.styleable.Keyboard_Key_maxMoreKeysColumn, 5);
 
             mParams.mIconsSet.loadIcons(keyboardAttr);
         } finally {
@@ -365,9 +365,9 @@
             checkEndTag(TAG_KEY, parser);
         } else {
             Key key = new Key(mResources, mParams, row, mCurrentX, mCurrentY, parser, mKeyStyles);
-            if (DEBUG) Log.d(TAG, String.format("<%s%s keyLabel=%s code=%d popupCharacters=%s />",
+            if (DEBUG) Log.d(TAG, String.format("<%s%s keyLabel=%s code=%d moreKeys=%s />",
                     TAG_KEY, (key.isEnabled() ? "" : " disabled"), key.mLabel, key.mCode,
-                    Arrays.toString(key.mPopupCharacters)));
+                    Arrays.toString(key.mMoreKeys)));
             checkEndTag(TAG_KEY, parser);
             mParams.onAddKey(key);
             endKey(key);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
index e748dbb..4432ee1 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardParams.java
@@ -49,7 +49,7 @@
     public int mVerticalGap;
 
     public boolean mIsRtlKeyboard;
-    public int mPopupTemplateId;
+    public int mMoreKeysTemplate;
     public int mMaxMiniKeyboardColumn;
 
     public int GRID_WIDTH;
diff --git a/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParser.java b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParser.java
new file mode 100644
index 0000000..a490b0a
--- /dev/null
+++ b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParser.java
@@ -0,0 +1,230 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.android.inputmethod.keyboard.internal;
+
+import android.content.res.Resources;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.latin.R;
+
+import java.util.ArrayList;
+
+/**
+ * String parser of moreKeys attribute of Key.
+ * The string is comma separated texts each of which represents one "more key".
+ * Each "more key" specification is one of the following:
+ * - A single letter (Letter)
+ * - Label optionally followed by keyOutputText or code (keyLabel|keyOutputText).
+ * - Icon followed by keyOutputText or code (@icon/icon_number|@integer/key_code)
+ * Special character, comma ',' backslash '\', and bar '|' can be escaped by '\'
+ * character.
+ * Note that the character '@' and '\' are also parsed by XML parser and CSV parser as well.
+ * See {@link KeyboardIconsSet} about icon_number.
+ */
+public class MoreKeySpecParser {
+    private static final String TAG = MoreKeySpecParser.class.getSimpleName();
+
+    private static final char ESCAPE = '\\';
+    private static final String LABEL_END = "|";
+    private static final String PREFIX_AT = "@";
+    private static final String PREFIX_ICON = PREFIX_AT + "icon/";
+    private static final String PREFIX_CODE = PREFIX_AT + "integer/";
+
+    private MoreKeySpecParser() {
+        // Intentional empty constructor for utility class.
+    }
+
+    private static boolean hasIcon(String moreKeySpec) {
+        if (moreKeySpec.startsWith(PREFIX_ICON)) {
+            final int end = indexOfLabelEnd(moreKeySpec, 0);
+            if (end > 0)
+                return true;
+            throw new MoreKeySpecParserError("outputText or code not specified: " + moreKeySpec);
+        }
+        return false;
+    }
+
+    private static boolean hasCode(String moreKeySpec) {
+        final int end = indexOfLabelEnd(moreKeySpec, 0);
+        if (end > 0 && end + 1 < moreKeySpec.length()
+                && moreKeySpec.substring(end + 1).startsWith(PREFIX_CODE)) {
+            return true;
+        }
+        return false;
+    }
+
+    private static String parseEscape(String text) {
+        if (text.indexOf(ESCAPE) < 0)
+            return text;
+        final int length = text.length();
+        final StringBuilder sb = new StringBuilder();
+        for (int pos = 0; pos < length; pos++) {
+            final char c = text.charAt(pos);
+            if (c == ESCAPE && pos + 1 < length) {
+                sb.append(text.charAt(++pos));
+            } else {
+                sb.append(c);
+            }
+        }
+        return sb.toString();
+    }
+
+    private static int indexOfLabelEnd(String moreKeySpec, int start) {
+        if (moreKeySpec.indexOf(ESCAPE, start) < 0) {
+            final int end = moreKeySpec.indexOf(LABEL_END, start);
+            if (end == 0)
+                throw new MoreKeySpecParserError(LABEL_END + " at " + start + ": " + moreKeySpec);
+            return end;
+        }
+        final int length = moreKeySpec.length();
+        for (int pos = start; pos < length; pos++) {
+            final char c = moreKeySpec.charAt(pos);
+            if (c == ESCAPE && pos + 1 < length) {
+                pos++;
+            } else if (moreKeySpec.startsWith(LABEL_END, pos)) {
+                return pos;
+            }
+        }
+        return -1;
+    }
+
+    public static String getLabel(String moreKeySpec) {
+        if (hasIcon(moreKeySpec))
+            return null;
+        final int end = indexOfLabelEnd(moreKeySpec, 0);
+        final String label = (end > 0) ? parseEscape(moreKeySpec.substring(0, end))
+                : parseEscape(moreKeySpec);
+        if (TextUtils.isEmpty(label))
+            throw new MoreKeySpecParserError("Empty label: " + moreKeySpec);
+        return label;
+    }
+
+    public static String getOutputText(String moreKeySpec) {
+        if (hasCode(moreKeySpec))
+            return null;
+        final int end = indexOfLabelEnd(moreKeySpec, 0);
+        if (end > 0) {
+            if (indexOfLabelEnd(moreKeySpec, end + 1) >= 0)
+                    throw new MoreKeySpecParserError("Multiple " + LABEL_END + ": "
+                            + moreKeySpec);
+            final String outputText = parseEscape(moreKeySpec.substring(end + LABEL_END.length()));
+            if (!TextUtils.isEmpty(outputText))
+                return outputText;
+            throw new MoreKeySpecParserError("Empty outputText: " + moreKeySpec);
+        }
+        final String label = getLabel(moreKeySpec);
+        if (label == null)
+            throw new MoreKeySpecParserError("Empty label: " + moreKeySpec);
+        // Code is automatically generated for one letter label. See {@link getCode()}.
+        if (label.length() == 1)
+            return null;
+        return label;
+    }
+
+    public static int getCode(Resources res, String moreKeySpec) {
+        if (hasCode(moreKeySpec)) {
+            final int end = indexOfLabelEnd(moreKeySpec, 0);
+            if (indexOfLabelEnd(moreKeySpec, end + 1) >= 0)
+                throw new MoreKeySpecParserError("Multiple " + LABEL_END + ": " + moreKeySpec);
+            final int resId = getResourceId(res,
+                    moreKeySpec.substring(end + LABEL_END.length() + PREFIX_AT.length()));
+            final int code = res.getInteger(resId);
+            return code;
+        }
+        if (indexOfLabelEnd(moreKeySpec, 0) > 0)
+            return Keyboard.CODE_DUMMY;
+        final String label = getLabel(moreKeySpec);
+        // Code is automatically generated for one letter label.
+        if (label != null && label.length() == 1)
+            return label.charAt(0);
+        return Keyboard.CODE_DUMMY;
+    }
+
+    public static int getIconId(String moreKeySpec) {
+        if (hasIcon(moreKeySpec)) {
+            int end = moreKeySpec.indexOf(LABEL_END, PREFIX_ICON.length() + 1);
+            final String iconId = moreKeySpec.substring(PREFIX_ICON.length(), end);
+            try {
+                return Integer.valueOf(iconId);
+            } catch (NumberFormatException e) {
+                Log.w(TAG, "illegal icon id specified: " + iconId);
+                return KeyboardIconsSet.ICON_UNDEFINED;
+            }
+        }
+        return KeyboardIconsSet.ICON_UNDEFINED;
+    }
+
+    private static int getResourceId(Resources res, String name) {
+        String packageName = res.getResourcePackageName(R.string.english_ime_name);
+        int resId = res.getIdentifier(name, null, packageName);
+        if (resId == 0)
+            throw new MoreKeySpecParserError("Unknown resource: " + name);
+        return resId;
+    }
+
+    @SuppressWarnings("serial")
+    public static class MoreKeySpecParserError extends RuntimeException {
+        public MoreKeySpecParserError(String message) {
+            super(message);
+        }
+    }
+
+    public interface CodeFilter {
+        public boolean shouldFilterOut(int code);
+    }
+
+    public static final CodeFilter DIGIT_FILTER = new CodeFilter() {
+        @Override
+        public boolean shouldFilterOut(int code) {
+            return Character.isDigit(code);
+        }
+    };
+
+    public static CharSequence[] filterOut(Resources res, CharSequence[] moreKeys,
+            CodeFilter filter) {
+        if (moreKeys == null || moreKeys.length < 1) {
+            return null;
+        }
+        if (moreKeys.length == 1
+                && filter.shouldFilterOut(getCode(res, moreKeys[0].toString()))) {
+            return null;
+        }
+        ArrayList<CharSequence> filtered = null;
+        for (int i = 0; i < moreKeys.length; i++) {
+            final CharSequence moreKeySpec = moreKeys[i];
+            if (filter.shouldFilterOut(getCode(res, moreKeySpec.toString()))) {
+                if (filtered == null) {
+                    filtered = new ArrayList<CharSequence>();
+                    for (int j = 0; j < i; j++) {
+                        filtered.add(moreKeys[j]);
+                    }
+                }
+            } else if (filtered != null) {
+                filtered.add(moreKeySpec);
+            }
+        }
+        if (filtered == null) {
+            return moreKeys;
+        }
+        if (filtered.size() == 0) {
+            return null;
+        }
+        return filtered.toArray(new CharSequence[filtered.size()]);
+    }
+}
diff --git a/java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java b/java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java
deleted file mode 100644
index 7c5abe3..0000000
--- a/java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.inputmethod.keyboard.internal;
-
-import android.content.res.Resources;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.android.inputmethod.keyboard.Keyboard;
-import com.android.inputmethod.latin.R;
-
-import java.util.ArrayList;
-
-/**
- * String parser of popupCharacters attribute of Key.
- * The string is comma separated texts each of which represents one popup key.
- * Each popup key text is one of the following:
- * - A single letter (Letter)
- * - Label optionally followed by keyOutputText or code (keyLabel|keyOutputText).
- * - Icon followed by keyOutputText or code (@icon/icon_number|@integer/key_code)
- * Special character, comma ',' backslash '\', and bar '|' can be escaped by '\'
- * character.
- * Note that the character '@' and '\' are also parsed by XML parser and CSV parser as well.
- * See {@link KeyboardIconsSet} about icon_number.
- */
-public class PopupCharactersParser {
-    private static final String TAG = PopupCharactersParser.class.getSimpleName();
-
-    private static final char ESCAPE = '\\';
-    private static final String LABEL_END = "|";
-    private static final String PREFIX_AT = "@";
-    private static final String PREFIX_ICON = PREFIX_AT + "icon/";
-    private static final String PREFIX_CODE = PREFIX_AT + "integer/";
-
-    private PopupCharactersParser() {
-        // Intentional empty constructor for utility class.
-    }
-
-    private static boolean hasIcon(String popupSpec) {
-        if (popupSpec.startsWith(PREFIX_ICON)) {
-            final int end = indexOfLabelEnd(popupSpec, 0);
-            if (end > 0)
-                return true;
-            throw new PopupCharactersParserError("outputText or code not specified: " + popupSpec);
-        }
-        return false;
-    }
-
-    private static boolean hasCode(String popupSpec) {
-        final int end = indexOfLabelEnd(popupSpec, 0);
-        if (end > 0 && end + 1 < popupSpec.length()
-                && popupSpec.substring(end + 1).startsWith(PREFIX_CODE)) {
-            return true;
-        }
-        return false;
-    }
-
-    private static String parseEscape(String text) {
-        if (text.indexOf(ESCAPE) < 0)
-            return text;
-        final int length = text.length();
-        final StringBuilder sb = new StringBuilder();
-        for (int pos = 0; pos < length; pos++) {
-            final char c = text.charAt(pos);
-            if (c == ESCAPE && pos + 1 < length) {
-                sb.append(text.charAt(++pos));
-            } else {
-                sb.append(c);
-            }
-        }
-        return sb.toString();
-    }
-
-    private static int indexOfLabelEnd(String popupSpec, int start) {
-        if (popupSpec.indexOf(ESCAPE, start) < 0) {
-            final int end = popupSpec.indexOf(LABEL_END, start);
-            if (end == 0)
-                throw new PopupCharactersParserError(LABEL_END + " at " + start + ": " + popupSpec);
-            return end;
-        }
-        final int length = popupSpec.length();
-        for (int pos = start; pos < length; pos++) {
-            final char c = popupSpec.charAt(pos);
-            if (c == ESCAPE && pos + 1 < length) {
-                pos++;
-            } else if (popupSpec.startsWith(LABEL_END, pos)) {
-                return pos;
-            }
-        }
-        return -1;
-    }
-
-    public static String getLabel(String popupSpec) {
-        if (hasIcon(popupSpec))
-            return null;
-        final int end = indexOfLabelEnd(popupSpec, 0);
-        final String label = (end > 0) ? parseEscape(popupSpec.substring(0, end))
-                : parseEscape(popupSpec);
-        if (TextUtils.isEmpty(label))
-            throw new PopupCharactersParserError("Empty label: " + popupSpec);
-        return label;
-    }
-
-    public static String getOutputText(String popupSpec) {
-        if (hasCode(popupSpec))
-            return null;
-        final int end = indexOfLabelEnd(popupSpec, 0);
-        if (end > 0) {
-            if (indexOfLabelEnd(popupSpec, end + 1) >= 0)
-                    throw new PopupCharactersParserError("Multiple " + LABEL_END + ": "
-                            + popupSpec);
-            final String outputText = parseEscape(popupSpec.substring(end + LABEL_END.length()));
-            if (!TextUtils.isEmpty(outputText))
-                return outputText;
-            throw new PopupCharactersParserError("Empty outputText: " + popupSpec);
-        }
-        final String label = getLabel(popupSpec);
-        if (label == null)
-            throw new PopupCharactersParserError("Empty label: " + popupSpec);
-        // Code is automatically generated for one letter label. See {@link getCode()}.
-        if (label.length() == 1)
-            return null;
-        return label;
-    }
-
-    public static int getCode(Resources res, String popupSpec) {
-        if (hasCode(popupSpec)) {
-            final int end = indexOfLabelEnd(popupSpec, 0);
-            if (indexOfLabelEnd(popupSpec, end + 1) >= 0)
-                throw new PopupCharactersParserError("Multiple " + LABEL_END + ": " + popupSpec);
-            final int resId = getResourceId(res,
-                    popupSpec.substring(end + LABEL_END.length() + PREFIX_AT.length()));
-            final int code = res.getInteger(resId);
-            return code;
-        }
-        if (indexOfLabelEnd(popupSpec, 0) > 0)
-            return Keyboard.CODE_DUMMY;
-        final String label = getLabel(popupSpec);
-        // Code is automatically generated for one letter label.
-        if (label != null && label.length() == 1)
-            return label.charAt(0);
-        return Keyboard.CODE_DUMMY;
-    }
-
-    public static int getIconId(String popupSpec) {
-        if (hasIcon(popupSpec)) {
-            int end = popupSpec.indexOf(LABEL_END, PREFIX_ICON.length() + 1);
-            final String iconId = popupSpec.substring(PREFIX_ICON.length(), end);
-            try {
-                return Integer.valueOf(iconId);
-            } catch (NumberFormatException e) {
-                Log.w(TAG, "illegal icon id specified: " + iconId);
-                return KeyboardIconsSet.ICON_UNDEFINED;
-            }
-        }
-        return KeyboardIconsSet.ICON_UNDEFINED;
-    }
-
-    private static int getResourceId(Resources res, String name) {
-        String packageName = res.getResourcePackageName(R.string.english_ime_name);
-        int resId = res.getIdentifier(name, null, packageName);
-        if (resId == 0)
-            throw new PopupCharactersParserError("Unknown resource: " + name);
-        return resId;
-    }
-
-    @SuppressWarnings("serial")
-    public static class PopupCharactersParserError extends RuntimeException {
-        public PopupCharactersParserError(String message) {
-            super(message);
-        }
-    }
-
-    public interface CodeFilter {
-        public boolean shouldFilterOut(int code);
-    }
-
-    public static final CodeFilter DIGIT_FILTER = new CodeFilter() {
-        @Override
-        public boolean shouldFilterOut(int code) {
-            return Character.isDigit(code);
-        }
-    };
-
-    public static CharSequence[] filterOut(Resources res, CharSequence[] popupCharacters,
-            CodeFilter filter) {
-        if (popupCharacters == null || popupCharacters.length < 1) {
-            return null;
-        }
-        if (popupCharacters.length == 1
-                && filter.shouldFilterOut(getCode(res, popupCharacters[0].toString()))) {
-            return null;
-        }
-        ArrayList<CharSequence> filtered = null;
-        for (int i = 0; i < popupCharacters.length; i++) {
-            final CharSequence popupSpec = popupCharacters[i];
-            if (filter.shouldFilterOut(getCode(res, popupSpec.toString()))) {
-                if (filtered == null) {
-                    filtered = new ArrayList<CharSequence>();
-                    for (int j = 0; j < i; j++) {
-                        filtered.add(popupCharacters[j]);
-                    }
-                }
-            } else if (filtered != null) {
-                filtered.add(popupSpec);
-            }
-        }
-        if (filtered == null) {
-            return popupCharacters;
-        }
-        if (filtered.size() == 0) {
-            return null;
-        }
-        return filtered.toArray(new CharSequence[filtered.size()]);
-    }
-}
diff --git a/java/src/com/android/inputmethod/latin/CandidateView.java b/java/src/com/android/inputmethod/latin/CandidateView.java
index b9ded31..fe48f0b 100644
--- a/java/src/com/android/inputmethod/latin/CandidateView.java
+++ b/java/src/com/android/inputmethod/latin/CandidateView.java
@@ -23,6 +23,7 @@
 import android.graphics.Typeface;
 import android.graphics.drawable.Drawable;
 import android.os.Message;
+import android.os.SystemClock;
 import android.text.Spannable;
 import android.text.SpannableString;
 import android.text.Spanned;
@@ -34,8 +35,10 @@
 import android.text.style.StyleSpan;
 import android.text.style.UnderlineSpan;
 import android.util.AttributeSet;
+import android.util.DisplayMetrics;
 import android.view.Gravity;
 import android.view.LayoutInflater;
+import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.View.OnLongClickListener;
@@ -46,6 +49,9 @@
 
 import com.android.inputmethod.compat.FrameLayoutCompatUtils;
 import com.android.inputmethod.compat.LinearLayoutCompatUtils;
+import com.android.inputmethod.keyboard.KeyboardActionListener;
+import com.android.inputmethod.keyboard.MoreKeysPanel;
+import com.android.inputmethod.keyboard.PointerTracker;
 import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
 
 import java.util.ArrayList;
@@ -58,16 +64,19 @@
     }
 
     // The maximum number of suggestions available. See {@link Suggest#mPrefMaxSuggestions}.
-    private static final int MAX_SUGGESTIONS = 18;
+    public static final int MAX_SUGGESTIONS = 18;
 
     private static final boolean DBG = LatinImeLogger.sDBG;
 
     private final ViewGroup mCandidatesPlacer;
     private final ViewGroup mCandidatesStrip;
-    private ViewGroup mCandidatesPane;
-    private ViewGroup mCandidatesPaneContainer;
     private View mKeyboardView;
 
+    private final View mMoreSuggestionsContainer;
+    private final MoreSuggestionsView mMoreSuggestionsView;
+    private final MoreSuggestions.Builder mMoreSuggestionsBuilder;
+    private final PopupWindow mMoreSuggestionsWindow;
+
     private final ArrayList<TextView> mWords = new ArrayList<TextView>();
     private final ArrayList<TextView> mInfos = new ArrayList<TextView>();
     private final ArrayList<View> mDividers = new ArrayList<View>();
@@ -80,7 +89,6 @@
     private boolean mShowingAutoCorrectionInverted;
 
     private final SuggestionsStripParams mStripParams;
-    private final SuggestionsPaneParams mPaneParams;
     private static final float MIN_TEXT_XSCALE = 0.70f;
 
     private final UiHandler mHandler = new UiHandler(this);
@@ -137,7 +145,6 @@
     private static class CandidateViewParams {
         public final int mPadding;
         public final int mDividerWidth;
-        public final int mDividerHeight;
         public final int mCandidateStripHeight;
 
         protected final List<TextView> mWords;
@@ -156,96 +163,9 @@
             divider.measure(
                     ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
             mDividerWidth = divider.getMeasuredWidth();
-            mDividerHeight = divider.getMeasuredHeight();
 
             final Resources res = word.getResources();
-            mCandidateStripHeight = res.getDimensionPixelOffset(R.dimen.candidate_strip_height);
-        }
-    }
-
-    private static class SuggestionsPaneParams extends CandidateViewParams {
-        public SuggestionsPaneParams(List<TextView> words, List<View> dividers,
-                List<TextView> infos) {
-            super(words, dividers, infos);
-        }
-
-        public int layout(SuggestedWords suggestions, ViewGroup paneView, int from, int textColor,
-                int paneWidth) {
-            final int count = Math.min(mWords.size(), suggestions.size());
-            View centeringFrom = null, lastView = null;
-            int x = 0, y = 0;
-            for (int index = from; index < count; index++) {
-                final int pos = index;
-                final TextView word = mWords.get(pos);
-                final View divider = mDividers.get(pos);
-                final TextPaint paint = word.getPaint();
-                word.setTextColor(textColor);
-                final CharSequence styled = suggestions.getWord(pos);
-
-                final TextView info;
-                if (DBG) {
-                    final CharSequence debugInfo = getDebugInfo(suggestions, index);
-                    if (debugInfo != null) {
-                        info = mInfos.get(index);
-                        info.setText(debugInfo);
-                    } else {
-                        info = null;
-                    }
-                } else {
-                    info = null;
-                }
-
-                final CharSequence text;
-                final float scaleX;
-                paint.setTextScaleX(1.0f);
-                final int textWidth = getTextWidth(styled, paint);
-                int available = paneWidth - x - mPadding;
-                if (textWidth >= available) {
-                    // Needs new row, centering previous row.
-                    centeringCandidates(paneView, centeringFrom, lastView, x, paneWidth);
-                    x = 0;
-                    y += mCandidateStripHeight;
-                }
-                if (x != 0) {
-                    // Add divider if this isn't the left most suggestion in current row.
-                    paneView.addView(divider);
-                    FrameLayoutCompatUtils.placeViewAt(divider, x, y
-                            + (mCandidateStripHeight - mDividerHeight) / 2, mDividerWidth,
-                            mDividerHeight);
-                    x += mDividerWidth;
-                }
-                available = paneWidth - x - mPadding;
-                text = getEllipsizedText(styled, available, paint);
-                scaleX = paint.getTextScaleX();
-                word.setText(text);
-                word.setTextScaleX(scaleX);
-                paneView.addView(word);
-                lastView = word;
-                if (x == 0)
-                    centeringFrom = word;
-                word.measure(ViewGroup.LayoutParams.WRAP_CONTENT,
-                        MeasureSpec.makeMeasureSpec(mCandidateStripHeight, MeasureSpec.EXACTLY));
-                final int width = word.getMeasuredWidth();
-                final int height = word.getMeasuredHeight();
-                FrameLayoutCompatUtils.placeViewAt(word, x, y + (mCandidateStripHeight - height)
-                        / 2, width, height);
-                x += width;
-                if (info != null) {
-                    paneView.addView(info);
-                    lastView = info;
-                    info.measure(ViewGroup.LayoutParams.WRAP_CONTENT,
-                            ViewGroup.LayoutParams.WRAP_CONTENT);
-                    final int infoWidth = info.getMeasuredWidth();
-                    FrameLayoutCompatUtils.placeViewAt(
-                            info, x - infoWidth, y, infoWidth, info.getMeasuredHeight());
-                }
-            }
-            if (x != 0) {
-                // Centering last candidates row.
-                centeringCandidates(paneView, centeringFrom, lastView, x, paneWidth);
-            }
-
-            return count - from;
+            mCandidateStripHeight = res.getDimensionPixelSize(R.dimen.candidate_strip_height);
         }
     }
 
@@ -257,7 +177,7 @@
         private final int mColorTypedWord;
         private final int mColorAutoCorrect;
         private final int mColorSuggestedCandidate;
-        private final int mCandidateCountInStrip;
+        public final int mCandidateCountInStrip;
         private final float mCenterCandidateWeight;
         private final int mCenterCandidateIndex;
         private final Drawable mMoreCandidateHint;
@@ -311,10 +231,6 @@
             mHintToSaveText = context.getText(R.string.hint_add_to_dictionary);
         }
 
-        public int getTextColor() {
-            return mColorTypedWord;
-        }
-
         private CharSequence getStyledCandidateWord(SuggestedWords suggestions, int pos) {
             final CharSequence word = suggestions.getWord(pos);
             final boolean isAutoCorrect = pos == 1 && willAutoCorrect(suggestions);
@@ -389,10 +305,11 @@
             return word;
         }
 
-        public int layout(SuggestedWords suggestions, ViewGroup stripView, ViewGroup placer,
+        public void layout(SuggestedWords suggestions, ViewGroup stripView, ViewGroup placer,
                 int stripWidth) {
             if (suggestions.isPunctuationSuggestions()) {
-                return layoutPunctuationSuggestions(suggestions, stripView);
+                layoutPunctuationSuggestions(suggestions, stripView);
+                return;
             }
 
             final int countInStrip = mCandidateCountInStrip;
@@ -449,8 +366,6 @@
                     }
                 }
             }
-
-            return countInStrip;
         }
 
         private int getCandidateWidth(int index, int maxWidth) {
@@ -482,7 +397,7 @@
             }
         }
 
-        private int layoutPunctuationSuggestions(SuggestedWords suggestions, ViewGroup stripView) {
+        private void layoutPunctuationSuggestions(SuggestedWords suggestions, ViewGroup stripView) {
             final int countInStrip = Math.min(suggestions.size(), PUNCTUATIONS_IN_STRIP);
             for (int index = 0; index < countInStrip; index++) {
                 if (index != 0) {
@@ -501,7 +416,6 @@
                 setLayoutWeight(word, 1.0f, mCandidateStripHeight);
             }
             mMoreSuggestionsAvailable = false;
-            return countInStrip;
         }
 
         public void layoutAddToDictionaryHint(CharSequence word, ViewGroup stripView,
@@ -583,8 +497,16 @@
 
         mStripParams = new SuggestionsStripParams(context, attrs, defStyle, mWords, mDividers,
                 mInfos);
-        mPaneParams = new SuggestionsPaneParams(mWords, mDividers, mInfos);
         mStripParams.mWordToSaveView.setOnClickListener(this);
+
+        mMoreSuggestionsContainer = inflater.inflate(R.layout.more_suggestions, null);
+        mMoreSuggestionsView = (MoreSuggestionsView)mMoreSuggestionsContainer
+                .findViewById(R.id.more_suggestions_view);
+        mMoreSuggestionsBuilder = new MoreSuggestions.Builder(mMoreSuggestionsView);
+        mMoreSuggestionsWindow = new PopupWindow(context);
+        mMoreSuggestionsWindow.setWindowLayoutMode(
+                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+        mMoreSuggestionsWindow.setBackgroundDrawable(null);
     }
 
     /**
@@ -594,11 +516,6 @@
     public void setListener(Listener listener, View inputView) {
         mListener = listener;
         mKeyboardView = inputView.findViewById(R.id.keyboard_view);
-        mCandidatesPane = FrameLayoutCompatUtils.getPlacer(
-                (ViewGroup)inputView.findViewById(R.id.candidates_pane));
-        mCandidatesPane.setOnClickListener(this);
-        mCandidatesPaneContainer = (ViewGroup)inputView.findViewById(
-                R.id.candidates_pane_container);
     }
 
     public void setSuggestions(SuggestedWords suggestions) {
@@ -614,15 +531,10 @@
 
     private void updateSuggestions() {
         clear();
-        closeCandidatesPane();
         if (mSuggestions.size() == 0)
             return;
 
-        final int width = getWidth();
-        final int countInStrip = mStripParams.layout(
-                mSuggestions, mCandidatesStrip, mCandidatesPlacer, width);
-        mPaneParams.layout(
-                mSuggestions, mCandidatesPane, countInStrip, mStripParams.getTextColor(), width);
+        mStripParams.layout(mSuggestions, mCandidatesStrip, mCandidatesPlacer, getWidth());
     }
 
     private static CharSequence getDebugInfo(SuggestedWords suggestions, int pos) {
@@ -648,26 +560,6 @@
         }
     }
 
-    private static void centeringCandidates(ViewGroup parent, View from, View to, int width,
-            int parentWidth) {
-        final int fromIndex = parent.indexOfChild(from);
-        final int toIndex = parent.indexOfChild(to);
-        final int offset = (parentWidth - width) / 2;
-        for (int index = fromIndex; index <= toIndex; index++) {
-            offsetMargin(parent.getChildAt(index), offset, 0);
-        }
-    }
-
-    private static void offsetMargin(View v, int dx, int dy) {
-        if (v == null)
-            return;
-        final ViewGroup.LayoutParams lp = v.getLayoutParams();
-        if (lp instanceof ViewGroup.MarginLayoutParams) {
-            final ViewGroup.MarginLayoutParams mlp = (ViewGroup.MarginLayoutParams)lp;
-            mlp.setMargins(mlp.leftMargin + dx, mlp.topMargin + dy, 0, 0);
-        }
-    }
-
     private static float getTextScaleX(CharSequence text, int maxWidth, TextPaint paint) {
         paint.setTextScaleX(1.0f);
         final int width = getTextWidth(text, paint);
@@ -730,25 +622,6 @@
         }
     }
 
-    private void expandCandidatesPane() {
-        mCandidatesPaneContainer.setMinimumHeight(mKeyboardView.getMeasuredHeight());
-        mCandidatesPaneContainer.setVisibility(VISIBLE);
-        mKeyboardView.setVisibility(GONE);
-    }
-
-    private void closeCandidatesPane() {
-        mCandidatesPaneContainer.setVisibility(GONE);
-        mKeyboardView.setVisibility(VISIBLE);
-    }
-
-    private void toggleCandidatesPane() {
-        if (mCandidatesPaneContainer.getVisibility() == VISIBLE) {
-            closeCandidatesPane();
-        } else {
-            expandCandidatesPane();
-        }
-    }
-
     public void onAutoCorrectionInverted(CharSequence autoCorrectedWord) {
         final CharSequence inverted = mStripParams.getInvertedText(autoCorrectedWord);
         if (inverted == null)
@@ -785,8 +658,7 @@
         mCandidatesPlacer.removeAllViews();
         mCandidatesPlacer.addView(mCandidatesStrip);
         mCandidatesStrip.removeAllViews();
-        mCandidatesPane.removeAllViews();
-        closeCandidatesPane();
+        mMoreSuggestionsWindow.dismiss();
     }
 
     private void hidePreview() {
@@ -823,16 +695,103 @@
         }
     }
 
+    private final KeyboardActionListener mMoreSuggestionsListener =
+            new KeyboardActionListener.Adapter() {
+        @Override
+        public boolean onCustomRequest(int requestCode) {
+            final int index = requestCode;
+            final CharSequence word = mSuggestions.getWord(index);
+            mListener.pickSuggestionManually(index, word);
+            mMoreSuggestionsView.dismissMoreKeysPanel();
+            return true;
+        }
+
+        @Override
+        public void onCancelInput() {
+            mMoreSuggestionsView.dismissMoreKeysPanel();
+        }
+    };
+
+    private final MoreKeysPanel.Controller mMoreSuggestionsController =
+            new MoreKeysPanel.Controller() {
+        @Override
+        public boolean dismissMoreKeysPanel() {
+            if (mMoreSuggestionsWindow.isShowing()) {
+                mMoreSuggestionsWindow.dismiss();
+                return true;
+            }
+            return false;
+        }
+    };
+
     @Override
     public boolean onLongClick(View view) {
-        if (mStripParams.mMoreSuggestionsAvailable) {
-            toggleCandidatesPane();
+        final SuggestionsStripParams params = mStripParams;
+        if (params.mMoreSuggestionsAvailable) {
+            final int stripWidth = getWidth();
+            final View container = mMoreSuggestionsContainer;
+            final int maxWidth = stripWidth - container.getPaddingLeft()
+                    - container.getPaddingRight();
+            final DisplayMetrics dm = getContext().getResources().getDisplayMetrics();
+            // TODO: Revise how we determine the height
+            final int maxHeight = dm.heightPixels - mKeyboardView.getHeight() - getHeight() * 3;
+            final MoreSuggestions.Builder builder = mMoreSuggestionsBuilder;
+            builder.layout(mSuggestions, params.mCandidateCountInStrip, maxWidth, maxHeight);
+            mMoreSuggestionsView.setKeyboard(builder.build());
+            container.measure(
+                    ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
+
+            final MoreKeysPanel moreKeysPanel = mMoreSuggestionsView;
+            final int pointX = stripWidth / 2;
+            final int pointY = 0;
+            moreKeysPanel.showMoreKeysPanel(
+                    this, mMoreSuggestionsController, pointX, pointY,
+                    mMoreSuggestionsWindow, mMoreSuggestionsListener);
+            // TODO: Should figure out how to select the pointer tracker correctly.
+            final PointerTracker tracker = PointerTracker.getPointerTracker(0, moreKeysPanel);
+            final int translatedX = moreKeysPanel.translateX(tracker.getLastX());
+            final int translatedY = moreKeysPanel.translateY(tracker.getLastY());
+            tracker.onShowMoreKeysPanel(
+                    translatedX, translatedY, SystemClock.uptimeMillis(), moreKeysPanel);
+            view.setPressed(false);
+            // TODO: Should gray out the keyboard here as well?
             return true;
         }
         return false;
     }
 
     @Override
+    public boolean dispatchTouchEvent(MotionEvent me) {
+        if (!mMoreSuggestionsWindow.isShowing()) {
+            return super.dispatchTouchEvent(me);
+        }
+        final int action = me.getAction();
+        final long eventTime = me.getEventTime();
+        final int index = me.getActionIndex();
+        final int id = me.getPointerId(index);
+        final PointerTracker tracker = PointerTracker.getPointerTracker(id, mMoreSuggestionsView);
+        final int x = mMoreSuggestionsView.translateX((int)me.getX(index));
+        final int y = mMoreSuggestionsView.translateY((int)me.getY(index));
+        switch (action) {
+        case MotionEvent.ACTION_DOWN:
+        case MotionEvent.ACTION_POINTER_DOWN:
+            tracker.onDownEvent(x, y, eventTime, mMoreSuggestionsView);
+            break;
+        case MotionEvent.ACTION_UP:
+        case MotionEvent.ACTION_POINTER_UP:
+            tracker.onUpEvent(x, y, eventTime);
+            break;
+        case MotionEvent.ACTION_MOVE:
+            tracker.onMoveEvent(x, y, eventTime);
+            break;
+        case MotionEvent.ACTION_CANCEL:
+            tracker.onCancelEvent(x, y, eventTime);
+            break;
+        }
+        return true;
+    }
+
+    @Override
     public void onClick(View view) {
         if (view == mStripParams.mWordToSaveView) {
             addToDictionary((CharSequence)view.getTag());
@@ -840,11 +799,6 @@
             return;
         }
 
-        if (view == mCandidatesPane) {
-            closeCandidatesPane();
-            return;
-        }
-
         final Object tag = view.getTag();
         if (!(tag instanceof Integer))
             return;
@@ -854,9 +808,6 @@
 
         final CharSequence word = mSuggestions.getWord(index);
         mListener.pickSuggestionManually(index, word);
-        // Because some punctuation letters are not treated as word separator depending on locale,
-        // {@link #setSuggestions} might not be called and candidates pane left opened.
-        closeCandidatesPane();
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 7559108..da6c221 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -118,6 +118,12 @@
      */
     public static final String SUBTYPE_EXTRA_VALUE_ASCII_CAPABLE = "AsciiCapable";
 
+    /**
+     * The subtype extra value used to indicate that the subtype keyboard layout should be loaded
+     * from the specified locale.
+     */
+    public static final String SUBTYPE_EXTRA_VALUE_KEYBOARD_LOCALE = "KeyboardLocale";
+
     private static final int EXTENDED_TOUCHABLE_REGION_HEIGHT = 100;
 
     // How many continuous deletes at which to start deleting at a higher speed.
diff --git a/java/src/com/android/inputmethod/latin/MoreSuggestions.java b/java/src/com/android/inputmethod/latin/MoreSuggestions.java
new file mode 100644
index 0000000..0446fb2
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/MoreSuggestions.java
@@ -0,0 +1,203 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.graphics.Paint;
+import android.text.TextUtils;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.keyboard.KeyboardSwitcher;
+import com.android.inputmethod.keyboard.KeyboardView;
+import com.android.inputmethod.keyboard.internal.KeyboardBuilder;
+import com.android.inputmethod.keyboard.internal.KeyboardParams;
+import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo;
+
+public class MoreSuggestions extends Keyboard {
+    private static final boolean DBG = LatinImeLogger.sDBG;
+
+    public static final int SUGGESTION_CODE_BASE = 1024;
+
+    private MoreSuggestions(Builder.MoreSuggestionsParam params) {
+        super(params);
+    }
+
+    public static class Builder extends KeyboardBuilder<Builder.MoreSuggestionsParam> {
+        private final MoreSuggestionsView mPaneView;
+        private SuggestedWords mSuggestions;
+        private int mFromPos;
+        private int mToPos;
+
+        public static class MoreSuggestionsParam extends KeyboardParams {
+            private final int[] mWidths = new int[CandidateView.MAX_SUGGESTIONS];
+            private final int[] mRowNumbers = new int[CandidateView.MAX_SUGGESTIONS];
+            private final int[] mColumnOrders = new int[CandidateView.MAX_SUGGESTIONS];
+            private final int[] mNumColumnsInRow = new int[CandidateView.MAX_SUGGESTIONS];
+            private static final int MAX_COLUMNS_IN_ROW = 3;
+            private int mNumRows;
+
+            public int layout(SuggestedWords suggestions, int fromPos, int maxWidth, int maxHeight,
+                    KeyboardView view) {
+                clearKeys();
+                final Paint paint = new Paint();
+                paint.setAntiAlias(true);
+                final int padding = (int) view.getContext().getResources()
+                        .getDimension(R.dimen.more_suggestions_key_horizontal_padding);
+
+                int row = 0;
+                int pos = fromPos, rowStartPos = fromPos;
+                final int size = Math.min(suggestions.size(), CandidateView.MAX_SUGGESTIONS);
+                while (pos < size) {
+                    final CharSequence word = suggestions.getWord(pos);
+                    // TODO: Should take care of text x-scaling.
+                    mWidths[pos] = (int)view.getDefaultLabelWidth(word, paint) + padding;
+                    final int numColumn = pos - rowStartPos + 1;
+                    if (numColumn > MAX_COLUMNS_IN_ROW
+                            || !fitInWidth(rowStartPos, pos + 1, maxWidth / numColumn)) {
+                        if ((row + 1) * mDefaultRowHeight > maxHeight) {
+                            break;
+                        }
+                        mNumColumnsInRow[row] = pos - rowStartPos;
+                        rowStartPos = pos;
+                        row++;
+                    }
+                    mColumnOrders[pos] = pos - rowStartPos;
+                    mRowNumbers[pos] = row;
+                    pos++;
+                }
+                mNumColumnsInRow[row] = pos - rowStartPos;
+                mNumRows = row + 1;
+                mWidth = mOccupiedWidth = calcurateMaxRowWidth(fromPos, pos);
+                mHeight = mOccupiedHeight = mNumRows * mDefaultRowHeight + mVerticalGap;
+                return pos - fromPos;
+            }
+
+            private boolean fitInWidth(int startPos, int endPos, int width) {
+                for (int pos = startPos; pos < endPos; pos++) {
+                    if (mWidths[pos] > width)
+                        return false;
+                }
+                return true;
+            }
+
+            private int calcurateMaxRowWidth(int startPos, int endPos) {
+                int maxRowWidth = 0;
+                int pos = startPos;
+                for (int row = 0; row < mNumRows; row++) {
+                    final int numColumn = mNumColumnsInRow[row];
+                    int maxKeyWidth = 0;
+                    while (pos < endPos && mRowNumbers[pos] == row) {
+                        maxKeyWidth = Math.max(maxKeyWidth, mWidths[pos]);
+                        pos++;
+                    }
+                    maxRowWidth = Math.max(maxRowWidth, maxKeyWidth * numColumn);
+                }
+                return maxRowWidth;
+            }
+
+            private static final int[][] COLUMN_ORDER_TO_NUMBER = {
+                { 0, },
+                { 1, 0, },
+                { 2, 0, 1},
+            };
+
+            private int getColumnNumber(int pos) {
+                final int columnOrder = mColumnOrders[pos];
+                final int numColumn = mNumColumnsInRow[mRowNumbers[pos]];
+                return COLUMN_ORDER_TO_NUMBER[numColumn - 1][columnOrder];
+            }
+
+            public int getX(int pos) {
+                final int columnNumber = getColumnNumber(pos);
+                return columnNumber * getWidth(pos);
+            }
+
+            public int getY(int pos) {
+                final int row = mRowNumbers[pos];
+                return (mNumRows -1 - row) * mDefaultRowHeight + mTopPadding;
+            }
+
+            public int getWidth(int pos) {
+                final int row = mRowNumbers[pos];
+                final int numColumn = mNumColumnsInRow[row];
+                return mWidth / numColumn;
+            }
+
+            public int getFlags(int pos) {
+                int rowFlags = 0;
+
+                final int row = mRowNumbers[pos];
+                if (row == 0)
+                    rowFlags |= Keyboard.EDGE_BOTTOM;
+                if (row == mNumRows - 1)
+                    rowFlags |= Keyboard.EDGE_TOP;
+
+                final int numColumn = mNumColumnsInRow[row];
+                final int column = getColumnNumber(pos);
+                if (column == 0)
+                    rowFlags |= Keyboard.EDGE_LEFT;
+                if (column == numColumn - 1)
+                    rowFlags |= Keyboard.EDGE_RIGHT;
+
+                return rowFlags;
+            }
+        }
+
+        public Builder(MoreSuggestionsView paneView) {
+            super(paneView.getContext(), new MoreSuggestionsParam());
+            mPaneView = paneView;
+        }
+
+        public Builder layout(SuggestedWords suggestions, int fromPos, int maxWidth,
+                int maxHeight) {
+            final Keyboard keyboard = KeyboardSwitcher.getInstance().getLatinKeyboard();
+            final int xmlId = R.xml.kbd_suggestions_pane_template;
+            load(keyboard.mId.cloneWithNewXml(mResources.getResourceEntryName(xmlId), xmlId));
+            mParams.mVerticalGap = mParams.mTopPadding = keyboard.mVerticalGap / 2;
+
+            final int count = mParams.layout(suggestions, fromPos, maxWidth, maxHeight, mPaneView);
+            mFromPos = fromPos;
+            mToPos = fromPos + count;
+            mSuggestions = suggestions;
+            return this;
+        }
+
+        private static String getDebugInfo(SuggestedWords suggestions, int pos) {
+            if (!DBG) return null;
+            final SuggestedWordInfo wordInfo = suggestions.getInfo(pos);
+            if (wordInfo == null) return null;
+            final String info = wordInfo.getDebugString();
+            if (TextUtils.isEmpty(info)) return null;
+            return info;
+        }
+
+        @Override
+        public MoreSuggestions build() {
+            final MoreSuggestionsParam params = mParams;
+            for (int pos = mFromPos; pos < mToPos; pos++) {
+                final String word = mSuggestions.getWord(pos).toString();
+                final String info = getDebugInfo(mSuggestions, pos);
+                final int index = pos + SUGGESTION_CODE_BASE;
+                final Key key = new Key(
+                        params, word, info, null, index, null, params.getX(pos), params.getY(pos),
+                        params.getWidth(pos), params.mDefaultRowHeight, params.getFlags(pos));
+                params.onAddKey(key);
+            }
+            return new MoreSuggestions(params);
+        }
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/MoreSuggestionsView.java b/java/src/com/android/inputmethod/latin/MoreSuggestionsView.java
new file mode 100644
index 0000000..8284901
--- /dev/null
+++ b/java/src/com/android/inputmethod/latin/MoreSuggestionsView.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ *
+ * 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.
+ */
+
+package com.android.inputmethod.latin;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.util.AttributeSet;
+import android.view.Gravity;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import com.android.inputmethod.keyboard.Key;
+import com.android.inputmethod.keyboard.KeyDetector;
+import com.android.inputmethod.keyboard.Keyboard;
+import com.android.inputmethod.keyboard.KeyboardActionListener;
+import com.android.inputmethod.keyboard.KeyboardView;
+import com.android.inputmethod.keyboard.MoreKeysPanel;
+import com.android.inputmethod.keyboard.PointerTracker;
+import com.android.inputmethod.keyboard.PointerTracker.DrawingProxy;
+import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
+
+import java.util.List;
+
+/**
+ * A view that renders a virtual {@link MoreSuggestions}. It handles rendering of keys and detecting
+ * key presses and touch movements.
+ */
+public class MoreSuggestionsView extends KeyboardView implements MoreKeysPanel {
+    private final int[] mCoordinates = new int[2];
+
+    private final KeyDetector mKeyDetector;
+
+    private Controller mController;
+    private KeyboardActionListener mListener;
+    private int mOriginX;
+    private int mOriginY;
+
+    private static class SuggestionsPaneKeyDetector extends KeyDetector {
+        private final int mSlideAllowanceSquare;
+        private final int mSlideAllowanceSquareTop;
+
+        public SuggestionsPaneKeyDetector(float slideAllowance) {
+            super(/* keyHysteresisDistance */0);
+            mSlideAllowanceSquare = (int)(slideAllowance * slideAllowance);
+            // Top slide allowance is slightly longer (sqrt(2) times) than other edges.
+            mSlideAllowanceSquareTop = mSlideAllowanceSquare * 2;
+        }
+
+        @Override
+        public boolean alwaysAllowsSlidingInput() {
+            return true;
+        }
+
+        @Override
+        protected int getMaxNearbyKeys() {
+            // No nearby key will be returned.
+            return 1;
+        }
+
+        @Override
+        public int getKeyIndexAndNearbyCodes(int x, int y, final int[] allCodes) {
+            final List<Key> keys = getKeyboard().mKeys;
+            final int touchX = getTouchX(x);
+            final int touchY = getTouchY(y);
+
+            int nearestIndex = NOT_A_KEY;
+            int nearestDist = (y < 0) ? mSlideAllowanceSquareTop : mSlideAllowanceSquare;
+            final int keyCount = keys.size();
+            for (int index = 0; index < keyCount; index++) {
+                final int dist = keys.get(index).squaredDistanceToEdge(touchX, touchY);
+                if (dist < nearestDist) {
+                    nearestIndex = index;
+                    nearestDist = dist;
+                }
+            }
+
+            if (allCodes != null && nearestIndex != NOT_A_KEY)
+                allCodes[0] = keys.get(nearestIndex).mCode;
+            return nearestIndex;
+        }
+    }
+
+    private static final TimerProxy EMPTY_TIMER_PROXY = new TimerProxy.Adapter();
+
+    private final KeyboardActionListener mSuggestionsPaneListener =
+            new KeyboardActionListener.Adapter() {
+        @Override
+        public void onPress(int primaryCode, boolean withSliding) {
+            mListener.onPress(primaryCode, withSliding);
+        }
+
+        @Override
+        public void onRelease(int primaryCode, boolean withSliding) {
+            mListener.onRelease(primaryCode, withSliding);
+        }
+
+        @Override
+        public void onCodeInput(int primaryCode, int[] keyCodes, int x, int y) {
+            mListener.onCustomRequest(primaryCode - MoreSuggestions.SUGGESTION_CODE_BASE);
+        }
+
+        @Override
+        public void onCancelInput() {
+            mListener.onCancelInput();
+        }
+    };
+
+    public MoreSuggestionsView(Context context, AttributeSet attrs) {
+        this(context, attrs, R.attr.suggestionsPaneViewStyle);
+    }
+
+    public MoreSuggestionsView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+
+        final Resources res = context.getResources();
+        // Override default ProximityKeyDetector.
+        mKeyDetector = new SuggestionsPaneKeyDetector(res.getDimension(
+                R.dimen.more_suggestions_slide_allowance));
+        // Remove gesture detector on suggestions pane
+        setKeyPreviewPopupEnabled(false, 0);
+    }
+
+    @Override
+    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        final Keyboard keyboard = getKeyboard();
+        if (keyboard != null) {
+            final int width = keyboard.mOccupiedWidth + getPaddingLeft() + getPaddingRight();
+            final int height = keyboard.mOccupiedHeight + getPaddingTop() + getPaddingBottom();
+            setMeasuredDimension(width, height);
+        } else {
+            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
+        }
+    }
+
+    @Override
+    public void setKeyboard(Keyboard keyboard) {
+        super.setKeyboard(keyboard);
+        mKeyDetector.setKeyboard(keyboard, -getPaddingLeft(),
+                -getPaddingTop() + mVerticalCorrection);
+    }
+
+    @Override
+    public KeyDetector getKeyDetector() {
+        return mKeyDetector;
+    }
+
+    @Override
+    public KeyboardActionListener getKeyboardActionListener() {
+        return mSuggestionsPaneListener;
+    }
+
+    @Override
+    public DrawingProxy getDrawingProxy() {
+        return  this;
+    }
+
+    @Override
+    public TimerProxy getTimerProxy() {
+        return EMPTY_TIMER_PROXY;
+    }
+
+    @Override
+    public void setKeyPreviewPopupEnabled(boolean previewEnabled, int delay) {
+        // Suggestions pane needs no pop-up key preview displayed, so we pass always false with a
+        // delay of 0. The delay does not matter actually since the popup is not shown anyway.
+        super.setKeyPreviewPopupEnabled(false, 0);
+    }
+
+    @Override
+    public void setShifted(boolean shifted) {
+        // Nothing to do with.
+    }
+
+    @Override
+    public void showMoreKeysPanel(View parentView, Controller controller, int pointX, int pointY,
+            PopupWindow window, KeyboardActionListener listener) {
+        mController = controller;
+        mListener = listener;
+        final View container = (View)getParent();
+        final MoreSuggestions pane = (MoreSuggestions)getKeyboard();
+
+        parentView.getLocationInWindow(mCoordinates);
+        final int paneLeft = pointX - (pane.mOccupiedWidth / 2) + parentView.getPaddingLeft();
+        final int x = wrapUp(Math.max(0, Math.min(paneLeft,
+                parentView.getWidth() - pane.mOccupiedWidth))
+                - container.getPaddingLeft() + mCoordinates[0],
+                container.getMeasuredWidth(), 0, parentView.getWidth());
+        final int y = pointY
+                - (container.getMeasuredHeight() - container.getPaddingBottom())
+                + parentView.getPaddingTop() + mCoordinates[1];
+
+        window.setContentView(container);
+        window.setWidth(container.getMeasuredWidth());
+        window.setHeight(container.getMeasuredHeight());
+        window.showAtLocation(parentView, Gravity.NO_GRAVITY, x, y);
+
+        mOriginX = x + container.getPaddingLeft() - mCoordinates[0];
+        mOriginY = y + container.getPaddingTop() - mCoordinates[1];
+    }
+
+    private static int wrapUp(int x, int width, int left, int right) {
+        if (x < left)
+            return left;
+        if (x + width > right)
+            return right - width;
+        return x;
+    }
+
+    @Override
+    public boolean dismissMoreKeysPanel() {
+        return mController.dismissMoreKeysPanel();
+    }
+
+    @Override
+    public int translateX(int x) {
+        return x - mOriginX;
+    }
+
+    @Override
+    public int translateY(int y) {
+        return y - mOriginY;
+    }
+}
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index b79c441..1e2ef48 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -336,7 +336,9 @@
                 R.string.auto_correction_threshold_mode_index_off);
         final String currentSetting = mAutoCorrectionThresholdPreference.getValue();
         mBigramSuggestion.setEnabled(!currentSetting.equals(autoCorrectionOff));
-        mBigramPrediction.setEnabled(!currentSetting.equals(autoCorrectionOff));
+        if (null != mBigramPrediction) {
+            mBigramPrediction.setEnabled(!currentSetting.equals(autoCorrectionOff));
+        }
     }
 
     public Activity getActivityInternal() {
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 87d8549..a60f444 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -138,7 +138,7 @@
         mEnabledLanguagesOfCurrentInputMethod.clear();
         mEnabledKeyboardSubtypesOfCurrentInputMethod.clear();
         for (InputMethodSubtypeCompatWrapper ims : mAllEnabledSubtypesOfCurrentInputMethod) {
-            final String locale = ims.getLocale();
+            final String locale = getSubtypeLocale(ims);
             final String mode = ims.getMode();
             mLocaleSplitter.setString(locale);
             if (mLocaleSplitter.hasNext()) {
@@ -167,7 +167,7 @@
             Log.d(TAG, "Update shortcut IME from : "
                     + (mShortcutInputMethodInfo == null
                             ? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
-                    + (mShortcutSubtype == null ? "<null>" : (mShortcutSubtype.getLocale()
+                    + (mShortcutSubtype == null ? "<null>" : (getSubtypeLocale(mShortcutSubtype)
                             + ", " + mShortcutSubtype.getMode())));
         }
         // TODO: Update an icon for shortcut IME
@@ -189,11 +189,17 @@
             Log.d(TAG, "Update shortcut IME to : "
                     + (mShortcutInputMethodInfo == null
                             ? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
-                    + (mShortcutSubtype == null ? "<null>" : (mShortcutSubtype.getLocale()
+                    + (mShortcutSubtype == null ? "<null>" : (getSubtypeLocale(mShortcutSubtype)
                             + ", " + mShortcutSubtype.getMode())));
         }
     }
 
+    private static String getSubtypeLocale(InputMethodSubtypeCompatWrapper subtype) {
+        final String keyboardLocale = subtype.getExtraValueOf(
+                LatinIME.SUBTYPE_EXTRA_VALUE_KEYBOARD_LOCALE);
+        return keyboardLocale != null ? keyboardLocale : subtype.getLocale();
+    }
+
     // Update the current subtype. LatinIME.onCurrentInputMethodSubtypeChanged calls this function.
     public void updateSubtype(InputMethodSubtypeCompatWrapper newSubtype) {
         final String newLocale;
@@ -206,7 +212,7 @@
             newLocale = "en_US";
             newMode = KEYBOARD_MODE;
         } else {
-            newLocale = newSubtype.getLocale();
+            newLocale = getSubtypeLocale(newSubtype);
             newMode = newSubtype.getMode();
         }
         if (DBG) {
@@ -332,7 +338,7 @@
             final String imiPackageName = imi.getPackageName();
             if (DBG) {
                 Log.d(TAG, "Update icons of IME: " + imiPackageName + ","
-                        + subtype.getLocale() + "," + subtype.getMode());
+                        + getSubtypeLocale(subtype) + "," + subtype.getMode());
             }
             if (subtype != null) {
                 return pm.getDrawable(imiPackageName, subtype.getIconResId(),
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/PopupCharactersParserTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParserTests.java
similarity index 93%
rename from tests/src/com/android/inputmethod/keyboard/internal/PopupCharactersParserTests.java
rename to tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParserTests.java
index e4a1c68..798fca0 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/PopupCharactersParserTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParserTests.java
@@ -22,7 +22,7 @@
 import com.android.inputmethod.keyboard.Keyboard;
 import com.android.inputmethod.latin.R;
 
-public class PopupCharactersParserTests extends AndroidTestCase {
+public class MoreKeySpecParserTests extends AndroidTestCase {
     private Resources mRes;
 
     private static final int ICON_SETTINGS_KEY = 5;
@@ -45,28 +45,28 @@
         mCodeSettings = res.getInteger(codeId);
     }
 
-    private void assertParser(String message, String popupSpec, String expectedLabel,
+    private void assertParser(String message, String moreKeySpec, String expectedLabel,
             String expectedOutputText, int expectedIcon, int expectedCode) {
-        String actualLabel = PopupCharactersParser.getLabel(popupSpec);
+        String actualLabel = MoreKeySpecParser.getLabel(moreKeySpec);
         assertEquals(message + ": label:", expectedLabel, actualLabel);
 
-        String actualOutputText = PopupCharactersParser.getOutputText(popupSpec);
+        String actualOutputText = MoreKeySpecParser.getOutputText(moreKeySpec);
         assertEquals(message + ": ouptputText:", expectedOutputText, actualOutputText);
 
-        int actualIcon = PopupCharactersParser.getIconId(popupSpec);
+        int actualIcon = MoreKeySpecParser.getIconId(moreKeySpec);
         assertEquals(message + ": icon:", expectedIcon, actualIcon);
 
-        int actualCode = PopupCharactersParser.getCode(mRes, popupSpec);
+        int actualCode = MoreKeySpecParser.getCode(mRes, moreKeySpec);
         assertEquals(message + ": codes value:", expectedCode, actualCode);
     }
 
-    private void assertParserError(String message, String popupSpec, String expectedLabel,
+    private void assertParserError(String message, String moreKeySpec, String expectedLabel,
             String expectedOutputText, int expectedIcon, int expectedCode) {
         try {
-            assertParser(message, popupSpec, expectedLabel, expectedOutputText, expectedIcon,
+            assertParser(message, moreKeySpec, expectedLabel, expectedOutputText, expectedIcon,
                     expectedCode);
             fail(message);
-        } catch (PopupCharactersParser.PopupCharactersParserError pcpe) {
+        } catch (MoreKeySpecParser.MoreKeySpecParserError pcpe) {
             // success.
         }
     }
