diff --git a/java/res/xml-sw600dp/kbd_azerty_symbols.xml b/java/res/xml-sw600dp/kbd_10_10_7_symbols.xml
similarity index 100%
rename from java/res/xml-sw600dp/kbd_azerty_symbols.xml
rename to java/res/xml-sw600dp/kbd_10_10_7_symbols.xml
diff --git a/java/res/xml-sw600dp/kbd_azerty_symbols_shift.xml b/java/res/xml-sw600dp/kbd_10_10_7_symbols_shift.xml
similarity index 100%
rename from java/res/xml-sw600dp/kbd_azerty_symbols_shift.xml
rename to java/res/xml-sw600dp/kbd_10_10_7_symbols_shift.xml
diff --git a/java/res/xml-sw600dp/keys_apostrophe_dash.xml b/java/res/xml-sw600dp/key_apostrophe.xml
similarity index 74%
rename from java/res/xml-sw600dp/keys_apostrophe_dash.xml
rename to java/res/xml-sw600dp/key_apostrophe.xml
index badc6e5168f1832799b6250a69b1375e42ca27f4..7da4b62231132fbc619eecc43165a7c6e43638f5 100644
--- a/java/res/xml-sw600dp/keys_apostrophe_dash.xml
+++ b/java/res/xml-sw600dp/key_apostrophe.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2011, The Android Open Source Project
+** Copyright 2012, The Android Open Source Project
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
@@ -45,19 +45,4 @@
                 latin:keyStyle="hasShiftedLetterHintStyle" />
         </default>
     </switch>
-    <switch>
-        <case
-            latin:mode="email"
-        >
-            <Key
-                latin:keyLabel="_" />
-        </case>
-        <default>
-            <Key
-                latin:keyLabel="!text/keylabel_for_dash"
-                latin:keyHintLabel="!text/keyhintlabel_for_dash"
-                latin:moreKeys="!text/more_keys_for_dash"
-                latin:keyStyle="hasShiftedLetterHintStyle" />
-        </default>
-    </switch>
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_hebrew_symbols.xml b/java/res/xml-sw600dp/key_dash.xml
similarity index 61%
rename from java/res/xml-sw600dp/kbd_hebrew_symbols.xml
rename to java/res/xml-sw600dp/key_dash.xml
index 66254dea0c9b904041d7aa5feece43d972c352a9..a7c3727da08e9bf7679754703613897fd6d1179e 100644
--- a/java/res/xml-sw600dp/kbd_hebrew_symbols.xml
+++ b/java/res/xml-sw600dp/key_dash.xml
@@ -18,9 +18,22 @@
 */
 -->
 
-<Keyboard
+<merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <include
-        latin:keyboardLayout="@xml/rows_10_10_7_symbols" />
-</Keyboard>
+    <switch>
+        <case
+            latin:mode="email"
+        >
+            <Key
+                latin:keyLabel="_" />
+        </case>
+        <default>
+            <Key
+                latin:keyLabel="!text/keylabel_for_dash"
+                latin:keyHintLabel="!text/keyhintlabel_for_dash"
+                latin:moreKeys="!text/more_keys_for_dash"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/kbd_spanish_symbols.xml b/java/res/xml-sw600dp/key_f1.xml
similarity index 58%
rename from java/res/xml-sw600dp/kbd_spanish_symbols.xml
rename to java/res/xml-sw600dp/key_f1.xml
index 66254dea0c9b904041d7aa5feece43d972c352a9..e477d375873b9426892c7a700be0b979aa84d826 100644
--- a/java/res/xml-sw600dp/kbd_spanish_symbols.xml
+++ b/java/res/xml-sw600dp/key_f1.xml
@@ -18,9 +18,28 @@
 */
 -->
 
-<Keyboard
+<merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <include
-        latin:keyboardLayout="@xml/rows_10_10_7_symbols" />
-</Keyboard>
+    <switch>
+        <case
+            latin:mode="email"
+        >
+            <Key
+                latin:keyStyle="comKeyStyle" />
+        </case>
+        <case
+            latin:mode="url"
+        >
+            <Key
+                latin:keyStyle="comKeyStyle" />
+        </case>
+        <default>
+            <Key
+                latin:keyLabel="/"
+                latin:keyHintLabel="\@"
+                latin:moreKeys="\@"
+                latin:keyStyle="hasShiftedLetterHintStyle" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/kbd_hebrew_symbols_shift.xml b/java/res/xml-sw600dp/key_space.xml
similarity index 59%
rename from java/res/xml-sw600dp/kbd_hebrew_symbols_shift.xml
rename to java/res/xml-sw600dp/key_space.xml
index 3c5ed5e092e77175c2e062aad0bb5c0cf30a44fb..41f0dbd9b0aeaa682a095f40f1a3b1bb083106f6 100644
--- a/java/res/xml-sw600dp/kbd_hebrew_symbols_shift.xml
+++ b/java/res/xml-sw600dp/key_space.xml
@@ -18,9 +18,25 @@
 */
 -->
 
-<Keyboard
+<merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <include
-        latin:keyboardLayout="@xml/rows_10_10_7_symbols_shift" />
-</Keyboard>
+    <switch>
+        <case
+            latin:languageCode="fa"
+        >
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyXPos="30.750%p"
+                latin:keyWidth="30.850%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <default>
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyXPos="30.750%p"
+                latin:keyWidth="39.750%p" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw600dp/row_qwerty4.xml b/java/res/xml-sw600dp/row_qwerty4.xml
index eec35b0780aac716bbef294431310d7ddd520c4c..95b328b380aa0da6e8927e742b18d59d03946a65 100644
--- a/java/res/xml-sw600dp/row_qwerty4.xml
+++ b/java/res/xml-sw600dp/row_qwerty4.xml
@@ -29,45 +29,10 @@
             latin:keyWidth="13.0%p" />
         <Key
             latin:keyStyle="tabKeyStyle" />
-        <switch>
-            <case
-                latin:mode="email"
-            >
-                <Key
-                    latin:keyStyle="comKeyStyle" />
-            </case>
-            <case
-                latin:mode="url"
-            >
-                <Key
-                    latin:keyStyle="comKeyStyle" />
-            </case>
-            <default>
-                <Key
-                    latin:keyLabel="/"
-                    latin:keyHintLabel="\@"
-                    latin:moreKeys="\@"
-                    latin:keyStyle="hasShiftedLetterHintStyle" />
-            </default>
-        </switch>
-        <switch>
-            <case
-                latin:languageCode="fa"
-            >
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyXPos="30.750%p"
-                    latin:keyWidth="30.850%p" />
-                <Key
-                    latin:keyStyle="zwnjKeyStyle" />
-            </case>
-            <default>
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyXPos="30.750%p"
-                    latin:keyWidth="39.750%p" />
-            </default>
-        </switch>
+        <include
+            latin:keyboardLayout="@xml/key_f1" />
+        <include
+            latin:keyboardLayout="@xml/key_space" />
         <switch>
             <case
                 latin:languageCode="iw"
@@ -78,7 +43,9 @@
             <!-- not languageCode="iw" -->
             <default>
                 <include
-                    latin:keyboardLayout="@xml/keys_apostrophe_dash" />
+                    latin:keyboardLayout="@xml/key_apostrophe" />
+                <include
+                    latin:keyboardLayout="@xml/key_dash" />
             </default>
         </switch>
         <Spacer
diff --git a/java/res/xml-sw600dp/rows_symbols4.xml b/java/res/xml-sw600dp/row_symbols4.xml
similarity index 100%
rename from java/res/xml-sw600dp/rows_symbols4.xml
rename to java/res/xml-sw600dp/row_symbols4.xml
diff --git a/java/res/xml-sw600dp/rows_symbols_shift4.xml b/java/res/xml-sw600dp/row_symbols_shift4.xml
similarity index 100%
rename from java/res/xml-sw600dp/rows_symbols_shift4.xml
rename to java/res/xml-sw600dp/row_symbols_shift4.xml
diff --git a/java/res/xml-sw600dp/rows_10_10_7_symbols.xml b/java/res/xml-sw600dp/rows_10_10_7_symbols.xml
index bdb1aa0ee90ed87c5c07f5e89cd4c0dad6392933..fe9f2fb5fe1c9ac64ca722c9da6efd741058a465 100644
--- a/java/res/xml-sw600dp/rows_10_10_7_symbols.xml
+++ b/java/res/xml-sw600dp/rows_10_10_7_symbols.xml
@@ -58,5 +58,5 @@
             latin:keyWidth="fillRight" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_10_10_7_symbols_shift.xml b/java/res/xml-sw600dp/rows_10_10_7_symbols_shift.xml
index 101493423be470a39ad07afb29c58cd6f7da7e98..9df112153acebb5a766b99455add1c87d79c7872 100644
--- a/java/res/xml-sw600dp/rows_10_10_7_symbols_shift.xml
+++ b/java/res/xml-sw600dp/rows_10_10_7_symbols_shift.xml
@@ -54,5 +54,5 @@
             latin:keyboardLayout="@xml/rowkeys_symbols_shift3" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_hebrew.xml b/java/res/xml-sw600dp/rows_hebrew.xml
index a60da3a2b1a5a20ba44438cced1efbb29e033d57..d6861e8e47511ea116780d6f407f4b9a396c5f51 100644
--- a/java/res/xml-sw600dp/rows_hebrew.xml
+++ b/java/res/xml-sw600dp/rows_hebrew.xml
@@ -27,7 +27,9 @@
         latin:keyWidth="8.5%p"
     >
         <include
-            latin:keyboardLayout="@xml/keys_apostrophe_dash" />
+            latin:keyboardLayout="@xml/key_apostrophe" />
+        <include
+            latin:keyboardLayout="@xml/key_dash" />
         <include
             latin:keyboardLayout="@xml/rowkeys_hebrew1" />
         <Key
diff --git a/java/res/xml-sw600dp/rows_symbols.xml b/java/res/xml-sw600dp/rows_symbols.xml
index ea9b30245c3c3bc7b21d16ecc3248673aca62344..ada22dff63a8b0f341e5614131d4060e93fd6157 100644
--- a/java/res/xml-sw600dp/rows_symbols.xml
+++ b/java/res/xml-sw600dp/rows_symbols.xml
@@ -58,5 +58,5 @@
             latin:keyWidth="fillRight" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_symbols_shift.xml b/java/res/xml-sw600dp/rows_symbols_shift.xml
index cc66f96760401881e2ad42c2fb657271cb31aeaf..0750670d6dd12dcbabfbd30e9113f053391e0649 100644
--- a/java/res/xml-sw600dp/rows_symbols_shift.xml
+++ b/java/res/xml-sw600dp/rows_symbols_shift.xml
@@ -54,5 +54,5 @@
             latin:keyboardLayout="@xml/rowkeys_symbols_shift3" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_spanish_symbols_shift.xml b/java/res/xml-sw768dp/key_space.xml
similarity index 54%
rename from java/res/xml-sw600dp/kbd_spanish_symbols_shift.xml
rename to java/res/xml-sw768dp/key_space.xml
index 3c5ed5e092e77175c2e062aad0bb5c0cf30a44fb..115bcb6bfffb1e0f6f217e87f610c13f0cfe2d70 100644
--- a/java/res/xml-sw600dp/kbd_spanish_symbols_shift.xml
+++ b/java/res/xml-sw768dp/key_space.xml
@@ -18,9 +18,27 @@
 */
 -->
 
-<Keyboard
+<merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <include
-        latin:keyboardLayout="@xml/rows_10_10_7_symbols_shift" />
-</Keyboard>
+    <switch>
+        <case
+            latin:languageCode="fa"
+        >
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyXPos="31.250%p"
+                latin:keyWidth="29.453%p" />
+            <!-- U+200C: "" ZERO WIDTH NON-JOINER
+                 U+200D: "" ZERO WIDTH JOINER -->
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <default>
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyXPos="31.250%p"
+                latin:keyWidth="37.500%p" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw768dp/keys_f1f2.xml b/java/res/xml-sw768dp/keys_f1f2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..569703572c2321b8f13c33da96bab2db9f2165ee
--- /dev/null
+++ b/java/res/xml-sw768dp/keys_f1f2.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:mode="url"
+        >
+            <Key
+                latin:keyStyle="comKeyStyle"
+                latin:keyWidth="16.084%p" />
+        </case>
+        <default>
+            <switch>
+                <case
+                    latin:mode="email"
+                >
+                    <Key
+                        latin:keyStyle="comKeyStyle" />
+                </case>
+                <case
+                    latin:imeAction="actionSearch"
+                >
+                    <Key
+                        latin:keyLabel=":"
+                        latin:keyHintLabel="+"
+                        latin:moreKeys="+"
+                        latin:keyStyle="hasShiftedLetterHintStyle" />
+                </case>
+                <default>
+                    <Key
+                        latin:keyStyle="smileyKeyStyle" />
+                </default>
+            </switch>
+            <switch>
+                <case
+                    latin:mode="email"
+                >
+                    <Key
+                        latin:keyLabel="\@" />
+                </case>
+                <default>
+                    <Key
+                        latin:keyLabel="/"
+                        latin:keyHintLabel="\@"
+                        latin:moreKeys="\@"
+                        latin:keyStyle="hasShiftedLetterHintStyle" />
+                </default>
+            </switch>
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml-sw768dp/row_qwerty4.xml b/java/res/xml-sw768dp/row_qwerty4.xml
index 90da21ba36bca1e24f1be2b22bb750782f2de534..f6ad3fd46674fc379fc2f26ed72a1adc7613a23f 100644
--- a/java/res/xml-sw768dp/row_qwerty4.xml
+++ b/java/res/xml-sw768dp/row_qwerty4.xml
@@ -29,73 +29,10 @@
         <Spacer
             latin:keyXPos="15.157%p"
             latin:keyWidth="0%p" />
-        <switch>
-            <case
-                latin:mode="url"
-            >
-                <Key
-                    latin:keyStyle="comKeyStyle"
-                    latin:keyWidth="16.084%p" />
-            </case>
-            <default>
-                <switch>
-                    <case
-                        latin:mode="email"
-                    >
-                        <Key
-                            latin:keyStyle="comKeyStyle" />
-                    </case>
-                    <case
-                        latin:imeAction="actionSearch"
-                    >
-                        <Key
-                            latin:keyLabel=":"
-                            latin:keyHintLabel="+"
-                            latin:moreKeys="+"
-                            latin:keyStyle="hasShiftedLetterHintStyle" />
-                    </case>
-                    <default>
-                        <Key
-                            latin:keyStyle="smileyKeyStyle" />
-                    </default>
-                </switch>
-                <switch>
-                    <case
-                        latin:mode="email"
-                    >
-                        <Key
-                            latin:keyLabel="\@" />
-                    </case>
-                    <default>
-                        <Key
-                            latin:keyLabel="/"
-                            latin:keyHintLabel="\@"
-                            latin:moreKeys="\@"
-                            latin:keyStyle="hasShiftedLetterHintStyle" />
-                    </default>
-                </switch>
-            </default>
-        </switch>
-        <switch>
-            <case
-                latin:languageCode="fa"
-            >
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyXPos="31.250%p"
-                    latin:keyWidth="29.453%p" />
-                <!-- U+200C: "" ZERO WIDTH NON-JOINER
-                     U+200D: "" ZERO WIDTH JOINER -->
-                <Key
-                    latin:keyStyle="zwnjKeyStyle" />
-            </case>
-            <default>
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyXPos="31.250%p"
-                    latin:keyWidth="37.500%p" />
-            </default>
-        </switch>
+        <include
+            latin:keyboardLayout="@xml/keys_f1f2" />
+        <include
+            latin:keyboardLayout="@xml/key_space" />
         <switch>
             <case
                 latin:languageCode="iw"
@@ -105,7 +42,9 @@
             </case>
             <default>
                 <include
-                    latin:keyboardLayout="@xml/keys_apostrophe_dash" />
+                    latin:keyboardLayout="@xml/key_apostrophe" />
+                <include
+                    latin:keyboardLayout="@xml/key_dash" />
             </default>
         </switch>
         <switch>
diff --git a/java/res/xml-sw768dp/rows_symbols4.xml b/java/res/xml-sw768dp/row_symbols4.xml
similarity index 100%
rename from java/res/xml-sw768dp/rows_symbols4.xml
rename to java/res/xml-sw768dp/row_symbols4.xml
diff --git a/java/res/xml-sw768dp/rows_symbols_shift4.xml b/java/res/xml-sw768dp/row_symbols_shift4.xml
similarity index 100%
rename from java/res/xml-sw768dp/rows_symbols_shift4.xml
rename to java/res/xml-sw768dp/row_symbols_shift4.xml
diff --git a/java/res/xml-sw768dp/rows_10_10_7_symbols.xml b/java/res/xml-sw768dp/rows_10_10_7_symbols.xml
index 1d61d999b078db254168659b6146f27d48807e49..44f096422f7bc690033202f024a764ce251fef97 100644
--- a/java/res/xml-sw768dp/rows_10_10_7_symbols.xml
+++ b/java/res/xml-sw768dp/rows_10_10_7_symbols.xml
@@ -65,5 +65,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_10_10_7_symbols_shift.xml b/java/res/xml-sw768dp/rows_10_10_7_symbols_shift.xml
index d22f8331d26248163c2ceb97c2751a18a9489ed6..bea0d9c18be09155c3d3c209a5857e813565c34a 100644
--- a/java/res/xml-sw768dp/rows_10_10_7_symbols_shift.xml
+++ b/java/res/xml-sw768dp/rows_10_10_7_symbols_shift.xml
@@ -65,5 +65,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_hebrew.xml b/java/res/xml-sw768dp/rows_hebrew.xml
index 476071a5ebf8d88899979c8dd700de545b5d1bd5..e70f4507126bb0ee98e1df54c460c29da109e05b 100644
--- a/java/res/xml-sw768dp/rows_hebrew.xml
+++ b/java/res/xml-sw768dp/rows_hebrew.xml
@@ -31,7 +31,9 @@
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="7.969%p" />
         <include
-            latin:keyboardLayout="@xml/keys_apostrophe_dash" />
+            latin:keyboardLayout="@xml/key_apostrophe" />
+        <include
+            latin:keyboardLayout="@xml/key_dash" />
         <include
             latin:keyboardLayout="@xml/rowkeys_hebrew1" />
         <Key
diff --git a/java/res/xml-sw768dp/rows_symbols.xml b/java/res/xml-sw768dp/rows_symbols.xml
index ed2df18d7578427d0042c5f4af7dc6937d27f020..fcc624f2a0de5932138fb009505a7d169bce9d89 100644
--- a/java/res/xml-sw768dp/rows_symbols.xml
+++ b/java/res/xml-sw768dp/rows_symbols.xml
@@ -65,5 +65,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_symbols_shift.xml b/java/res/xml-sw768dp/rows_symbols_shift.xml
index 30e1df0bfc44233044aa570054420de4d14455f3..1d13bb1e98371e56be03f1172233148cf4c6214b 100644
--- a/java/res/xml-sw768dp/rows_symbols_shift.xml
+++ b/java/res/xml-sw768dp/rows_symbols_shift.xml
@@ -65,5 +65,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_thai_symbols.xml b/java/res/xml-sw768dp/rows_thai_symbols.xml
index 20f22bc5b6ad39ab1d33749972ee100ea357e352..b3f60f5e68e7e8c11c900aa8f8ec1f6ca30dccc9 100644
--- a/java/res/xml-sw768dp/rows_thai_symbols.xml
+++ b/java/res/xml-sw768dp/rows_thai_symbols.xml
@@ -72,5 +72,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_thai_symbols_shift.xml b/java/res/xml-sw768dp/rows_thai_symbols_shift.xml
index 467dd19adbbb46345b6d947944ddeef36e84f45c..573e0e37a66025a1e503c9f57deece4c48f1f7c6 100644
--- a/java/res/xml-sw768dp/rows_thai_symbols_shift.xml
+++ b/java/res/xml-sw768dp/rows_thai_symbols_shift.xml
@@ -72,5 +72,5 @@
             latin:keyWidth="fillBoth" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>
diff --git a/java/res/xml/kbd_azerty_symbols.xml b/java/res/xml/kbd_10_10_7_symbols.xml
similarity index 100%
rename from java/res/xml/kbd_azerty_symbols.xml
rename to java/res/xml/kbd_10_10_7_symbols.xml
diff --git a/java/res/xml/kbd_azerty_symbols_shift.xml b/java/res/xml/kbd_10_10_7_symbols_shift.xml
similarity index 100%
rename from java/res/xml/kbd_azerty_symbols_shift.xml
rename to java/res/xml/kbd_10_10_7_symbols_shift.xml
diff --git a/java/res/xml/kbd_hebrew_symbols.xml b/java/res/xml/kbd_hebrew_symbols.xml
deleted file mode 100644
index 7e075df48ebddfdeb961549d065fd20f2b41d68d..0000000000000000000000000000000000000000
--- a/java/res/xml/kbd_hebrew_symbols.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<Keyboard
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <include
-        latin:keyboardLayout="@xml/rows_symbols" />
-</Keyboard>
diff --git a/java/res/xml/kbd_hebrew_symbols_shift.xml b/java/res/xml/kbd_hebrew_symbols_shift.xml
deleted file mode 100644
index 25db3c84d9fd20a371acf31a43c547b4fe382df9..0000000000000000000000000000000000000000
--- a/java/res/xml/kbd_hebrew_symbols_shift.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<Keyboard
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <include
-        latin:keyboardLayout="@xml/rows_symbols_shift" />
-</Keyboard>
diff --git a/java/res/xml/kbd_spanish_symbols.xml b/java/res/xml/kbd_spanish_symbols.xml
deleted file mode 100644
index 7e075df48ebddfdeb961549d065fd20f2b41d68d..0000000000000000000000000000000000000000
--- a/java/res/xml/kbd_spanish_symbols.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<Keyboard
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <include
-        latin:keyboardLayout="@xml/rows_symbols" />
-</Keyboard>
diff --git a/java/res/xml/kbd_spanish_symbols_shift.xml b/java/res/xml/kbd_spanish_symbols_shift.xml
deleted file mode 100644
index 25db3c84d9fd20a371acf31a43c547b4fe382df9..0000000000000000000000000000000000000000
--- a/java/res/xml/kbd_spanish_symbols_shift.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2012, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<Keyboard
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <include
-        latin:keyboardLayout="@xml/rows_symbols_shift" />
-</Keyboard>
diff --git a/java/res/xml-sw768dp/keys_apostrophe_dash.xml b/java/res/xml/key_f1.xml
similarity index 54%
rename from java/res/xml-sw768dp/keys_apostrophe_dash.xml
rename to java/res/xml/key_f1.xml
index badc6e5168f1832799b6250a69b1375e42ca27f4..455f9ef591328f2ab61484ff7a8dfb568fc648b8 100644
--- a/java/res/xml-sw768dp/keys_apostrophe_dash.xml
+++ b/java/res/xml/key_f1.xml
@@ -2,7 +2,7 @@
 <!--
 /*
 **
-** Copyright 2011, The Android Open Source Project
+** Copyright 2012, The Android Open Source Project
 **
 ** Licensed under the Apache License, Version 2.0 (the "License");
 ** you may not use this file except in compliance with the License.
@@ -23,41 +23,32 @@
 >
     <switch>
         <case
-            latin:mode="email"
+            latin:mode="url"
         >
             <Key
-                latin:keyLabel="-" />
+                latin:keyLabel="/"
+                latin:keyStyle="f1MoreKeysStyle" />
         </case>
         <case
-            latin:mode="url"
+            latin:mode="email"
         >
             <Key
-                latin:keyLabel="/"
-                latin:keyHintLabel=":"
-                latin:moreKeys=":"
-                latin:keyStyle="hasShiftedLetterHintStyle" />
+                latin:keyLabel="\@"
+                latin:keyStyle="f1MoreKeysStyle" />
         </case>
-        <default>
-            <Key
-                latin:keyLabel="!text/keylabel_for_apostrophe"
-                latin:keyHintLabel="!text/keyhintlabel_for_apostrophe"
-                latin:moreKeys="!text/more_keys_for_apostrophe"
-                latin:keyStyle="hasShiftedLetterHintStyle" />
-        </default>
-    </switch>
-    <switch>
         <case
-            latin:mode="email"
+            latin:hasShortcutKey="true"
         >
             <Key
-                latin:keyLabel="_" />
+                latin:keyStyle="shortcutKeyStyle" />
         </case>
+        <!-- latin:hasShortcutKey="false" -->
         <default>
             <Key
-                latin:keyLabel="!text/keylabel_for_dash"
-                latin:keyHintLabel="!text/keyhintlabel_for_dash"
-                latin:moreKeys="!text/more_keys_for_dash"
-                latin:keyStyle="hasShiftedLetterHintStyle" />
+                latin:keyLabel="!text/keylabel_for_comma"
+                latin:keyLabelFlags="hasPopupHint"
+                latin:additionalMoreKeys="!text/more_keys_for_comma"
+                latin:keyStyle="f1MoreKeysStyle" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml/key_space.xml b/java/res/xml/key_space.xml
new file mode 100644
index 0000000000000000000000000000000000000000..02ee42fd2783eaf174dfa482889be8479ca3e85b
--- /dev/null
+++ b/java/res/xml/key_space.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2012, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <switch>
+        <case
+            latin:languageCode="fa"
+            latin:languageSwitchKeyEnabled="true"
+        >
+            <Key
+                latin:keyStyle="languageSwitchKeyStyle" />
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="30%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <case
+            latin:languageCode="fa"
+            latin:languageSwitchKeyEnabled="false"
+        >
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="40%p" />
+            <Key
+                latin:keyStyle="zwnjKeyStyle" />
+        </case>
+        <case
+            latin:languageSwitchKeyEnabled="true"
+        >
+            <Key
+                latin:keyStyle="languageSwitchKeyStyle" />
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="40%p" />
+        </case>
+        <!-- languageSwitchKeyEnabled="false" -->
+        <default>
+            <Key
+                latin:keyStyle="spaceKeyStyle"
+                latin:keyWidth="50%p" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/keyboard_layout_set_azerty.xml b/java/res/xml/keyboard_layout_set_azerty.xml
index d4df6676c46227b954c1d70b6d0bc675886cfffb..4d144edbc0ac6a20639de313cf0418f555444681 100644
--- a/java/res/xml/keyboard_layout_set_azerty.xml
+++ b/java/res/xml/keyboard_layout_set_azerty.xml
@@ -26,10 +26,10 @@
         latin:enableProximityCharsCorrection="true" />
     <Element
         latin:elementName="symbols"
-        latin:elementKeyboard="@xml/kbd_azerty_symbols" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols" />
     <Element
         latin:elementName="symbolsShifted"
-        latin:elementKeyboard="@xml/kbd_azerty_symbols_shift" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols_shift" />
     <Element
         latin:elementName="phone"
         latin:elementKeyboard="@xml/kbd_phone" />
diff --git a/java/res/xml/keyboard_layout_set_hebrew.xml b/java/res/xml/keyboard_layout_set_hebrew.xml
index d0f12f3ee3ee0611d800a60c8edd4786d98fd701..212816dfe87563135a491c1cdf143452dd886257 100644
--- a/java/res/xml/keyboard_layout_set_hebrew.xml
+++ b/java/res/xml/keyboard_layout_set_hebrew.xml
@@ -26,10 +26,10 @@
         latin:enableProximityCharsCorrection="true" />
     <Element
         latin:elementName="symbols"
-        latin:elementKeyboard="@xml/kbd_hebrew_symbols" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols" />
     <Element
         latin:elementName="symbolsShifted"
-        latin:elementKeyboard="@xml/kbd_hebrew_symbols_shift" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols_shift" />
     <Element
         latin:elementName="phone"
         latin:elementKeyboard="@xml/kbd_phone" />
diff --git a/java/res/xml/keyboard_layout_set_spanish.xml b/java/res/xml/keyboard_layout_set_spanish.xml
index 0ef712b761caaa3263e4e15aa6b640cfd5af94a0..57cef52342e44457e365ba28947d8e4545a9d295 100644
--- a/java/res/xml/keyboard_layout_set_spanish.xml
+++ b/java/res/xml/keyboard_layout_set_spanish.xml
@@ -26,10 +26,10 @@
         latin:enableProximityCharsCorrection="true" />
     <Element
         latin:elementName="symbols"
-        latin:elementKeyboard="@xml/kbd_spanish_symbols" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols" />
     <Element
         latin:elementName="symbolsShifted"
-        latin:elementKeyboard="@xml/kbd_spanish_symbols_shift" />
+        latin:elementKeyboard="@xml/kbd_10_10_7_symbols_shift" />
     <Element
         latin:elementName="phone"
         latin:elementKeyboard="@xml/kbd_phone" />
diff --git a/java/res/xml/row_qwerty4.xml b/java/res/xml/row_qwerty4.xml
index 343e3eec9092ff4817fa10d76a47d4da931a9c25..361a2c3ef693eae9a941947c72130548fbf6be59 100644
--- a/java/res/xml/row_qwerty4.xml
+++ b/java/res/xml/row_qwerty4.xml
@@ -27,75 +27,10 @@
         <Key
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyWidth="15%p" />
-        <switch>
-            <case
-                latin:mode="url"
-            >
-                <Key
-                    latin:keyLabel="/"
-                    latin:keyStyle="f1MoreKeysStyle" />
-            </case>
-            <case
-                latin:mode="email"
-            >
-                <Key
-                    latin:keyLabel="\@"
-                    latin:keyStyle="f1MoreKeysStyle" />
-            </case>
-            <case
-                latin:hasShortcutKey="true"
-            >
-                <Key
-                    latin:keyStyle="shortcutKeyStyle" />
-            </case>
-            <!-- latin:hasShortcutKey="false" -->
-            <default>
-                <Key
-                    latin:keyLabel="!text/keylabel_for_comma"
-                    latin:keyLabelFlags="hasPopupHint"
-                    latin:additionalMoreKeys="!text/more_keys_for_comma"
-                    latin:keyStyle="f1MoreKeysStyle" />
-            </default>
-        </switch>
-        <switch>
-            <case
-                latin:languageCode="fa"
-                latin:languageSwitchKeyEnabled="true"
-            >
-                <Key
-                    latin:keyStyle="languageSwitchKeyStyle" />
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="30%p" />
-                <Key
-                    latin:keyStyle="zwnjKeyStyle" />
-            </case>
-            <case
-                latin:languageCode="fa"
-                latin:languageSwitchKeyEnabled="false"
-            >
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="40%p" />
-                <Key
-                    latin:keyStyle="zwnjKeyStyle" />
-            </case>
-            <case
-                latin:languageSwitchKeyEnabled="true"
-            >
-                <Key
-                    latin:keyStyle="languageSwitchKeyStyle" />
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="40%p" />
-            </case>
-            <!-- languageSwitchKeyEnabled="false" -->
-            <default>
-                <Key
-                    latin:keyStyle="spaceKeyStyle"
-                    latin:keyWidth="50%p" />
-            </default>
-        </switch>
+        <include
+            latin:keyboardLayout="@xml/key_f1" />
+        <include
+            latin:keyboardLayout="@xml/key_space" />
         <Key
             latin:keyStyle="punctuationKeyStyle" />
         <Key
diff --git a/java/res/xml/rows_symbols4.xml b/java/res/xml/row_symbols4.xml
similarity index 100%
rename from java/res/xml/rows_symbols4.xml
rename to java/res/xml/row_symbols4.xml
diff --git a/java/res/xml/rows_symbols_shift4.xml b/java/res/xml/row_symbols_shift4.xml
similarity index 100%
rename from java/res/xml/rows_symbols_shift4.xml
rename to java/res/xml/row_symbols_shift4.xml
diff --git a/java/res/xml/rows_symbols.xml b/java/res/xml/rows_symbols.xml
index dcd8d59d8bc96b22dab397690814ac81b3b3c2e0..2a73ffbf9dc77abb1b923f18417cd66cb90c29f4 100644
--- a/java/res/xml/rows_symbols.xml
+++ b/java/res/xml/rows_symbols.xml
@@ -44,5 +44,5 @@
             latin:keyboardLayout="@xml/rowkeys_symbols3" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols4" />
+        latin:keyboardLayout="@xml/row_symbols4" />
 </merge>
diff --git a/java/res/xml/rows_symbols_shift.xml b/java/res/xml/rows_symbols_shift.xml
index 6205eeddda88e07d2a1f56d6aec0480a6a8da726..0ab9715c1ae2c30be7847d3f0f0363756951be75 100644
--- a/java/res/xml/rows_symbols_shift.xml
+++ b/java/res/xml/rows_symbols_shift.xml
@@ -44,5 +44,5 @@
             latin:keyboardLayout="@xml/rowkeys_symbols_shift3" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/rows_symbols_shift4" />
+        latin:keyboardLayout="@xml/row_symbols_shift4" />
 </merge>