diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml
index 3b20281bead809f7dc8d92669b7409acd4f3d372..d817add11effcde79358e7f659997f9b015dfff8 100644
--- a/java/res/xml-sw600dp/key_styles_common.xml
+++ b/java/res/xml-sw600dp/key_styles_common.xml
@@ -178,6 +178,16 @@
         latin:code="!code/key_switch_alpha_symbol"
         latin:keyLabel="!text/label_to_alpha_key"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
+    <key-style
+        latin:styleName="toMoreSymbolKeyStyle"
+        latin:code="!code/key_shift"
+        latin:keyLabel="!text/label_to_more_symbol_for_tablet_key"
+        latin:parentStyle="baseForLayoutSwitchKeyStyle" />
+    <key-style
+        latin:styleName="backFromMoreSymbolKeyStyle"
+        latin:code="!code/key_shift"
+        latin:keyLabel="!text/label_to_symbol_key"
+        latin:parentStyle="baseForLayoutSwitchKeyStyle" />
     <key-style
         latin:styleName="comKeyStyle"
         latin:keyLabel="!text/keylabel_for_popular_domain"
diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml
index c1c2c3e06b0d2116fc29ecf71d8f3ad8ad5ae283..07436a4dee6c61e7a31654dcb13cfe1c49666e12 100644
--- a/java/res/xml/key_styles_common.xml
+++ b/java/res/xml/key_styles_common.xml
@@ -155,6 +155,15 @@
         latin:code="!code/key_switch_alpha_symbol"
         latin:keyLabel="!text/label_to_alpha_key"
         latin:parentStyle="baseForLayoutSwitchKeyStyle" />
+    <key-style
+        latin:styleName="toMoreSymbolKeyStyle"
+        latin:code="!code/key_shift"
+        latin:keyLabel="!text/label_to_more_symbol_key"
+        latin:parentStyle="baseForLayoutSwitchKeyStyle" />
+    <key-style
+        latin:styleName="backFromMoreSymbolKeyStyle"
+        latin:code="!code/key_shift"
+        latin:parentStyle="baseForToSymbolKeyStyle" />
     <key-style
         latin:styleName="punctuationKeyStyle"
         latin:keyLabel="."
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
index 4d3bdb0caa1c1b21e9d152797dc271fba56f8941..6d053f5c0e58689699da389a6db3b547b650212c 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.java
@@ -226,29 +226,31 @@ public final class KeyboardTextsSet {
         /* 121 */ "shortcut_as_more_key",
         /* 122 */ "action_next_as_more_key",
         /* 123 */ "action_previous_as_more_key",
-        /* 124 */ "label_tab_key",
-        /* 125 */ "label_to_phone_numeric_key",
-        /* 126 */ "label_to_phone_symbols_key",
-        /* 127 */ "label_time_am",
-        /* 128 */ "label_time_pm",
-        /* 129 */ "keylabel_for_popular_domain",
-        /* 130 */ "more_keys_for_popular_domain",
-        /* 131 */ "more_keys_for_smiley",
-        /* 132 */ "single_laqm_raqm",
-        /* 133 */ "single_laqm_raqm_rtl",
-        /* 134 */ "single_raqm_laqm",
-        /* 135 */ "double_laqm_raqm",
-        /* 136 */ "double_laqm_raqm_rtl",
-        /* 137 */ "double_raqm_laqm",
-        /* 138 */ "single_lqm_rqm",
-        /* 139 */ "single_9qm_lqm",
-        /* 140 */ "single_9qm_rqm",
-        /* 141 */ "double_lqm_rqm",
-        /* 142 */ "double_9qm_lqm",
-        /* 143 */ "double_9qm_rqm",
-        /* 144 */ "more_keys_for_single_quote",
-        /* 145 */ "more_keys_for_double_quote",
-        /* 146 */ "more_keys_for_tablet_double_quote",
+        /* 124 */ "label_to_more_symbol_key",
+        /* 125 */ "label_to_more_symbol_for_tablet_key",
+        /* 126 */ "label_tab_key",
+        /* 127 */ "label_to_phone_numeric_key",
+        /* 128 */ "label_to_phone_symbols_key",
+        /* 129 */ "label_time_am",
+        /* 130 */ "label_time_pm",
+        /* 131 */ "keylabel_for_popular_domain",
+        /* 132 */ "more_keys_for_popular_domain",
+        /* 133 */ "more_keys_for_smiley",
+        /* 134 */ "single_laqm_raqm",
+        /* 135 */ "single_laqm_raqm_rtl",
+        /* 136 */ "single_raqm_laqm",
+        /* 137 */ "double_laqm_raqm",
+        /* 138 */ "double_laqm_raqm_rtl",
+        /* 139 */ "double_raqm_laqm",
+        /* 140 */ "single_lqm_rqm",
+        /* 141 */ "single_9qm_lqm",
+        /* 142 */ "single_9qm_rqm",
+        /* 143 */ "double_lqm_rqm",
+        /* 144 */ "double_9qm_lqm",
+        /* 145 */ "double_9qm_rqm",
+        /* 146 */ "more_keys_for_single_quote",
+        /* 147 */ "more_keys_for_double_quote",
+        /* 148 */ "more_keys_for_tablet_double_quote",
     };
 
     private static final String EMPTY = "";
@@ -375,22 +377,26 @@ public final class KeyboardTextsSet {
         /* 121 */ "!icon/shortcut_key|!code/key_shortcut",
         /* 122 */ "!hasLabels!,!text/label_next_key|!code/key_action_next",
         /* 123 */ "!hasLabels!,!text/label_previous_key|!code/key_action_previous",
+        // Label for "switch to more symbol" modifier key.  Must be short to fit on key!
+        /* 124 */ "= \\ <",
+        // Label for "switch to more symbol" modifier key on tablets.  Must be short to fit on key!
+        /* 125 */ "~ \\ {",
         // Label for "Tab" key.  Must be short to fit on key!
-        /* 124 */ "Tab",
+        /* 126 */ "Tab",
         // Label for "switch to phone numeric" key.  Must be short to fit on key!
-        /* 125 */ "123",
+        /* 127 */ "123",
         // Label for "switch to phone symbols" key.  Must be short to fit on key!
         // U+FF0A: "*" FULLWIDTH ASTERISK
         // U+FF03: "#" FULLWIDTH NUMBER SIGN
-        /* 126 */ "\uFF0A\uFF03",
+        /* 128 */ "\uFF0A\uFF03",
         // Key label for "ante meridiem"
-        /* 127 */ "AM",
+        /* 129 */ "AM",
         // Key label for "post meridiem"
-        /* 128 */ "PM",
-        /* 129 */ ".com",
+        /* 130 */ "PM",
+        /* 131 */ ".com",
         // popular web domains for the locale - most popular, displayed on the keyboard
-        /* 130 */ "!hasLabels!,.net,.org,.gov,.edu",
-        /* 131 */ "!fixedColumnOrder!5,!hasLabels!,=-O|=-O ,:-P|:-P ,;-)|;-) ,:-(|:-( ,:-)|:-) ,:-!|:-! ,:-$|:-$ ,B-)|B-) ,:O|:O ,:-*|:-* ,:-D|:-D ,:\'(|:\'( ,:-\\\\|:-\\\\ ,O:-)|O:-) ,:-[|:-[ ",
+        /* 132 */ "!hasLabels!,.net,.org,.gov,.edu",
+        /* 133 */ "!fixedColumnOrder!5,!hasLabels!,=-O|=-O ,:-P|:-P ,;-)|;-) ,:-(|:-( ,:-)|:-) ,:-!|:-! ,:-$|:-$ ,B-)|B-) ,:O|:O ,:-*|:-* ,:-D|:-D ,:\'(|:\'( ,:-\\\\|:-\\\\ ,O:-)|O:-) ,:-[|:-[ ",
         // U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
         // U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
         // U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
@@ -412,24 +418,24 @@ public final class KeyboardTextsSet {
         // The following each quotation mark pair consist of
         // <opening quotation mark>, <closing quotation mark>
         // and is named after (single|double)_<opening quotation mark>_<closing quotation mark>.
-        /* 132 */ "\u2039,\u203A",
-        /* 133 */ "\u2039|\u203A,\u203A|\u2039",
-        /* 134 */ "\u203A,\u2039",
-        /* 135 */ "\u00AB,\u00BB",
-        /* 136 */ "\u00AB|\u00BB,\u00BB|\u00AB",
-        /* 137 */ "\u00BB,\u00AB",
+        /* 134 */ "\u2039,\u203A",
+        /* 135 */ "\u2039|\u203A,\u203A|\u2039",
+        /* 136 */ "\u203A,\u2039",
+        /* 137 */ "\u00AB,\u00BB",
+        /* 138 */ "\u00AB|\u00BB,\u00BB|\u00AB",
+        /* 139 */ "\u00BB,\u00AB",
         // The following each quotation mark triplet consists of
         // <another quotation mark>, <opening quotation mark>, <closing quotation mark>
         // and is named after (single|double)_<opening quotation mark>_<closing quotation mark>.
-        /* 138 */ "\u201A,\u2018,\u2019",
-        /* 139 */ "\u2019,\u201A,\u2018",
-        /* 140 */ "\u2018,\u201A,\u2019",
-        /* 141 */ "\u201E,\u201C,\u201D",
-        /* 142 */ "\u201D,\u201E,\u201C",
-        /* 143 */ "\u201C,\u201E,\u201D",
-        /* 144 */ "!fixedColumnOrder!5,!text/single_quotes,!text/single_angle_quotes",
-        /* 145 */ "!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes",
-        /* 146 */ "!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes",
+        /* 140 */ "\u201A,\u2018,\u2019",
+        /* 141 */ "\u2019,\u201A,\u2018",
+        /* 142 */ "\u2018,\u201A,\u2019",
+        /* 143 */ "\u201E,\u201C,\u201D",
+        /* 144 */ "\u201D,\u201E,\u201C",
+        /* 145 */ "\u201C,\u201E,\u201D",
+        /* 146 */ "!fixedColumnOrder!5,!text/single_quotes,!text/single_angle_quotes",
+        /* 147 */ "!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes",
+        /* 148 */ "!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes",
     };
 
     /* Language af: Afrikaans */
diff --git a/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml
index d3bcfd34a11eac331fb61174a79fedc269202bde..3657d02e202c82e23cb839fd8cf8b954213611bc 100644
--- a/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml
@@ -185,6 +185,10 @@
     <string name="shortcut_as_more_key">!icon/shortcut_key|!code/key_shortcut</string>
     <string name="action_next_as_more_key">!hasLabels!,\@string/label_next_key|!code/key_action_next</string>
     <string name="action_previous_as_more_key">!hasLabels!,\@string/label_previous_key|!code/key_action_previous</string>
+    <!-- Label for "switch to more symbol" modifier key.  Must be short to fit on key! -->
+    <string name="label_to_more_symbol_key">= \\ &lt;</string>
+    <!-- Label for "switch to more symbol" modifier key on tablets.  Must be short to fit on key! -->
+    <string name="label_to_more_symbol_for_tablet_key">~ \\ {</string>
     <!-- Label for "Tab" key.  Must be short to fit on key! -->
     <string name="label_tab_key">Tab</string>
     <!-- Label for "switch to phone numeric" key.  Must be short to fit on key! -->