diff --git a/java/res/values-ar/donottranslate-altchars.xml b/java/res/values-ar/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-ar/donottranslate-altchars.xml
rename to java/res/values-ar/donottranslate-more-keys.xml
diff --git a/java/res/values-ca/donottranslate-altchars.xml b/java/res/values-ca/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-ca/donottranslate-altchars.xml
rename to java/res/values-ca/donottranslate-more-keys.xml
diff --git a/java/res/values-cs/donottranslate-altchars.xml b/java/res/values-cs/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-cs/donottranslate-altchars.xml
rename to java/res/values-cs/donottranslate-more-keys.xml
diff --git a/java/res/values-da/donottranslate-altchars.xml b/java/res/values-da/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-da/donottranslate-altchars.xml
rename to java/res/values-da/donottranslate-more-keys.xml
diff --git a/java/res/values-de-rZZ/donottranslate-altchars.xml b/java/res/values-de-rZZ/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-de-rZZ/donottranslate-altchars.xml
rename to java/res/values-de-rZZ/donottranslate-more-keys.xml
diff --git a/java/res/values-de/donottranslate-altchars.xml b/java/res/values-de/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-de/donottranslate-altchars.xml
rename to java/res/values-de/donottranslate-more-keys.xml
diff --git a/java/res/values-en/donottranslate-altchars.xml b/java/res/values-en/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-en/donottranslate-altchars.xml
rename to java/res/values-en/donottranslate-more-keys.xml
diff --git a/java/res/values-es/donottranslate-altchars.xml b/java/res/values-es/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-es/donottranslate-altchars.xml
rename to java/res/values-es/donottranslate-more-keys.xml
diff --git a/java/res/values-fi/donottranslate-altchars.xml b/java/res/values-fi/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-fi/donottranslate-altchars.xml
rename to java/res/values-fi/donottranslate-more-keys.xml
diff --git a/java/res/values-fr/donottranslate-altchars.xml b/java/res/values-fr/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-fr/donottranslate-altchars.xml
rename to java/res/values-fr/donottranslate-more-keys.xml
diff --git a/java/res/values-hr/donottranslate-altchars.xml b/java/res/values-hr/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-hr/donottranslate-altchars.xml
rename to java/res/values-hr/donottranslate-more-keys.xml
diff --git a/java/res/values-hu/donottranslate-altchars.xml b/java/res/values-hu/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-hu/donottranslate-altchars.xml
rename to java/res/values-hu/donottranslate-more-keys.xml
diff --git a/java/res/values-it/donottranslate-altchars.xml b/java/res/values-it/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-it/donottranslate-altchars.xml
rename to java/res/values-it/donottranslate-more-keys.xml
diff --git a/java/res/values-lt/donottranslate-altchars.xml b/java/res/values-lt/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-lt/donottranslate-altchars.xml
rename to java/res/values-lt/donottranslate-more-keys.xml
diff --git a/java/res/values-lv/donottranslate-altchars.xml b/java/res/values-lv/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-lv/donottranslate-altchars.xml
rename to java/res/values-lv/donottranslate-more-keys.xml
diff --git a/java/res/values-nb/donottranslate-altchars.xml b/java/res/values-nb/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-nb/donottranslate-altchars.xml
rename to java/res/values-nb/donottranslate-more-keys.xml
diff --git a/java/res/values-nl/donottranslate-altchars.xml b/java/res/values-nl/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-nl/donottranslate-altchars.xml
rename to java/res/values-nl/donottranslate-more-keys.xml
diff --git a/java/res/values-pl/donottranslate-altchars.xml b/java/res/values-pl/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-pl/donottranslate-altchars.xml
rename to java/res/values-pl/donottranslate-more-keys.xml
diff --git a/java/res/values-pt/donottranslate-altchars.xml b/java/res/values-pt/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-pt/donottranslate-altchars.xml
rename to java/res/values-pt/donottranslate-more-keys.xml
diff --git a/java/res/values-rm/donottranslate-altchars.xml b/java/res/values-rm/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-rm/donottranslate-altchars.xml
rename to java/res/values-rm/donottranslate-more-keys.xml
diff --git a/java/res/values-ro/donottranslate-altchars.xml b/java/res/values-ro/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-ro/donottranslate-altchars.xml
rename to java/res/values-ro/donottranslate-more-keys.xml
diff --git a/java/res/values-ru/donottranslate-altchars.xml b/java/res/values-ru/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-ru/donottranslate-altchars.xml
rename to java/res/values-ru/donottranslate-more-keys.xml
diff --git a/java/res/values-sk/donottranslate-altchars.xml b/java/res/values-sk/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-sk/donottranslate-altchars.xml
rename to java/res/values-sk/donottranslate-more-keys.xml
diff --git a/java/res/values-sv/donottranslate-altchars.xml b/java/res/values-sv/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-sv/donottranslate-altchars.xml
rename to java/res/values-sv/donottranslate-more-keys.xml
diff --git a/java/res/values-sw600dp/config.xml b/java/res/values-sw600dp/config.xml
index 17aeff7cc14f74e0ab6e30b630715f5f090b95e7..1854a869673db7bb14529dd317b6bc68525c7024 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-sw768dp/config.xml b/java/res/values-sw768dp/config.xml
index 8b4ff367e9f3ef875a0c73a7e69a50089aa8f09d..a438fe964cc72cad92dfe7783e2db5abc3a2eede 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-tr/donottranslate-altchars.xml b/java/res/values-tr/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values-tr/donottranslate-altchars.xml
rename to java/res/values-tr/donottranslate-more-keys.xml
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 734004f5aba26f3d013440726c45b09f87ad3688..fdeca258ff8109ea1a1b8850bfc1a6e694962d3c 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -95,8 +95,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 +153,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 +178,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 28cbc95490a5ad921b424be3c4dd442f00e5daa9..923e37d85f2cc2a1ffa4fd8042a47110a0725327 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/donottranslate-altchars.xml b/java/res/values/donottranslate-more-keys.xml
similarity index 100%
rename from java/res/values/donottranslate-altchars.xml
rename to java/res/values/donottranslate-more-keys.xml
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index eb5b749dd718e7e35374e66edcaf450b599e46d5..ddc0634f4182f344c080e915611e518c7cf375bf 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>
diff --git a/java/res/xml-sw600dp/kbd_key_styles.xml b/java/res/xml-sw600dp/kbd_key_styles.xml
index 43b6623a9bf454b2dc48a69a6b691e5d92d0f93d..d94c3fa0aa0a57c9e83b38f78fac4739df2459a5 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/alternates_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/alternates_for_popular_domain" />
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_qwerty_row1.xml b/java/res/xml-sw600dp/kbd_qwerty_row1.xml
index c7dfcc83def0d574986867a9d8fb5f376932b541..1756d8357cc7fc58b0dad24dd4c548adb4c5cc18 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/alternates_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/alternates_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 78004fe4fc81ceff9dc0d18618babc221718e828..d403db1b12ba125d4e15f9decdde183a4c3a8e27 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/alternates_for_a"
             latin:keyXPos="4.5%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_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 456f3c8caf0728721b20feeece6c5d6c5ec9c85d..04f39ed662ca2c8ef4ba4e30a9080f5893fe2ec9 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/alternates_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 4c978cb2c1514a392d524cd67f03796876cae9af..ef0292279890c17aa21d4f42ee4d9ffedc90f499 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 25453160f19bb80975aefaf41cb8681db7818ab1..b84443078fc4d2934b6656df531a377326cdb19e 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 0ae3ae474796ab41cd41a0099f070136ed984124..f9b647cdfbd14c23f595b5c90c3ae00f4f302bd5 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 50d4d4b10d6cc7ecf080410d9891a2346389ec8e..637201f45616e8f70cc42578fa8d780c8110505a 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/alternates_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/alternates_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 4c20f51ca228929351b8cf99f38272766a6cb0b3..275df50a59b4b9933f4d01c5a0f54d7b13ab0f6b 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 406b4e670f1d795f54f85a5b9a4eed6b3d0ae9fb..fbe8248848a742e822612526a8aab2141c372ecb 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/alternates_for_a" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/alternates_for_z" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/alternates_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/alternates_for_q"
             latin:keyXPos="5.0%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_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/alternates_for_w" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 fc2247cb0def4a0df478ed49629075d6233dc19a..a8adbd34cde1cb8e9962042c91e44dade1140d5d 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 3d177e72d26e4ca4cc0467947eacb24bf3c31f0e..75fe8b5167fdeb6a8ea4c97cf6ace6e700a29dc5 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/alternates_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/alternates_for_z" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/alternates_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/alternates_for_y" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 2f4b95e601be09b2ec5e25cf7938c75d0a8db3bf..5d36ebc84c67933e703b55128915f5e7deaa14bc 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/alternates_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 505913726a9e959aab5a7359ba71259e544714fe..9c768df4985661f867015ea16f6fb358f3713ac5 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/alternates_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/alternates_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/alternates_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_for_l" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+            latin:moreKeys="@string/alternates_for_scandinavia_row2_10" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
+            latin:moreKeys="@string/alternates_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/alternates_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 49243eb5ce39847453cba48797fba10a0d44f7b7..805b963235199404963f2090120aab0f71151f17 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/alternates_for_a"
             latin:keyXPos="5.0%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_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 420e46cce6776ee91ffd4a56cbc1d17615772aa9..f67f8a8bca1d8265b469278c5f2e93c89fc8ade6 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/alternates_for_symbols_1" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_2"
-            latin:popupCharacters="@string/alternates_for_symbols_2" />
+            latin:moreKeys="@string/alternates_for_symbols_2" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_3"
-            latin:popupCharacters="@string/alternates_for_symbols_3" />
+            latin:moreKeys="@string/alternates_for_symbols_3" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_4"
-            latin:popupCharacters="@string/alternates_for_symbols_4" />
+            latin:moreKeys="@string/alternates_for_symbols_4" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_5"
-            latin:popupCharacters="@string/alternates_for_symbols_5" />
+            latin:moreKeys="@string/alternates_for_symbols_5" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_6"
-            latin:popupCharacters="@string/alternates_for_symbols_6" />
+            latin:moreKeys="@string/alternates_for_symbols_6" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_7"
-            latin:popupCharacters="@string/alternates_for_symbols_7" />
+            latin:moreKeys="@string/alternates_for_symbols_7" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_8"
-            latin:popupCharacters="@string/alternates_for_symbols_8" />
+            latin:moreKeys="@string/alternates_for_symbols_8" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_9"
-            latin:popupCharacters="@string/alternates_for_symbols_9" />
+            latin:moreKeys="@string/alternates_for_symbols_9" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_0"
-            latin:popupCharacters="@string/alternates_for_symbols_0" />
+            latin:moreKeys="@string/alternates_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/alternates_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/alternates_for_symbols_semicolon" />
         <Key
             latin:keyLabel="@string/keylabel_for_comma"
-            latin:popupCharacters="@string/alternates_for_comma" />
+            latin:moreKeys="@string/alternates_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/alternates_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 c5143d9c8047cb21e4fc0c921abf7b723ef3c909..3d62eff7ec97c1394f1bff8faf890b0fc3599e1d 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 52ee91a37c472fa788f2951f23b4243ab2fbe8e9..ffab1aa9c4531074e6df7a92e28b7ce2b85d9dfc 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/alternates_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/alternates_for_popular_domain" />
 </merge>
diff --git a/java/res/xml-sw768dp/kbd_qwerty_row1.xml b/java/res/xml-sw768dp/kbd_qwerty_row1.xml
index 0fdb463f1c59c42ccbd324a75b01566eacb58908..b9dc957ee504024a1d4be800f012c8497cb1495d 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/alternates_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/alternates_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 7f7dd57f04d858ed71fab31ca544ef19d24792b9..eb5ab70b5dfde60a50fd98ab0c54e84d6352d524 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/alternates_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_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 677235f63e78fea3a9dec096658557e0563f6aff..668cc1f54d7004f129e4e601c1e1b08d13c51382 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/alternates_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 1ff9d81f1fe1a256bc352eeae6fc661fda7cc98a..9346111eec80e1b1168fe22949323c368a608117 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 25453160f19bb80975aefaf41cb8681db7818ab1..b84443078fc4d2934b6656df531a377326cdb19e 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 50d4d4b10d6cc7ecf080410d9891a2346389ec8e..637201f45616e8f70cc42578fa8d780c8110505a 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/alternates_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/alternates_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 2f10d54e8443ffeb0fe7ffc96abb2f34badc3f29..984ba50929656a77ec806191166511f75d5cb8fa 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 7aec0d15d0f5363d602b43f7d84c9caa7d1f5f72..b37c22c062c8d8edb719c5fabae280335d867dec 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/alternates_for_a" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/alternates_for_z" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/alternates_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/alternates_for_q" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_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/alternates_for_w" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 bacc6a13b61553f7ebcbd3a22e48dd7edeff5b63..27b39d1aed693d7ed74ffb5fec29834372c919df 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 5556d1f3daa277421ccc949172a9496037e7c587..38dd20957f8223f351367288c015ba7130fa7a5b 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/alternates_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="z"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/alternates_for_z" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/alternates_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/alternates_for_y" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 82ceaeadc74b7b624d999ea7152ee7ec7b692aa4..1b2cbe7ea64bd44884da8234aa9aa9b253ab726e 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/alternates_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 743c6bd2634933e68b66723ba030f73d028b791c..fa3a09aa88878421c7da462f8c6b62a17edece17 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/alternates_for_q" />
         <Key
             latin:keyLabel="w"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/alternates_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/alternates_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_for_l" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+            latin:moreKeys="@string/alternates_for_scandinavia_row2_10" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
+            latin:moreKeys="@string/alternates_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/alternates_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 510cafbfde074921b1e31925948dc64fe86c9971..0f3423266a011f5471ac92456daedde98558f9ce 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/alternates_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_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 66b9789ac3ec0de0141a34c31d7caed383faf41d..3b599b9bce938b223779b5280556df7138e20c83 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/alternates_for_symbols_1" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_2"
-            latin:popupCharacters="@string/alternates_for_symbols_2" />
+            latin:moreKeys="@string/alternates_for_symbols_2" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_3"
-            latin:popupCharacters="@string/alternates_for_symbols_3" />
+            latin:moreKeys="@string/alternates_for_symbols_3" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_4"
-            latin:popupCharacters="@string/alternates_for_symbols_4" />
+            latin:moreKeys="@string/alternates_for_symbols_4" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_5"
-            latin:popupCharacters="@string/alternates_for_symbols_5" />
+            latin:moreKeys="@string/alternates_for_symbols_5" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_6"
-            latin:popupCharacters="@string/alternates_for_symbols_6" />
+            latin:moreKeys="@string/alternates_for_symbols_6" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_7"
-            latin:popupCharacters="@string/alternates_for_symbols_7" />
+            latin:moreKeys="@string/alternates_for_symbols_7" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_8"
-            latin:popupCharacters="@string/alternates_for_symbols_8" />
+            latin:moreKeys="@string/alternates_for_symbols_8" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_9"
-            latin:popupCharacters="@string/alternates_for_symbols_9" />
+            latin:moreKeys="@string/alternates_for_symbols_9" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_0"
-            latin:popupCharacters="@string/alternates_for_symbols_0" />
+            latin:moreKeys="@string/alternates_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/alternates_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/alternates_for_symbols_semicolon" />
         <Key
             latin:keyLabel="@string/keylabel_for_comma"
-            latin:popupCharacters="@string/alternates_for_comma" />
+            latin:moreKeys="@string/alternates_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/alternates_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 82bc4b26ed006589dc116f821decd44c2b2e0c14..30f72ac468293896c91c68137a015298b625b882 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 d2c711766536e28bbd1e46c389d5d28f6fa9fd6a..d4f19b57d37a542dd58859bfe6cdd4eed686b1cc 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/alternates_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/alternates_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/alternates_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/alternates_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/alternates_for_currency_pound" />
         </case>
         <default>
             <key-style
                 latin:styleName="currencyKeyStyle"
                 latin:keyLabel="$"
-                latin:popupCharacters="@string/alternates_for_currency_dollar" />
+                latin:moreKeys="@string/alternates_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 86f0bf24bc1121262734a0990702ce417699d84f..7bfeb656d4b51fbe42c0a1708ba4057547d69553 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/alternates_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/alternates_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/alternates_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/alternates_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/alternates_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/alternates_for_punctuation"
+        latin:maxMoreKeysColumn="@integer/mini_keyboard_column_for_punctuation"
         latin:parentStyle="functionalKeyStyle" />
 </merge>
diff --git a/java/res/xml/kbd_qwerty_row1.xml b/java/res/xml/kbd_qwerty_row1.xml
index daa138255c192323900cb8f22e6141399377b18e..7b4948a0ee390bb5367c987b34717df39395e1e0 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/alternates_for_q" />
         <Key
             latin:keyLabel="w"
             latin:keyHintLabel="2"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
             latin:keyHintLabel="3"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
             latin:keyHintLabel="4"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
             latin:keyHintLabel="5"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
             latin:keyHintLabel="6"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
             latin:keyHintLabel="7"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
             latin:keyHintLabel="8"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
             latin:keyHintLabel="9"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
             latin:keyHintLabel="0"
-            latin:popupCharacters="@string/alternates_for_p"
+            latin:moreKeys="@string/alternates_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 6e4872e08a021f189fd4f7a42afb0999de308aaf..1468ff7f8ea3adc0080c6c4be4d5861b51356c36 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/alternates_for_a"
             latin:keyXPos="5%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_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 6a203554302e1da1faa65e5673f984e15ca410e1..6a2d0bba56bb14bc78eb5d97954f7d462b772918 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/alternates_for_z" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 daa2a65ed984e5e040e5835e986443fb47457b41..569ac7ef93c7b7c63dcb56da3b2a93c6684f0872 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 dbf25eb95e6e48c6d6cb115c1bb95ac6cc90504a..4169b48e0d0597512abb1251de93d223b03eec7a 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/alternates_for_a" />
         <Key
             latin:keyLabel="z"
             latin:keyHintLabel="2"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/alternates_for_z" />
         <Key
             latin:keyLabel="e"
             latin:keyHintLabel="3"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
             latin:keyHintLabel="4"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
             latin:keyHintLabel="5"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
             latin:keyHintLabel="6"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
             latin:keyHintLabel="7"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
             latin:keyHintLabel="8"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
             latin:keyHintLabel="9"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
             latin:keyHintLabel="0"
-            latin:popupCharacters="@string/alternates_for_p"
+            latin:moreKeys="@string/alternates_for_p"
             latin:keyWidth="fillRight" />
     </Row>
     <Row
@@ -73,28 +73,28 @@
     >
         <Key
             latin:keyLabel="q"
-            latin:popupCharacters="@string/alternates_for_q" />
+            latin:moreKeys="@string/alternates_for_q" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_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/alternates_for_w" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
 
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 1ec076860e7aec047c30597285fd0269a9237fab..6be8174c567be65b2c3542f2d3471a35145054ca 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 f9489212524e893a2c125bb94e42f80445444d32..9d9cfe11f0ac22db0dca3d77a1c9dee6e8602011 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/alternates_for_q" />
         <Key
             latin:keyLabel="w"
             latin:keyHintLabel="2"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
             latin:keyHintLabel="3"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
             latin:keyHintLabel="4"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
             latin:keyHintLabel="5"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="z"
             latin:keyHintLabel="6"
-            latin:popupCharacters="@string/alternates_for_z" />
+            latin:moreKeys="@string/alternates_for_z" />
         <Key
             latin:keyLabel="u"
             latin:keyHintLabel="7"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
             latin:keyHintLabel="8"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
             latin:keyHintLabel="9"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
             latin:keyHintLabel="0"
-            latin:popupCharacters="@string/alternates_for_p"
+            latin:moreKeys="@string/alternates_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/alternates_for_y" />
         <Key
             latin:keyLabel="x" />
         <Key
             latin:keyLabel="c"
-            latin:popupCharacters="@string/alternates_for_c" />
+            latin:moreKeys="@string/alternates_for_c" />
         <Key
             latin:keyLabel="v"
-            latin:popupCharacters="@string/alternates_for_v" />
+            latin:moreKeys="@string/alternates_for_v" />
         <Key
             latin:keyLabel="b" />
         <Key
             latin:keyLabel="n"
-            latin:popupCharacters="@string/alternates_for_n" />
+            latin:moreKeys="@string/alternates_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 0c7a2375476420097452b8731f621dbf75547e91..0b2f329f74c153d8957a7a42c6777dca973e7933 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/alternates_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/alternates_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/alternates_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 7e8902e0bc2e30d210a6bd25271d5db1ca4962c6..3a04903f90f64c26ee06457aca40e8bfc35b18aa 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/alternates_for_q"
             latin:keyWidth="8.75%p" />
         <Key
             latin:keyLabel="w"
             latin:keyHintLabel="2"
-            latin:popupCharacters="@string/alternates_for_w" />
+            latin:moreKeys="@string/alternates_for_w" />
         <Key
             latin:keyLabel="e"
             latin:keyHintLabel="3"
-            latin:popupCharacters="@string/alternates_for_e" />
+            latin:moreKeys="@string/alternates_for_e" />
         <Key
             latin:keyLabel="r"
             latin:keyHintLabel="4"
-            latin:popupCharacters="@string/alternates_for_r" />
+            latin:moreKeys="@string/alternates_for_r" />
         <Key
             latin:keyLabel="t"
             latin:keyHintLabel="5"
-            latin:popupCharacters="@string/alternates_for_t" />
+            latin:moreKeys="@string/alternates_for_t" />
         <Key
             latin:keyLabel="y"
             latin:keyHintLabel="6"
-            latin:popupCharacters="@string/alternates_for_y" />
+            latin:moreKeys="@string/alternates_for_y" />
         <Key
             latin:keyLabel="u"
             latin:keyHintLabel="7"
-            latin:popupCharacters="@string/alternates_for_u" />
+            latin:moreKeys="@string/alternates_for_u" />
         <Key
             latin:keyLabel="i"
             latin:keyHintLabel="8"
-            latin:popupCharacters="@string/alternates_for_i" />
+            latin:moreKeys="@string/alternates_for_i" />
         <Key
             latin:keyLabel="o"
             latin:keyHintLabel="9"
-            latin:popupCharacters="@string/alternates_for_o" />
+            latin:moreKeys="@string/alternates_for_o" />
         <Key
             latin:keyLabel="p"
             latin:keyHintLabel="0"
-            latin:popupCharacters="@string/alternates_for_p" />
+            latin:moreKeys="@string/alternates_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/alternates_for_a"
             latin:keyWidth="8.75%p" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_for_l" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+            latin:moreKeys="@string/alternates_for_scandinavia_row2_10" />
         <Key
             latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
-            latin:popupCharacters="@string/alternates_for_scandinavia_row2_11"
+            latin:moreKeys="@string/alternates_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 73c807f95e8cd3c1e69c2faeeb16781a3195cedc..c911ae8075060634de926a3c1bf88d7a820176a8 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 6d007187f5b9f6eb39949770b54f42ecbfb4cba4..b3276d14abf4830612d9380992f21068d990c88a 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/alternates_for_a" />
         <Key
             latin:keyLabel="s"
-            latin:popupCharacters="@string/alternates_for_s" />
+            latin:moreKeys="@string/alternates_for_s" />
         <Key
             latin:keyLabel="d"
-            latin:popupCharacters="@string/alternates_for_d" />
+            latin:moreKeys="@string/alternates_for_d" />
         <Key
             latin:keyLabel="f" />
         <Key
             latin:keyLabel="g"
-            latin:popupCharacters="@string/alternates_for_g" />
+            latin:moreKeys="@string/alternates_for_g" />
         <Key
             latin:keyLabel="h" />
         <Key
             latin:keyLabel="j" />
         <Key
             latin:keyLabel="k"
-            latin:popupCharacters="@string/alternates_for_k" />
+            latin:moreKeys="@string/alternates_for_k" />
         <Key
             latin:keyLabel="l"
-            latin:popupCharacters="@string/alternates_for_l" />
+            latin:moreKeys="@string/alternates_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 5880d52c750ac6be2b54cd0e24350d15de7708f4..ff3b473dc57363cff9e52cf0a37c5c0a237d38b1 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/alternates_for_symbols_1" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_2"
-            latin:popupCharacters="@string/alternates_for_symbols_2" />
+            latin:moreKeys="@string/alternates_for_symbols_2" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_3"
-            latin:popupCharacters="@string/alternates_for_symbols_3" />
+            latin:moreKeys="@string/alternates_for_symbols_3" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_4"
-            latin:popupCharacters="@string/alternates_for_symbols_4" />
+            latin:moreKeys="@string/alternates_for_symbols_4" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_5"
-            latin:popupCharacters="@string/alternates_for_symbols_5" />
+            latin:moreKeys="@string/alternates_for_symbols_5" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_6"
-            latin:popupCharacters="@string/alternates_for_symbols_6" />
+            latin:moreKeys="@string/alternates_for_symbols_6" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_7"
-            latin:popupCharacters="@string/alternates_for_symbols_7" />
+            latin:moreKeys="@string/alternates_for_symbols_7" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_8"
-            latin:popupCharacters="@string/alternates_for_symbols_8" />
+            latin:moreKeys="@string/alternates_for_symbols_8" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_9"
-            latin:popupCharacters="@string/alternates_for_symbols_9" />
+            latin:moreKeys="@string/alternates_for_symbols_9" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_0"
-            latin:popupCharacters="@string/alternates_for_symbols_0"
+            latin:moreKeys="@string/alternates_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/alternates_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/alternates_for_symbols_semicolon" />
         <Key
             latin:keyLabel="/" />
         <Key
             latin:keyLabel="@string/keylabel_for_symbols_question"
-            latin:popupCharacters="@string/alternates_for_symbols_question" />
+            latin:moreKeys="@string/alternates_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 ff272f1b059f07cbd58d414365eed16d8285f797..66c14fea3bed3c855c55422e3a3b31ddb6184430 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/kbd_symbols_shift_row4.xml b/java/res/xml/kbd_symbols_shift_row4.xml
index bcab19b06b90ddf2019bb327916113a3f042ac41..c8d52932c586ca22de6d6001149ba9d18921ee5b 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/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 8baf3f7d1d6e2623fd79dcd4796b0689f047b2ff..b919bcfc46ca6e21c893ef3e877d1aacb31c812c 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;
 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 class Key {
     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 @@ public class Key {
         }
     }
 
-    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 @@ public class Key {
         mFunctional = false;
         mSticky = false;
         mRepeatable = false;
-        mPopupCharacters = null;
-        mMaxMiniKeyboardColumn = 0;
+        mMoreKeys = null;
+        mMaxMoreKeysColumn = 0;
         mLabel = label;
         mOutputText = outputText;
         mCode = code;
@@ -312,19 +312,19 @@ public class Key {
             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 5dabb93ec8b767075e2c7db42fa644f61af415c5..3a8a1d4b8cf5e6a2928121de022af3fa7f865661 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -101,8 +101,8 @@ public class Keyboard {
 
     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 @@ public class Keyboard {
         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 4c5c2bc1073b86079340ff0f3dfc7e4aeaab5bc1..ceadc919c44f969dacad6493b7e9f062c93a6710 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -79,7 +79,7 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
 
     // 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 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
         }
         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 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
         }
 
         // 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 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
 
         // 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 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy {
     }
 
     @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 1e7ec9eadb04f0600112637ccc78bf70f422ce22..777bae3b097e7cdf3fad61fa22290918479ffac1 100644
--- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
@@ -64,11 +64,11 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
     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 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
         mKeyDetector.setProximityThreshold(keyboard.mMostCommonKeyWidth);
         PointerTracker.setKeyDetector(mKeyDetector);
         mTouchScreenRegulator.setKeyboard(keyboard);
-        mPopupPanelCache.clear();
+        mMoreKeysPanelCache.clear();
     }
 
     /**
@@ -333,12 +333,12 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
 
     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 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
         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 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
                 (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 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
 
     @Override
     protected boolean needsToDimKeyboard() {
-        return mPopupPanel != null;
+        return mMoreKeysPanel != null;
     }
 
     public void setSpacebarTextFadeFactor(float fadeFactor, LatinKeyboard oldKeyboard) {
@@ -417,10 +417,10 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
                 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 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
         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 class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
     }
 
     public boolean isInSlidingKeyInput() {
-        if (mPopupPanel != null) {
+        if (mMoreKeysPanel != null) {
             return true;
         } else {
             return PointerTracker.isAnyInSlidingKeyInput();
@@ -504,7 +505,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
         }
 
         // 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 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
         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 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
             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 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
     @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 class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke
     }
 
     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 6119fa232de7be91a56aebc4b8b5f9cf8f280b57..da91b62d9a74984be1c672c5e7fdca8f678fd788 100644
--- a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java
@@ -20,7 +20,7 @@ import android.graphics.Paint;
 
 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 class MiniKeyboard extends Keyboard {
     }
 
     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 @@ public class MiniKeyboard extends Keyboard {
             // 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 @@ public class MiniKeyboard extends Keyboard {
         @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 065970f621c6d8d88126a62c3ea1701411981e24..db7cc51ca55d6db68b6b311e9eb2de862c7b9e83 100644
--- a/java/src/com/android/inputmethod/keyboard/MiniKeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboardView.java
@@ -34,7 +34,7 @@ import java.util.List;
  * 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;
@@ -204,7 +204,7 @@ public class MiniKeyboardView extends KeyboardView implements PopupPanel {
     }
 
     @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;
@@ -240,8 +240,8 @@ public class MiniKeyboardView extends KeyboardView implements PopupPanel {
     }
 
     @Override
-    public boolean dismissPopupPanel() {
-        return mController.dismissPopupPanel();
+    public boolean dismissMoreKeysPanel() {
+        return mController.dismissMoreKeysPanel();
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/keyboard/PopupPanel.java b/java/src/com/android/inputmethod/keyboard/MoreKeysPanel.java
similarity index 59%
rename from java/src/com/android/inputmethod/keyboard/PopupPanel.java
rename to java/src/com/android/inputmethod/keyboard/MoreKeysPanel.java
index 5e51fd54a38d7726b4825acea6640669fc3fe0c5..6314a99dbfcf1affe5826b55f5f20106b9b62356 100644
--- a/java/src/com/android/inputmethod/keyboard/PopupPanel.java
+++ b/java/src/com/android/inputmethod/keyboard/MoreKeysPanel.java
@@ -19,36 +19,41 @@ package com.android.inputmethod.keyboard;
 import android.view.View;
 import android.widget.PopupWindow;
 
-public interface PopupPanel extends PointerTracker.KeyEventHandler {
+public interface MoreKeysPanel extends PointerTracker.KeyEventHandler {
     public interface Controller {
-        public boolean dismissPopupPanel();
+        public boolean dismissMoreKeysPanel();
     }
 
     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.
+     * 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 showPopupPanel(View parentView, Controller controller, int pointX, int pointY,
+    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 PopupPanel.
+     * 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 PopupPanel
+     * @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 PopupPanel.
+     * 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 PopupPanel
+     * @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 7ae62200d7fdb593f33bef5f2a929db8290bd9d3..d4f580d216268a1f15354fd89bc0cba671f51a87 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -63,7 +63,7 @@ public class PointerTracker {
         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);
@@ -123,8 +123,8 @@ public class PointerTracker {
     // 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 +572,9 @@ public class PointerTracker {
         }
         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 +583,10 @@ public class PointerTracker {
         }
     }
 
-    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 +615,9 @@ public class PointerTracker {
         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/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
index 66dde0512e82c559104e4f63ee3ee213b3c47c81..6d78e853397be38897976dcb84e6abe325f94c93 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 @@ public class KeyStyles {
             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 5c76facec640e189f50d61a42d392d1483267a9c..c605debab3f454f06d9605dcf9d71f7a94fe94c3 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 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
 
             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 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
             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 e748dbb943f030ca0ab18f93e107640893223485..4432ee121d90e1a5397768db73becd4ea6b0d55c 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 class KeyboardParams {
     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/PopupCharactersParser.java b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParser.java
similarity index 57%
rename from java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java
rename to java/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParser.java
index 7c5abe32ab77b133169a9da3e60b696d9f393db2..a490b0ad60f5788663454da55ee1184b72fb68f1 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/PopupCharactersParser.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParser.java
@@ -26,9 +26,9 @@ 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:
+ * 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)
@@ -37,8 +37,8 @@ import java.util.ArrayList;
  * 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();
+public class MoreKeySpecParser {
+    private static final String TAG = MoreKeySpecParser.class.getSimpleName();
 
     private static final char ESCAPE = '\\';
     private static final String LABEL_END = "|";
@@ -46,24 +46,24 @@ public class PopupCharactersParser {
     private static final String PREFIX_ICON = PREFIX_AT + "icon/";
     private static final String PREFIX_CODE = PREFIX_AT + "integer/";
 
-    private PopupCharactersParser() {
+    private MoreKeySpecParser() {
         // Intentional empty constructor for utility class.
     }
 
-    private static boolean hasIcon(String popupSpec) {
-        if (popupSpec.startsWith(PREFIX_ICON)) {
-            final int end = indexOfLabelEnd(popupSpec, 0);
+    private static boolean hasIcon(String moreKeySpec) {
+        if (moreKeySpec.startsWith(PREFIX_ICON)) {
+            final int end = indexOfLabelEnd(moreKeySpec, 0);
             if (end > 0)
                 return true;
-            throw new PopupCharactersParserError("outputText or code not specified: " + popupSpec);
+            throw new MoreKeySpecParserError("outputText or code not specified: " + moreKeySpec);
         }
         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)) {
+    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;
@@ -85,81 +85,81 @@ public class PopupCharactersParser {
         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);
+    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 PopupCharactersParserError(LABEL_END + " at " + start + ": " + popupSpec);
+                throw new MoreKeySpecParserError(LABEL_END + " at " + start + ": " + moreKeySpec);
             return end;
         }
-        final int length = popupSpec.length();
+        final int length = moreKeySpec.length();
         for (int pos = start; pos < length; pos++) {
-            final char c = popupSpec.charAt(pos);
+            final char c = moreKeySpec.charAt(pos);
             if (c == ESCAPE && pos + 1 < length) {
                 pos++;
-            } else if (popupSpec.startsWith(LABEL_END, pos)) {
+            } else if (moreKeySpec.startsWith(LABEL_END, pos)) {
                 return pos;
             }
         }
         return -1;
     }
 
-    public static String getLabel(String popupSpec) {
-        if (hasIcon(popupSpec))
+    public static String getLabel(String moreKeySpec) {
+        if (hasIcon(moreKeySpec))
             return null;
-        final int end = indexOfLabelEnd(popupSpec, 0);
-        final String label = (end > 0) ? parseEscape(popupSpec.substring(0, end))
-                : parseEscape(popupSpec);
+        final int end = indexOfLabelEnd(moreKeySpec, 0);
+        final String label = (end > 0) ? parseEscape(moreKeySpec.substring(0, end))
+                : parseEscape(moreKeySpec);
         if (TextUtils.isEmpty(label))
-            throw new PopupCharactersParserError("Empty label: " + popupSpec);
+            throw new MoreKeySpecParserError("Empty label: " + moreKeySpec);
         return label;
     }
 
-    public static String getOutputText(String popupSpec) {
-        if (hasCode(popupSpec))
+    public static String getOutputText(String moreKeySpec) {
+        if (hasCode(moreKeySpec))
             return null;
-        final int end = indexOfLabelEnd(popupSpec, 0);
+        final int end = indexOfLabelEnd(moreKeySpec, 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 (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 PopupCharactersParserError("Empty outputText: " + popupSpec);
+            throw new MoreKeySpecParserError("Empty outputText: " + moreKeySpec);
         }
-        final String label = getLabel(popupSpec);
+        final String label = getLabel(moreKeySpec);
         if (label == null)
-            throw new PopupCharactersParserError("Empty label: " + popupSpec);
+            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 popupSpec) {
-        if (hasCode(popupSpec)) {
-            final int end = indexOfLabelEnd(popupSpec, 0);
-            if (indexOfLabelEnd(popupSpec, end + 1) >= 0)
-                throw new PopupCharactersParserError("Multiple " + LABEL_END + ": " + popupSpec);
+    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,
-                    popupSpec.substring(end + LABEL_END.length() + PREFIX_AT.length()));
+                    moreKeySpec.substring(end + LABEL_END.length() + PREFIX_AT.length()));
             final int code = res.getInteger(resId);
             return code;
         }
-        if (indexOfLabelEnd(popupSpec, 0) > 0)
+        if (indexOfLabelEnd(moreKeySpec, 0) > 0)
             return Keyboard.CODE_DUMMY;
-        final String label = getLabel(popupSpec);
+        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 popupSpec) {
-        if (hasIcon(popupSpec)) {
-            int end = popupSpec.indexOf(LABEL_END, PREFIX_ICON.length() + 1);
-            final String iconId = popupSpec.substring(PREFIX_ICON.length(), end);
+    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) {
@@ -174,13 +174,13 @@ public class PopupCharactersParser {
         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);
+            throw new MoreKeySpecParserError("Unknown resource: " + name);
         return resId;
     }
 
     @SuppressWarnings("serial")
-    public static class PopupCharactersParserError extends RuntimeException {
-        public PopupCharactersParserError(String message) {
+    public static class MoreKeySpecParserError extends RuntimeException {
+        public MoreKeySpecParserError(String message) {
             super(message);
         }
     }
@@ -196,31 +196,31 @@ public class PopupCharactersParser {
         }
     };
 
-    public static CharSequence[] filterOut(Resources res, CharSequence[] popupCharacters,
+    public static CharSequence[] filterOut(Resources res, CharSequence[] moreKeys,
             CodeFilter filter) {
-        if (popupCharacters == null || popupCharacters.length < 1) {
+        if (moreKeys == null || moreKeys.length < 1) {
             return null;
         }
-        if (popupCharacters.length == 1
-                && filter.shouldFilterOut(getCode(res, popupCharacters[0].toString()))) {
+        if (moreKeys.length == 1
+                && filter.shouldFilterOut(getCode(res, moreKeys[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()))) {
+        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(popupCharacters[j]);
+                        filtered.add(moreKeys[j]);
                     }
                 }
             } else if (filtered != null) {
-                filtered.add(popupSpec);
+                filtered.add(moreKeySpec);
             }
         }
         if (filtered == null) {
-            return popupCharacters;
+            return moreKeys;
         }
         if (filtered.size() == 0) {
             return null;
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/PopupCharactersParserTests.java b/tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParserTests.java
similarity index 94%
rename from tests/src/com/android/inputmethod/keyboard/internal/PopupCharactersParserTests.java
rename to tests/src/com/android/inputmethod/keyboard/internal/MoreKeySpecParserTests.java
index e4a1c68d834bb296f0009c3b61357dbb14275d90..798fca0f5229726a8358add36df6f88c856c1e18 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 android.test.AndroidTestCase;
 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 @@ public class PopupCharactersParserTests extends AndroidTestCase {
         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.
         }
     }