diff --git a/java/res/xml-ar/kbd_qwerty.xml b/java/res/xml-ar/kbd_qwerty.xml
index 06448dbbd1484349c9c5db5cd431e65d82fbea24..57a6d2caf4cf8a096a34cf48b66f2a57ac84483c 100644
--- a/java/res/xml-ar/kbd_qwerty.xml
+++ b/java/res/xml-ar/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="ar"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_ar_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_arabic" />
 </Keyboard>
diff --git a/java/res/xml-cs/kbd_qwerty.xml b/java/res/xml-cs/kbd_qwerty.xml
index 57401d4ad5f68b97ecafe032ebb135b830c86102..9991ea2d220700347ee8ddd78c1b645b9e9bc252 100644
--- a/java/res/xml-cs/kbd_qwerty.xml
+++ b/java/res/xml-cs/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="cs"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwertz_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_qwertz" />
 </Keyboard>
diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml
index 34d75f72f969c280d9b01d210d91101e275d7d5a..37a50fdfd9cd6b3eba4fa3ad7f31cde5f38e5e75 100644
--- a/java/res/xml-da/kbd_qwerty.xml
+++ b/java/res/xml-da/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="da"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+        latin:keyboardLayout="@xml/kbd_rows_scandinavian" />
 </Keyboard>
diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml
index 3eec54dd000a1b265ec33df6d29c68ff01cdb61b..89e10b26d5364bf413968ed2166fef90290177b0 100644
--- a/java/res/xml-de/kbd_qwerty.xml
+++ b/java/res/xml-de/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="de"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwertz_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_qwertz" />
 </Keyboard>
diff --git a/java/res/xml-es/kbd_qwerty.xml b/java/res/xml-es/kbd_qwerty.xml
index fc394f72c9d49da9445d9e21c1322236634ae31d..3973a6a5ac6688f6fe71cd993c6186edfcd0bc6c 100644
--- a/java/res/xml-es/kbd_qwerty.xml
+++ b/java/res/xml-es/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="es,es_US"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_qwerty" />
 </Keyboard>
diff --git a/java/res/xml-fi/kbd_qwerty.xml b/java/res/xml-fi/kbd_qwerty.xml
index 2c152e95c0be3ceec002bd4ac768f8b6f5c5d4e7..75721e057e5e1e6eebe73eb789412bcb3b6dcdff 100644
--- a/java/res/xml-fi/kbd_qwerty.xml
+++ b/java/res/xml-fi/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="fi"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+        latin:keyboardLayout="@xml/kbd_rows_scandinavian" />
 </Keyboard>
diff --git a/java/res/xml-fr-rCA/kbd_qwerty.xml b/java/res/xml-fr-rCA/kbd_qwerty.xml
index 9d232dd797af469f6f5c8a3b9bcfc5abdb008b64..7bdfbadf1cbb2aef8b24961160ff16e902143feb 100644
--- a/java/res/xml-fr-rCA/kbd_qwerty.xml
+++ b/java/res/xml-fr-rCA/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="fr_CA"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_qwerty" />
 </Keyboard>
diff --git a/java/res/xml-fr-rCH/kbd_qwerty.xml b/java/res/xml-fr-rCH/kbd_qwerty.xml
index 1ab8cf593f4edaed04843407a15eabfa37ca8d10..41b701d830152d9c3be7a91f2aa6e27f1238d5fe 100644
--- a/java/res/xml-fr-rCH/kbd_qwerty.xml
+++ b/java/res/xml-fr-rCH/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="fr_CH"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwertz_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_qwertz" />
 </Keyboard>
diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml
index 0feed4174055148629b41e03d40311c93b039fec..8c730a24f9c895373d730b0b0132ea3405d0dfd9 100644
--- a/java/res/xml-fr/kbd_qwerty.xml
+++ b/java/res/xml-fr/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="fr"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_azerty_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_azerty" />
 </Keyboard>
diff --git a/java/res/xml-hu/kbd_qwerty.xml b/java/res/xml-hu/kbd_qwerty.xml
index 8c684b71369b9b2b88b11d0fbdc0bb69f662f70e..3195d5b1fe44fb8328e98228a21d4ad592b0a14a 100644
--- a/java/res/xml-hu/kbd_qwerty.xml
+++ b/java/res/xml-hu/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="hu"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwertz_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_qwertz" />
 </Keyboard>
diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml
index 430bd9463140dc11ac25168014c0c5030aafeff5..dc2c5d35ac8bcf4bb5fe75f9b5bf3ca8631a4362 100644
--- a/java/res/xml-iw/kbd_qwerty.xml
+++ b/java/res/xml-iw/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="iw"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_iw_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_hebrew" />
 </Keyboard>
diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml
index 7dd6d6c877505782201f75cd54591cc62c01f986..1f4e86e899a1d921deca82c718bcece821133149 100644
--- a/java/res/xml-nb/kbd_qwerty.xml
+++ b/java/res/xml-nb/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="nb"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+        latin:keyboardLayout="@xml/kbd_rows_scandinavian" />
 </Keyboard>
diff --git a/java/res/xml-pl/kbd_qwerty.xml b/java/res/xml-pl/kbd_qwerty.xml
index 33315da59812980913d6b247de3fad5b73ecef67..44312c52c8a417f098c7d5d960127d57725fa3e6 100644
--- a/java/res/xml-pl/kbd_qwerty.xml
+++ b/java/res/xml-pl/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="pl"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_qwerty" />
 </Keyboard>
diff --git a/java/res/xml-pt/kbd_qwerty.xml b/java/res/xml-pt/kbd_qwerty.xml
index 7da75d4140bb49bf4add447c4e216abe00c32bc8..f5dcbc61bda5235fe8914ce2a6b6f029e2c52aba 100644
--- a/java/res/xml-pt/kbd_qwerty.xml
+++ b/java/res/xml-pt/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="pt"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_qwerty" />
 </Keyboard>
diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml
index 258caf18c1a8a1895a955b0141b803a075bed751..aee1b1bfcf702d6e25da37823b97907e3ea6feca 100644
--- a/java/res/xml-ru/kbd_qwerty.xml
+++ b/java/res/xml-ru/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="ru"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_ru_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_russian" />
 </Keyboard>
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index 89c4700b945807f2c4fe9a450f44b0c8c5c9dcfb..58fc187c279cff5461d18218fe8c2cd9a12cc373 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="sr"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_sr_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_serbian" />
 </Keyboard>
diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml
index d3baf2d28b9657685de905d5bd981fe640afe616..e29d9abcee2c1f51e794c51519430f178ba0d7e4 100644
--- a/java/res/xml-sv/kbd_qwerty.xml
+++ b/java/res/xml-sv/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="sv"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+        latin:keyboardLayout="@xml/kbd_rows_scandinavian" />
 </Keyboard>
diff --git a/java/res/xml-sw600dp/kbd_rows_arabic.xml b/java/res/xml-sw600dp/kbd_rows_arabic.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bc37d5a9fbd4456ce1174595e90e572c27998a15
--- /dev/null
+++ b/java/res/xml-sw600dp/kbd_rows_arabic.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<!-- This file for Arabic layout is an alpha version. It allows to enter   -->
+<!-- some right-to-left text, but it has gone through no study whatsoever, -->
+<!-- and needs to be run through UX.                                       -->
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/kbd_key_styles" />
+    <Row
+        latin:keyWidth="8.0%p"
+    >
+        <Key
+            latin:keyLabel="ض"
+            latin:keyEdgeFlags="left" />
+        <Key
+            latin:keyLabel="ص" />
+        <Key
+            latin:keyLabel="Ø«" />
+        <Key
+            latin:keyLabel="Ù‚" />
+        <Key
+            latin:keyLabel="ف"
+            latin:popupCharacters="ف,ڤ" />
+        <Key
+            latin:keyLabel="غ" />
+        <Key
+            latin:keyLabel="ع" />
+        <Key
+            latin:keyLabel="Ù‡"
+            latin:popupCharacters="ه,هـ" />
+        <Key
+            latin:keyLabel="Ø®" />
+        <Key
+            latin:keyLabel="Ø­" />
+        <Key
+            latin:keyLabel="ج"
+            latin:popupCharacters="ج,چ" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyXPos="-10.0%p"
+            latin:keyWidth="fillBoth"
+            latin:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        latin:keyWidth="8.0%p"
+    >
+        <Key
+            latin:keyLabel="Ø´"
+            latin:keyXPos="3.0%p" />
+        <Key
+            latin:keyLabel="س" />
+        <Key
+            latin:keyLabel="ÙŠ" />
+        <Key
+            latin:keyLabel="ب"
+            latin:popupCharacters="ب,پ" />
+        <Key
+            latin:keyLabel="Ù„"
+            latin:popupCharacters="ل,لا" />
+        <Key
+            latin:keyLabel="ا"
+            latin:popupCharacters="ا,أ,إ,آ" />
+        <Key
+            latin:keyLabel="ت" />
+        <Key
+            latin:keyLabel="Ù†" />
+        <Key
+            latin:keyLabel="Ù…" />
+        <Key
+            latin:keyLabel="Ùƒ"
+            latin:popupCharacters="Ùƒ,Ú¯" />
+        <Key
+            latin:keyLabel="Ø·" />
+        <Key
+            latin:keyStyle="returnKeyStyle"
+            latin:keyXPos="-14.6%p"
+            latin:keyWidth="fillBoth"
+            latin:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        latin:keyWidth="7.65%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="8.0%p"
+            latin:keyEdgeFlags="left" />
+        <Key
+            latin:keyLabel="ئ" />
+        <Key
+            latin:keyLabel="Ø¡" />
+        <Key
+            latin:keyLabel="ؤ" />
+        <Key
+            latin:keyLabel="ر" />
+        <Key
+            latin:keyLabel="Ø°" />
+        <Key
+            latin:keyLabel="Ù‰" />
+        <Key
+            latin:keyLabel="Ø©" />
+        <Key
+            latin:keyLabel="Ùˆ" />
+        <Key
+            latin:keyLabel="ز"
+            latin:popupCharacters="ز,ژ" />
+        <Key
+            latin:keyLabel="ظ" />
+        <Key
+            latin:keyLabel="د" />
+        <include
+            latin:keyboardLayout="@xml/kbd_row3_right" />
+        </Row>
+    <include latin:keyboardLayout="@xml/kbd_qwerty_row4" />
+</merge>
diff --git a/java/res/xml-sw600dp/kbd_azerty_rows.xml b/java/res/xml-sw600dp/kbd_rows_azerty.xml
similarity index 97%
rename from java/res/xml-sw600dp/kbd_azerty_rows.xml
rename to java/res/xml-sw600dp/kbd_rows_azerty.xml
index 269c6ef8f345214ec241ff19939410fa147b7216..4df45eb3429fbec1aee83abd8860c0a961b9f7b2 100644
--- a/java/res/xml-sw600dp/kbd_azerty_rows.xml
+++ b/java/res/xml-sw600dp/kbd_rows_azerty.xml
@@ -24,7 +24,7 @@
     <include
         latin:keyboardLayout="@xml/kbd_key_styles" />
     <Row
-        latin:keyWidth="9.0%p"
+        latin:keyWidth="8.5%p"
         latin:rowEdgeFlags="top"
     >
         <Key
@@ -65,11 +65,12 @@
             latin:keyEdgeFlags="right" />
     </Row>
     <Row
-        latin:keyWidth="9.0%p"
+        latin:keyWidth="8.5%p"
     >
         <Key
             latin:keyLabel="q"
             latin:popupCharacters="@string/alternates_for_q"
+            latin:keyXPos="5.0%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="s"
@@ -101,7 +102,7 @@
             latin:keyEdgeFlags="right" />
     </Row>
     <Row
-        latin:keyWidth="8.9%p"
+        latin:keyWidth="8.5%p"
     >
         <Key
             latin:keyStyle="shiftKeyStyle"
diff --git a/java/res/xml-sw600dp/kbd_rows_hebrew.xml b/java/res/xml-sw600dp/kbd_rows_hebrew.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a1475376b56b8a219bebc9fe49a8a06790c864d2
--- /dev/null
+++ b/java/res/xml-sw600dp/kbd_rows_hebrew.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        latin:keyboardLayout="@xml/kbd_key_styles" />
+    <Row
+        latin:keyWidth="8.600%p"
+        latin:rowEdgeFlags="top"
+    >
+        <Key
+            latin:keyLabel="," />
+        <Key
+            latin:keyLabel="." />
+        <Key
+            latin:keyLabel="ק" />
+        <Key
+            latin:keyLabel="ר" />
+        <Key
+            latin:keyLabel="א" />
+        <Key
+            latin:keyLabel="ט" />
+        <Key
+            latin:keyLabel="ו" />
+        <Key
+            latin:keyLabel="ן" />
+        <Key
+            latin:keyLabel="ם" />
+        <Key
+            latin:keyLabel="פ" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyXPos="-12.000%p"
+            latin:keyWidth="fillBoth"
+            latin:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        latin:keyWidth="8.600%p"
+    >
+        <Key
+            latin:keyLabel="ש"
+            latin:keyXPos="4.000%p" />
+        <Key
+            latin:keyLabel="ד" />
+        <Key
+            latin:keyLabel="×’"
+            latin:popupCharacters="ג,ג׳" />
+        <Key
+            latin:keyLabel="×›" />
+        <Key
+            latin:keyLabel="×¢" />
+        <Key
+            latin:keyLabel="×™"
+            latin:popupCharacters="י,ײַ" />
+        <Key
+            latin:keyLabel="×—"
+            latin:popupCharacters="ח,ח׳" />
+        <Key
+            latin:keyLabel="ל" />
+        <Key
+            latin:keyLabel="ך" />
+        <Key
+            latin:keyLabel="×£" />
+        <Key
+            latin:keyStyle="returnKeyStyle"
+            latin:keyXPos="-10.400%p"
+            latin:keyWidth="fillBoth"
+            latin:keyEdgeFlags="right" />
+    </Row>
+    <Row
+        latin:keyWidth="8.600%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.000%p"
+            latin:keyEdgeFlags="left" />
+        <Key
+            latin:keyLabel="×–"
+            latin:popupCharacters="ז,ז׳" />
+        <Key
+            latin:keyLabel="ס" />
+        <Key
+            latin:keyLabel="ב" />
+        <Key
+            latin:keyLabel="×”" />
+        <Key
+            latin:keyLabel="× " />
+        <Key
+            latin:keyLabel="מ" />
+        <Key
+            latin:keyLabel="צ"
+            latin:popupCharacters="צ,צ׳" />
+        <Key
+            latin:keyLabel="ת"
+            latin:popupCharacters="ת,ת׳" />
+        <Key
+            latin:keyLabel="×¥"
+            latin:popupCharacters="ץ,ץ׳" />
+        <include
+            latin:keyboardLayout="@xml/kbd_row3_right" />
+    </Row>
+    <include latin:keyboardLayout="@xml/kbd_qwerty_row4" />
+</merge>
diff --git a/java/res/xml-sw600dp/kbd_qwerty_rows.xml b/java/res/xml-sw600dp/kbd_rows_qwerty.xml
similarity index 100%
rename from java/res/xml-sw600dp/kbd_qwerty_rows.xml
rename to java/res/xml-sw600dp/kbd_rows_qwerty.xml
diff --git a/java/res/xml-sw600dp/kbd_qwertz_rows.xml b/java/res/xml-sw600dp/kbd_rows_qwertz.xml
similarity index 100%
rename from java/res/xml-sw600dp/kbd_qwertz_rows.xml
rename to java/res/xml-sw600dp/kbd_rows_qwertz.xml
diff --git a/java/res/xml-sw600dp/kbd_ru_rows.xml b/java/res/xml-sw600dp/kbd_rows_russian.xml
similarity index 100%
rename from java/res/xml-sw600dp/kbd_ru_rows.xml
rename to java/res/xml-sw600dp/kbd_rows_russian.xml
diff --git a/java/res/xml-sw600dp/kbd_qwerty_rows_scandinavia.xml b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
similarity index 67%
rename from java/res/xml-sw600dp/kbd_qwerty_rows_scandinavia.xml
rename to java/res/xml-sw600dp/kbd_rows_scandinavian.xml
index 0bdcd21f407d10b472740b711a3d3dc50c233e5f..3666ead5116d9c0885a0f959e483a12f78b19401 100644
--- a/java/res/xml-sw600dp/kbd_qwerty_rows_scandinavia.xml
+++ b/java/res/xml-sw600dp/kbd_rows_scandinavian.xml
@@ -24,13 +24,12 @@
     <include
         latin:keyboardLayout="@xml/kbd_key_styles" />
     <Row
-        latin:keyWidth="8.0%p"
+        latin:keyWidth="7.9%p"
         latin:rowEdgeFlags="top"
     >
         <Key
             latin:keyLabel="q"
             latin:popupCharacters="@string/alternates_for_q"
-            latin:keyXPos="2.15%p"
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="w"
@@ -68,10 +67,11 @@
             latin:keyEdgeFlags="right" />
     </Row>
     <Row
-        latin:keyWidth="8.0%p"
+        latin:keyWidth="7.9%p"
     >
         <Key
             latin:keyLabel="a"
+            latin:keyXPos="3.5%p"
             latin:popupCharacters="@string/alternates_for_a"
             latin:keyEdgeFlags="left" />
         <Key
@@ -107,8 +107,60 @@
             latin:keyWidth="fillBoth"
             latin:keyEdgeFlags="right" />
     </Row>
-    <include
-        latin:keyboardLayout="@xml/kbd_qwerty_row3" />
+    <Row
+        latin:keyWidth="7.9%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.0%p"
+            latin:keyEdgeFlags="left" />
+        <Spacer
+            latin:keyWidth="4.35%p" />
+        <Key
+            latin:keyLabel="z"
+            latin:popupCharacters="@string/alternates_for_z" />
+        <Key
+            latin:keyLabel="x" />
+        <Key
+            latin:keyLabel="c"
+            latin:popupCharacters="@string/alternates_for_c" />
+        <Key
+            latin:keyLabel="v"
+            latin:popupCharacters="@string/alternates_for_v" />
+        <Key
+            latin:keyLabel="b" />
+        <Key
+            latin:keyLabel="n"
+            latin:popupCharacters="@string/alternates_for_n" />
+        <Key
+            latin:keyLabel="m" />
+        <switch>
+            <case
+                latin:mode="email"
+            >
+                <Key
+                    latin:keyLabel="," />
+                <Key
+                    latin:keyLabel="." />
+            </case>
+            <default>
+                <Key
+                    latin:keyLabel=","
+                    latin:keyLabelOption="hasUppercaseLetter"
+                    latin:keyHintLetter="!"
+                    latin:popupCharacters="!" />
+                <Key
+                    latin:keyLabel="."
+                    latin:keyLabelOption="hasUppercaseLetter"
+                    latin:keyHintLetter="\?"
+                    latin:popupCharacters="\?" />
+            </default>
+        </switch>
+        <Spacer
+            latin:keyWidth="4.35%p" />
+        <include
+            latin:keyboardLayout="@xml/kbd_row3_right" />
+    </Row>
     <include
         latin:keyboardLayout="@xml/kbd_qwerty_row4" />
 </merge>
diff --git a/java/res/xml-sw600dp/kbd_sr_rows.xml b/java/res/xml-sw600dp/kbd_rows_serbian.xml
similarity index 100%
rename from java/res/xml-sw600dp/kbd_sr_rows.xml
rename to java/res/xml-sw600dp/kbd_rows_serbian.xml
diff --git a/java/res/xml-sw768dp/kbd_ar_rows.xml b/java/res/xml-sw768dp/kbd_rows_arabic.xml
similarity index 100%
rename from java/res/xml-sw768dp/kbd_ar_rows.xml
rename to java/res/xml-sw768dp/kbd_rows_arabic.xml
diff --git a/java/res/xml-sw768dp/kbd_azerty_rows.xml b/java/res/xml-sw768dp/kbd_rows_azerty.xml
similarity index 100%
rename from java/res/xml-sw768dp/kbd_azerty_rows.xml
rename to java/res/xml-sw768dp/kbd_rows_azerty.xml
diff --git a/java/res/xml-sw768dp/kbd_iw_rows.xml b/java/res/xml-sw768dp/kbd_rows_hebrew.xml
similarity index 100%
rename from java/res/xml-sw768dp/kbd_iw_rows.xml
rename to java/res/xml-sw768dp/kbd_rows_hebrew.xml
diff --git a/java/res/xml-sw768dp/kbd_qwerty_rows.xml b/java/res/xml-sw768dp/kbd_rows_qwerty.xml
similarity index 100%
rename from java/res/xml-sw768dp/kbd_qwerty_rows.xml
rename to java/res/xml-sw768dp/kbd_rows_qwerty.xml
diff --git a/java/res/xml-sw768dp/kbd_qwertz_rows.xml b/java/res/xml-sw768dp/kbd_rows_qwertz.xml
similarity index 100%
rename from java/res/xml-sw768dp/kbd_qwertz_rows.xml
rename to java/res/xml-sw768dp/kbd_rows_qwertz.xml
diff --git a/java/res/xml-sw768dp/kbd_ru_rows.xml b/java/res/xml-sw768dp/kbd_rows_russian.xml
similarity index 100%
rename from java/res/xml-sw768dp/kbd_ru_rows.xml
rename to java/res/xml-sw768dp/kbd_rows_russian.xml
diff --git a/java/res/xml-sw768dp/kbd_qwerty_rows_scandinavia.xml b/java/res/xml-sw768dp/kbd_rows_scandinavian.xml
similarity index 100%
rename from java/res/xml-sw768dp/kbd_qwerty_rows_scandinavia.xml
rename to java/res/xml-sw768dp/kbd_rows_scandinavian.xml
diff --git a/java/res/xml-sw768dp/kbd_sr_rows.xml b/java/res/xml-sw768dp/kbd_rows_serbian.xml
similarity index 100%
rename from java/res/xml-sw768dp/kbd_sr_rows.xml
rename to java/res/xml-sw768dp/kbd_rows_serbian.xml
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index c0061ce333a0f570312d9cbee2cbe1484ca35074..40917b9210ae59c704e05d8d2c5c715ff111ff5c 100644
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -23,5 +23,5 @@
     latin:keyboardLocale="en_GB,en_US"
 >
     <include
-        latin:keyboardLayout="@xml/kbd_qwerty_rows" />
+        latin:keyboardLayout="@xml/kbd_rows_qwerty" />
 </Keyboard>
diff --git a/java/res/xml/kbd_ar_rows.xml b/java/res/xml/kbd_rows_arabic.xml
similarity index 100%
rename from java/res/xml/kbd_ar_rows.xml
rename to java/res/xml/kbd_rows_arabic.xml
diff --git a/java/res/xml/kbd_azerty_rows.xml b/java/res/xml/kbd_rows_azerty.xml
similarity index 100%
rename from java/res/xml/kbd_azerty_rows.xml
rename to java/res/xml/kbd_rows_azerty.xml
diff --git a/java/res/xml/kbd_iw_rows.xml b/java/res/xml/kbd_rows_hebrew.xml
similarity index 100%
rename from java/res/xml/kbd_iw_rows.xml
rename to java/res/xml/kbd_rows_hebrew.xml
diff --git a/java/res/xml/kbd_qwerty_rows.xml b/java/res/xml/kbd_rows_qwerty.xml
similarity index 100%
rename from java/res/xml/kbd_qwerty_rows.xml
rename to java/res/xml/kbd_rows_qwerty.xml
diff --git a/java/res/xml/kbd_qwertz_rows.xml b/java/res/xml/kbd_rows_qwertz.xml
similarity index 100%
rename from java/res/xml/kbd_qwertz_rows.xml
rename to java/res/xml/kbd_rows_qwertz.xml
diff --git a/java/res/xml/kbd_ru_rows.xml b/java/res/xml/kbd_rows_russian.xml
similarity index 100%
rename from java/res/xml/kbd_ru_rows.xml
rename to java/res/xml/kbd_rows_russian.xml
diff --git a/java/res/xml/kbd_qwerty_rows_scandinavia.xml b/java/res/xml/kbd_rows_scandinavian.xml
similarity index 100%
rename from java/res/xml/kbd_qwerty_rows_scandinavia.xml
rename to java/res/xml/kbd_rows_scandinavian.xml
diff --git a/java/res/xml/kbd_sr_rows.xml b/java/res/xml/kbd_rows_serbian.xml
similarity index 100%
rename from java/res/xml/kbd_sr_rows.xml
rename to java/res/xml/kbd_rows_serbian.xml