Merge "Remove useless test"
diff --git a/java/res/xml-sw600dp/key_azerty_quote.xml b/java/res/xml-sw600dp/key_azerty_quote.xml
new file mode 100644
index 0000000..0e4a8ec
--- /dev/null
+++ b/java/res/xml-sw600dp/key_azerty_quote.xml
@@ -0,0 +1,29 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="\'"
+        latin:keyHintLabel=":"
+        latin:moreKeys=":"
+        latin:keyStyle="hasShiftedLetterHintStyle" />
+</merge>
diff --git a/java/res/xml-sw600dp/row_qwerty1.xml b/java/res/xml-sw600dp/row_qwerty1.xml
deleted file mode 100644
index 3d3a1a8..0000000
--- a/java/res/xml-sw600dp/row_qwerty1.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Row
-        latin:keyWidth="9.0%p"
-    >
-        <Key
-            latin:keyLabel="q" />
-        <Key
-            latin:keyLabel="w" />
-        <Key
-            latin:keyLabel="e"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="y"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="u"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p" />
-        <Key
-            latin:keyStyle="deleteKeyStyle"
-            latin:keyXPos="-10.0%p"
-            latin:keyWidth="fillBoth" />
-    </Row>
-</merge>
diff --git a/java/res/xml-sw600dp/row_qwerty2.xml b/java/res/xml-sw600dp/row_qwerty2.xml
deleted file mode 100644
index cabb9cb..0000000
--- a/java/res/xml-sw600dp/row_qwerty2.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Row
-        latin:keyWidth="9.0%p"
-    >
-        <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a"
-            latin:keyXPos="4.5%p" />
-        <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <Key
-            latin:keyStyle="enterKeyStyle"
-            latin:keyXPos="-14.6%p"
-            latin:keyWidth="fillBoth" />
-    </Row>
-</merge>
diff --git a/java/res/xml-sw600dp/row_qwerty3.xml b/java/res/xml-sw600dp/row_qwerty3.xml
deleted file mode 100644
index 3d19904..0000000
--- a/java/res/xml-sw600dp/row_qwerty3.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2011, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Row
-        latin:keyWidth="8.9%p"
-    >
-        <Key
-            latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="10.0%p" />
-        <Key
-            latin:keyLabel="z"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="m" />
-        <include
-            latin:keyboardLayout="@xml/keys_comma_period" />
-        <include
-            latin:keyboardLayout="@xml/key_smiley"
-            latin:keyXPos="-8.9%p"
-            latin:keyWidth="fillBoth" />
-    </Row>
-</merge>
diff --git a/java/res/xml-sw600dp/rowkeys_arabic1.xml b/java/res/xml-sw600dp/rowkeys_arabic1.xml
new file mode 100644
index 0000000..44fdc67
--- /dev/null
+++ b/java/res/xml-sw600dp/rowkeys_arabic1.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"
+>
+    <!-- U+0636: "ض" ARABIC LETTER DAD -->
+    <Key
+        latin:keyLabel="&#x0636;" />
+    <!-- U+0635: "ص" ARABIC LETTER SAD -->
+    <Key
+        latin:keyLabel="&#x0635;" />
+    <!-- U+062B: "ث" ARABIC LETTER THEH -->
+    <Key
+        latin:keyLabel="&#x062B;" />
+    <!-- U+0642: "ق" ARABIC LETTER QAF
+         U+06A8: "ڨ" ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
+    <!-- TODO: DroidSansArabic lacks the glyph of U+06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
+    <Key
+        latin:keyLabel="&#x0642;"
+        latin:moreKeys="&#x06A8;" />
+    <!-- U+0641: "ف" ARABIC LETTER FEH
+         U+06A4: "ڤ" ARABIC LETTER VEH
+         U+06A2: "ڢ" ARABIC LETTER FEH WITH DOT MOVED BELOW
+         U+06A5: "ڥ" ARABIC LETTER FEH WITH THREE DOTS BELOW -->
+    <!-- TODO: DroidSansArabic lacks the glyph of U+06A2 ARABIC LETTER FEH WITH DOT MOVED BELOW -->
+    <!-- TODO: DroidSansArabic lacks the glyph of U+06A5 ARABIC LETTER FEH WITH THREE DOTS BELOW -->
+    <Key
+        latin:keyLabel="&#x0641;"
+        latin:moreKeys="&#x06A4;,&#x06A2;,&#x06A5;" />
+    <!-- U+063A: "غ" ARABIC LETTER GHAIN -->
+    <Key
+        latin:keyLabel="&#x063A;" />
+    <!-- U+0639: "ع" ARABIC LETTER AIN -->
+    <Key
+        latin:keyLabel="&#x0639;" />
+    <!-- U+0647: "ه" ARABIC LETTER HEH
+         U+FEEB: "ﻫ" ARABIC LETTER HEH INITIAL FORM
+         U+0647 U+200D: ARABIC LETTER HEH + ZERO WIDTH JOINER -->
+    <Key
+        latin:keyLabel="&#x0647;"
+        latin:moreKeys="&#xFEEB;|&#x0647;&#x200D;" />
+    <!-- U+062E: "خ" ARABIC LETTER KHAH -->
+    <Key
+        latin:keyLabel="&#x062E;" />
+    <!-- U+062D: "ح" ARABIC LETTER HAH -->
+    <Key
+        latin:keyLabel="&#x062D;" />
+    <!-- U+062C: "ج" ARABIC LETTER JEEM
+         U+0686: "چ" ARABIC LETTER TCHEH -->
+    <Key
+        latin:keyLabel="&#x062C;"
+        latin:moreKeys="&#x0686;" />
+</merge>
diff --git a/java/res/xml-sw600dp/rowkeys_arabic2.xml b/java/res/xml-sw600dp/rowkeys_arabic2.xml
new file mode 100644
index 0000000..3eba2fb
--- /dev/null
+++ b/java/res/xml-sw600dp/rowkeys_arabic2.xml
@@ -0,0 +1,83 @@
+<?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"
+>
+    <!-- U+0634: "ش" ARABIC LETTER SHEEN
+         U+069C: "ڜ" ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
+    <!-- TODO: DroidSansArabic lacks the glyph of U+069C ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
+    <Key
+        latin:keyLabel="&#x0634;"
+        latin:moreKeys="&#x069C;" />
+    <!-- U+0633: "س" ARABIC LETTER SEEN -->
+    <Key
+        latin:keyLabel="&#x0633;" />
+    <!-- U+064A: "ي" ARABIC LETTER YEH
+         U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
+         U+0649: "ى" ARABIC LETTER ALEF MAKSURA -->
+    <Key
+        latin:keyLabel="&#x064A;"
+        latin:moreKeys="&#x0626;,&#x0649;" />
+    <!-- U+0628: "ب" ARABIC LETTER BEH
+         U+067E: "پ" ARABIC LETTER PEH -->
+    <Key
+        latin:keyLabel="&#x0628;"
+        latin:moreKeys="&#x067E;" />
+    <!-- U+0644: "ل" ARABIC LETTER LAM
+         U+FEFB: "ﻻ" ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+         U+0627: "ا" ARABIC LETTER ALEF
+         U+FEF7: "ﻷ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+         U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
+         U+FEF9: "ﻹ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+         U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
+         U+FEF5: "ﻵ" ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+         U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
+    <Key
+        latin:keyLabel="&#x0644;"
+        latin:moreKeys="&#xFEFB;|&#x0644;&#x0627;,&#xFEF7;|&#x0644;&#x0623;,&#xFEF9;|&#x0644;&#x0625;,&#xFEF5;|&#x0644;&#x0622;" />
+    <!-- U+0627: "ا" ARABIC LETTER ALEF
+         U+0621: "ء" ARABIC LETTER HAMZA
+         U+0671: "ٱ" ARABIC LETTER ALEF WASLA
+         U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
+         U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
+         U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
+    <Key
+        latin:keyLabel="&#x0627;"
+        latin:moreKeys="&#x0621;,&#x0671;,&#x0623;,&#x0625;,&#x0622;" />
+    <!-- U+062A: "ت" ARABIC LETTER TEH -->
+    <Key
+        latin:keyLabel="&#x062A;" />
+    <!-- U+0646: "ن" ARABIC LETTER NOON -->
+    <Key
+        latin:keyLabel="&#x0646;" />
+    <!-- U+0645: "م" ARABIC LETTER MEEM -->
+    <Key
+        latin:keyLabel="&#x0645;" />
+    <!-- U+0643: "ك" ARABIC LETTER KAF
+         U+06AF: "گ" ARABIC LETTER GAF
+         U+06A9: "ک" ARABIC LETTER KEHEH -->
+    <Key
+        latin:keyLabel="&#x0643;"
+        latin:moreKeys="&#x06AF;,&#x06A9;" />
+    <!-- U+0637: "ط" ARABIC LETTER TAH -->
+    <Key
+        latin:keyLabel="&#x0637;" />
+</merge>
diff --git a/java/res/xml-sw600dp/rowkeys_arabic3.xml b/java/res/xml-sw600dp/rowkeys_arabic3.xml
new file mode 100644
index 0000000..911550f
--- /dev/null
+++ b/java/res/xml-sw600dp/rowkeys_arabic3.xml
@@ -0,0 +1,59 @@
+<?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"
+>
+    <!-- U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE -->
+    <Key
+        latin:keyLabel="&#x0626;" />
+    <!-- U+0621: "ء" ARABIC LETTER HAMZA -->
+    <Key
+        latin:keyLabel="&#x0621;" />
+    <!-- U+0624: "ؤ" ARABIC LETTER WAW WITH HAMZA ABOVE -->
+    <Key
+        latin:keyLabel="&#x0624;" />
+    <!-- U+0631: "ر" ARABIC LETTER REH -->
+    <Key
+        latin:keyLabel="&#x0631;" />
+    <!-- U+0630: "ذ" ARABIC LETTER THAL -->
+    <Key
+        latin:keyLabel="&#x0630;" />
+    <!-- U+0649: "ى" ARABIC LETTER ALEF MAKSURA -->
+    <Key
+        latin:keyLabel="&#x0649;" />
+    <!-- U+0629: "ة" ARABIC LETTER TEH MARBUTA -->
+    <Key
+        latin:keyLabel="&#x0629;" />
+    <!-- U+0648: "و" ARABIC LETTER WAW -->
+    <Key
+        latin:keyLabel="&#x0648;" />
+    <!-- U+0632: "ز" ARABIC LETTER ZAIN
+         U+0698: "ژ" ARABIC LETTER JEH -->
+    <Key
+        latin:keyLabel="&#x0632;"
+        latin:moreKeys="&#x0698;" />
+    <!-- U+0638: "ظ" ARABIC LETTER ZAH -->
+    <Key
+        latin:keyLabel="&#x0638;" />
+    <!-- U+062F: "د" ARABIC LETTER DAL -->
+    <Key
+        latin:keyLabel="&#x062F;" />
+</merge>
diff --git a/java/res/xml-sw600dp/rowkeys_azerty1.xml b/java/res/xml-sw600dp/rowkeys_azerty1.xml
new file mode 100644
index 0000000..ef35f25
--- /dev/null
+++ b/java/res/xml-sw600dp/rowkeys_azerty1.xml
@@ -0,0 +1,53 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="a"
+        latin:moreKeys="@string/more_keys_for_a" />
+    <Key
+        latin:keyLabel="z"
+        latin:moreKeys="@string/more_keys_for_z" />
+    <Key
+        latin:keyLabel="e"
+        latin:moreKeys="@string/more_keys_for_e" />
+    <Key
+        latin:keyLabel="r"
+        latin:moreKeys="@string/more_keys_for_r" />
+    <Key
+        latin:keyLabel="t"
+        latin:moreKeys="@string/more_keys_for_t" />
+    <Key
+        latin:keyLabel="y"
+        latin:moreKeys="@string/more_keys_for_y" />
+    <Key
+        latin:keyLabel="u"
+        latin:moreKeys="@string/more_keys_for_u" />
+    <Key
+        latin:keyLabel="i"
+        latin:moreKeys="@string/more_keys_for_i" />
+    <Key
+        latin:keyLabel="o"
+        latin:moreKeys="@string/more_keys_for_o" />
+    <Key
+        latin:keyLabel="p" />
+</merge>
diff --git a/java/res/xml-sw600dp/rowkeys_qwerty1.xml b/java/res/xml-sw600dp/rowkeys_qwerty1.xml
new file mode 100644
index 0000000..05101ec
--- /dev/null
+++ b/java/res/xml-sw600dp/rowkeys_qwerty1.xml
@@ -0,0 +1,51 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="q" />
+    <Key
+        latin:keyLabel="w" />
+    <Key
+        latin:keyLabel="e"
+        latin:moreKeys="@string/more_keys_for_e" />
+    <Key
+        latin:keyLabel="r"
+        latin:moreKeys="@string/more_keys_for_r" />
+    <Key
+        latin:keyLabel="t"
+        latin:moreKeys="@string/more_keys_for_t" />
+    <Key
+        latin:keyLabel="y"
+        latin:moreKeys="@string/more_keys_for_y" />
+    <Key
+        latin:keyLabel="u"
+        latin:moreKeys="@string/more_keys_for_u" />
+    <Key
+        latin:keyLabel="i"
+        latin:moreKeys="@string/more_keys_for_i" />
+    <Key
+        latin:keyLabel="o"
+        latin:moreKeys="@string/more_keys_for_o" />
+    <Key
+        latin:keyLabel="p" />
+</merge>
diff --git a/java/res/xml-sw600dp/rowkeys_qwertz1.xml b/java/res/xml-sw600dp/rowkeys_qwertz1.xml
new file mode 100644
index 0000000..d7461e6
--- /dev/null
+++ b/java/res/xml-sw600dp/rowkeys_qwertz1.xml
@@ -0,0 +1,51 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="q" />
+    <Key
+        latin:keyLabel="w" />
+    <Key
+        latin:keyLabel="e"
+        latin:moreKeys="@string/more_keys_for_e" />
+    <Key
+        latin:keyLabel="r"
+        latin:moreKeys="@string/more_keys_for_r" />
+    <Key
+        latin:keyLabel="t"
+        latin:moreKeys="@string/more_keys_for_t" />
+    <Key
+        latin:keyLabel="z"
+        latin:moreKeys="@string/more_keys_for_z" />
+    <Key
+        latin:keyLabel="u"
+        latin:moreKeys="@string/more_keys_for_u" />
+    <Key
+        latin:keyLabel="i"
+        latin:moreKeys="@string/more_keys_for_i" />
+    <Key
+        latin:keyLabel="o"
+        latin:moreKeys="@string/more_keys_for_o" />
+    <Key
+        latin:keyLabel="p" />
+</merge>
diff --git a/java/res/xml-sw600dp/rows_arabic.xml b/java/res/xml-sw600dp/rows_arabic.xml
index 60ad45e..9aecaa6 100644
--- a/java/res/xml-sw600dp/rows_arabic.xml
+++ b/java/res/xml-sw600dp/rows_arabic.xml
@@ -26,53 +26,8 @@
     <Row
         latin:keyWidth="8.0%p"
     >
-        <!-- U+0636: "ض" ARABIC LETTER DAD -->
-        <Key
-            latin:keyLabel="&#x0636;" />
-        <!-- U+0635: "ص" ARABIC LETTER SAD -->
-        <Key
-            latin:keyLabel="&#x0635;" />
-        <!-- U+062B: "ث" ARABIC LETTER THEH -->
-        <Key
-            latin:keyLabel="&#x062B;" />
-        <!-- U+0642: "ق" ARABIC LETTER QAF
-             U+06A8: "ڨ" ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
-        <Key
-            latin:keyLabel="&#x0642;"
-            latin:moreKeys="&#x06A8;" />
-        <!-- U+0641: "ف" ARABIC LETTER FEH
-             U+06A4: "ڤ" ARABIC LETTER VEH
-             U+06A2: "ڢ" ARABIC LETTER FEH WITH DOT MOVED BELOW
-             U+06A5: "ڥ" ARABIC LETTER FEH WITH THREE DOTS BELOW -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+06A2 ARABIC LETTER FEH WITH DOT MOVED BELOW -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+06A5 ARABIC LETTER FEH WITH THREE DOTS BELOW -->
-        <Key
-            latin:keyLabel="&#x0641;"
-            latin:moreKeys="&#x06A4;,&#x06A2;,&#x06A5;" />
-        <!-- U+063A: "غ" ARABIC LETTER GHAIN -->
-        <Key
-            latin:keyLabel="&#x063A;" />
-        <!-- U+0639: "ع" ARABIC LETTER AIN -->
-        <Key
-            latin:keyLabel="&#x0639;" />
-        <!-- U+0647: "ه" ARABIC LETTER HEH
-             U+FEEB: "ﻫ" ARABIC LETTER HEH INITIAL FORM
-             U+0647 U+200D: ARABIC LETTER HEH + ZERO WIDTH JOINER -->
-        <Key
-            latin:keyLabel="&#x0647;"
-            latin:moreKeys="&#xFEEB;|&#x0647;&#x200D;" />
-        <!-- U+062E: "خ" ARABIC LETTER KHAH -->
-        <Key
-            latin:keyLabel="&#x062E;" />
-        <!-- U+062D: "ح" ARABIC LETTER HAH -->
-        <Key
-            latin:keyLabel="&#x062D;" />
-        <!-- U+062C: "ج" ARABIC LETTER JEEM
-             U+0686: "چ" ARABIC LETTER TCHEH -->
-        <Key
-            latin:keyLabel="&#x062C;"
-            latin:moreKeys="&#x0686;" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_arabic1" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-10.0%p"
@@ -81,66 +36,9 @@
     <Row
         latin:keyWidth="8.0%p"
     >
-        <!-- U+0634: "ش" ARABIC LETTER SHEEN
-             U+069C: "ڜ" ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+069C ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
-        <Key
-            latin:keyLabel="&#x0634;"
-            latin:moreKeys="&#x069C;"
+        <include
+            latin:keyboardLayout="@xml/rowkeys_arabic2"
             latin:keyXPos="3.0%p" />
-        <!-- U+0633: "س" ARABIC LETTER SEEN -->
-        <Key
-            latin:keyLabel="&#x0633;" />
-        <!-- U+064A: "ي" ARABIC LETTER YEH
-             U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
-             U+0649: "ى" ARABIC LETTER ALEF MAKSURA -->
-        <Key
-            latin:keyLabel="&#x064A;"
-            latin:moreKeys="&#x0626;,&#x0649;" />
-        <!-- U+0628: "ب" ARABIC LETTER BEH
-             U+067E: "پ" ARABIC LETTER PEH -->
-        <Key
-            latin:keyLabel="&#x0628;"
-            latin:moreKeys="&#x067E;" />
-        <!-- U+0644: "ل" ARABIC LETTER LAM
-             U+FEFB: "ﻻ" ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-             U+0627: "ا" ARABIC LETTER ALEF
-             U+FEF7: "ﻷ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-             U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
-             U+FEF9: "ﻹ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-             U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
-             U+FEF5: "ﻵ" ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-             U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0644;"
-            latin:moreKeys="&#xFEFB;|&#x0644;&#x0627;,&#xFEF7;|&#x0644;&#x0623;,&#xFEF9;|&#x0644;&#x0625;,&#xFEF5;|&#x0644;&#x0622;" />
-        <!-- U+0627: "ا" ARABIC LETTER ALEF
-             U+0621: "ء" ARABIC LETTER HAMZA
-             U+0671: "ٱ" ARABIC LETTER ALEF WASLA
-             U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
-             U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
-             U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0627;"
-            latin:moreKeys="&#x0621;,&#x0671;,&#x0623;,&#x0625;,&#x0622;" />
-        <!-- U+062A: "ت" ARABIC LETTER TEH -->
-        <Key
-            latin:keyLabel="&#x062A;" />
-        <!-- U+0646: "ن" ARABIC LETTER NOON -->
-        <Key
-            latin:keyLabel="&#x0646;" />
-        <!-- U+0645: "م" ARABIC LETTER MEEM -->
-        <Key
-            latin:keyLabel="&#x0645;" />
-        <!-- U+0643: "ك" ARABIC LETTER KAF
-             U+06AF: "گ" ARABIC LETTER GAF
-             U+06A9: "ک" ARABIC LETTER KEHEH -->
-        <Key
-            latin:keyLabel="&#x0643;"
-            latin:moreKeys="&#x06AF;,&#x06A9;" />
-        <!-- U+0637: "ط" ARABIC LETTER TAH -->
-        <Key
-            latin:keyLabel="&#x0637;" />
         <Key
             latin:keyStyle="enterKeyStyle"
             latin:keyXPos="-14.6%p"
@@ -151,41 +49,8 @@
     >
         <include
             latin:keyboardLayout="@xml/key_smiley" />
-        <!-- U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0626;" />
-        <!-- U+0621: "ء" ARABIC LETTER HAMZA -->
-        <Key
-            latin:keyLabel="&#x0621;" />
-        <!-- U+0624: "ؤ" ARABIC LETTER WAW WITH HAMZA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0624;" />
-        <!-- U+0631: "ر" ARABIC LETTER REH -->
-        <Key
-            latin:keyLabel="&#x0631;" />
-        <!-- U+0630: "ذ" ARABIC LETTER THAL -->
-        <Key
-            latin:keyLabel="&#x0630;" />
-        <!-- U+0649: "ى" ARABIC LETTER ALEF MAKSURA -->
-        <Key
-            latin:keyLabel="&#x0649;" />
-        <!-- U+0629: "ة" ARABIC LETTER TEH MARBUTA -->
-        <Key
-            latin:keyLabel="&#x0629;" />
-        <!-- U+0648: "و" ARABIC LETTER WAW -->
-        <Key
-            latin:keyLabel="&#x0648;" />
-        <!-- U+0632: "ز" ARABIC LETTER ZAIN
-             U+0698: "ژ" ARABIC LETTER JEH -->
-        <Key
-            latin:keyLabel="&#x0632;"
-            latin:moreKeys="&#x0698;" />
-        <!-- U+0638: "ظ" ARABIC LETTER ZAH -->
-        <Key
-            latin:keyLabel="&#x0638;" />
-        <!-- U+062F: "د" ARABIC LETTER DAL -->
-        <Key
-            latin:keyLabel="&#x062F;" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_arabic3" />
     </Row>
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw600dp/rows_azerty.xml b/java/res/xml-sw600dp/rows_azerty.xml
index 5c79962..e09d8f8 100644
--- a/java/res/xml-sw600dp/rows_azerty.xml
+++ b/java/res/xml-sw600dp/rows_azerty.xml
@@ -26,35 +26,8 @@
     <Row
         latin:keyWidth="8.5%p"
     >
-        <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a" />
-        <Key
-            latin:keyLabel="z"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="e"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="y"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="u"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_azerty1" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-10.0%p"
@@ -63,33 +36,10 @@
     <Row
         latin:keyWidth="8.5%p"
     >
-        <Key
-            latin:keyLabel="q"
+        <include
+            latin:keyboardLayout="@xml/rowkeys_azerty2"
             latin:keyXPos="5.0%p" />
         <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <Key
-            latin:keyLabel="m" />
-        <Key
             latin:keyStyle="enterKeyStyle"
             latin:keyXPos="-14.6%p"
             latin:keyWidth="fillBoth" />
@@ -100,26 +50,8 @@
         <Key
             latin:keyStyle="shiftKeyStyle"
             latin:keyWidth="10.0%p" />
-        <Key
-            latin:keyLabel="w" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="\'"
-            latin:keyHintLabel=":"
-            latin:moreKeys=":"
-            latin:keyStyle="hasShiftedLetterHintStyle" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_azerty3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
         <include
diff --git a/java/res/xml-sw600dp/rows_qwerty.xml b/java/res/xml-sw600dp/rows_qwerty.xml
index eb41c50..8df41ac 100644
--- a/java/res/xml-sw600dp/rows_qwerty.xml
+++ b/java/res/xml-sw600dp/rows_qwerty.xml
@@ -23,12 +23,42 @@
 >
     <include
         latin:keyboardLayout="@xml/key_styles_common" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty1" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty2" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty3" />
+    <Row
+        latin:keyWidth="9.0%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyXPos="-10.0%p"
+            latin:keyWidth="fillBoth" />
+    </Row>
+    <Row
+        latin:keyWidth="9.0%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty2"
+            latin:keyXPos="4.5%p" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyXPos="-14.6%p"
+            latin:keyWidth="fillBoth" />
+    </Row>
+    <Row
+        latin:keyWidth="8.9%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.0%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
+        <include
+            latin:keyboardLayout="@xml/keys_comma_period" />
+        <include
+            latin:keyboardLayout="@xml/key_smiley"
+            latin:keyXPos="-8.9%p"
+            latin:keyWidth="fillBoth" />
+    </Row>
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml-sw600dp/rows_qwertz.xml b/java/res/xml-sw600dp/rows_qwertz.xml
index 6912f1c..e97bee9 100644
--- a/java/res/xml-sw600dp/rows_qwertz.xml
+++ b/java/res/xml-sw600dp/rows_qwertz.xml
@@ -26,64 +26,32 @@
     <Row
         latin:keyWidth="9.0%p"
     >
-        <Key
-            latin:keyLabel="q" />
-        <Key
-            latin:keyLabel="w" />
-        <Key
-            latin:keyLabel="e"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="z"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="u"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwertz1" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-10.0%p"
             latin:keyWidth="fillBoth" />
     </Row>
-    <include
-        latin:keyboardLayout="@xml/row_qwerty2" />
+    <Row
+        latin:keyWidth="9.0%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty2"
+            latin:keyXPos="4.5%p" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyXPos="-14.6%p"
+            latin:keyWidth="fillBoth" />
+    </Row>
     <Row
         latin:keyWidth="8.9%p"
     >
         <Key
             latin:keyStyle="shiftKeyStyle"
             latin:keyWidth="10.0%p" />
-        <Key
-            latin:keyLabel="y"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="m" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwertz3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
         <include
diff --git a/java/res/xml-sw600dp/rows_scandinavian.xml b/java/res/xml-sw600dp/rows_scandinavian.xml
index 912c406..df1e60f 100644
--- a/java/res/xml-sw600dp/rows_scandinavian.xml
+++ b/java/res/xml-sw600dp/rows_scandinavian.xml
@@ -26,35 +26,8 @@
     <Row
         latin:keyWidth="7.9%p"
     >
-        <Key
-            latin:keyLabel="q" />
-        <Key
-            latin:keyLabel="w" />
-        <Key
-            latin:keyLabel="e"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="y"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="u"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_scandinavia_row1_11" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_scandinavian1" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-10.0%p"
@@ -63,37 +36,9 @@
     <Row
         latin:keyWidth="7.9%p"
     >
-        <Key
-            latin:keyLabel="a"
-            latin:keyXPos="3.5%p"
-            latin:moreKeys="@string/more_keys_for_a" />
-        <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
-            latin:moreKeys="@string/more_keys_for_scandinavia_row2_10" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
-            latin:moreKeys="@string/more_keys_for_scandinavia_row2_11" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_scandinavian2"
+            latin:keyXPos="3.5%p" />
         <Key
             latin:keyStyle="enterKeyStyle"
             latin:keyXPos="-14.6%p"
@@ -107,24 +52,8 @@
             latin:keyWidth="10.0%p" />
         <Spacer
             latin:keyWidth="4.35%p" />
-        <Key
-            latin:keyLabel="z"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="m" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
         <include
diff --git a/java/res/xml-sw600dp/rows_spanish.xml b/java/res/xml-sw600dp/rows_spanish.xml
index b6df257..a8f5524 100644
--- a/java/res/xml-sw600dp/rows_spanish.xml
+++ b/java/res/xml-sw600dp/rows_spanish.xml
@@ -23,46 +23,42 @@
 >
     <include
         latin:keyboardLayout="@xml/key_styles_common" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty1" />
+    <Row
+        latin:keyWidth="9.0%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyXPos="-10.0%p"
+            latin:keyWidth="fillBoth" />
+    </Row>
     <Row
         latin:keyWidth="8.5%p"
     >
-        <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a"
+        <include
+            latin:keyboardLayout="@xml/rowkeys_spanish2"
             latin:keyXPos="5.0%p" />
         <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
-        <Key
-            latin:keyLabel="&#x00F1;" />
-        <Key
             latin:keyStyle="enterKeyStyle"
             latin:keyXPos="-14.6%p"
             latin:keyWidth="fillBoth" />
     </Row>
-    <include
-        latin:keyboardLayout="@xml/row_qwerty3" />
+    <Row
+        latin:keyWidth="8.9%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="10.0%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
+        <include
+            latin:keyboardLayout="@xml/keys_comma_period" />
+        <include
+            latin:keyboardLayout="@xml/key_smiley"
+            latin:keyXPos="-8.9%p"
+            latin:keyWidth="fillBoth" />
+    </Row>
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml-sw768dp/row_qwerty1.xml b/java/res/xml-sw768dp/row_qwerty1.xml
deleted file mode 100644
index f6600ad..0000000
--- a/java/res/xml-sw768dp/row_qwerty1.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Row
-        latin:keyWidth="8.282%p"
-    >
-        <Key
-            latin:keyStyle="tabKeyStyle"
-            latin:keyLabelFlags="alignLeft"
-            latin:keyWidth="7.969%p" />
-        <Key
-            latin:keyLabel="q" />
-        <Key
-            latin:keyLabel="w" />
-        <Key
-            latin:keyLabel="e"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="y"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="u"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p" />
-        <Key
-            latin:keyStyle="deleteKeyStyle"
-            latin:keyXPos="-9.219%p"
-            latin:keyWidth="fillBoth"/>
-    </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/row_qwerty2.xml b/java/res/xml-sw768dp/row_qwerty2.xml
deleted file mode 100644
index d348041..0000000
--- a/java/res/xml-sw768dp/row_qwerty2.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Row
-        latin:keyWidth="8.125%p"
-    >
-        <Key
-            latin:keyStyle="toSymbolKeyStyle"
-            latin:keyLabelFlags="alignLeft"
-            latin:keyWidth="11.172%p"/>
-        <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a" />
-        <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <Key
-            latin:keyStyle="enterKeyStyle"
-            latin:keyXPos="-15.704%p"
-            latin:keyWidth="fillBoth" />
-    </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/row_qwerty3.xml b/java/res/xml-sw768dp/row_qwerty3.xml
deleted file mode 100644
index e2bb2e5..0000000
--- a/java/res/xml-sw768dp/row_qwerty3.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Row
-        latin:keyWidth="8.047%p"
-    >
-        <Key
-            latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="13.829%p"/>
-        <Key
-            latin:keyLabel="z"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="m" />
-        <include
-            latin:keyboardLayout="@xml/keys_comma_period" />
-        <Key
-            latin:keyStyle="shiftKeyStyle"
-            latin:keyXPos="-13.750%p"
-            latin:keyWidth="fillBoth" />
-    </Row>
-</merge>
diff --git a/java/res/xml-sw768dp/rows_arabic.xml b/java/res/xml-sw768dp/rows_arabic.xml
index ac6e459..d5f287e 100644
--- a/java/res/xml-sw768dp/rows_arabic.xml
+++ b/java/res/xml-sw768dp/rows_arabic.xml
@@ -30,53 +30,8 @@
             latin:keyStyle="tabKeyStyle"
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="7.500%p" />
-        <!-- U+0636: "ض" ARABIC LETTER DAD -->
-        <Key
-            latin:keyLabel="&#x0636;" />
-        <!-- U+0635: "ص" ARABIC LETTER SAD -->
-        <Key
-            latin:keyLabel="&#x0635;" />
-        <!-- U+062B: "ث" ARABIC LETTER THEH -->
-        <Key
-            latin:keyLabel="&#x062B;" />
-        <!-- U+0642: "ق" ARABIC LETTER QAF
-             U+06A8: "ڨ" ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
-        <Key
-            latin:keyLabel="&#x0642;"
-            latin:moreKeys="&#x06A8;" />
-        <!-- U+0641: "ف" ARABIC LETTER FEH
-             U+06A4: "ڤ" ARABIC LETTER VEH
-             U+06A2: "ڢ" ARABIC LETTER FEH WITH DOT MOVED BELOW
-             U+06A5: "ڥ" ARABIC LETTER FEH WITH THREE DOTS BELOW -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+06A2 ARABIC LETTER FEH WITH DOT MOVED BELOW -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+06A5 ARABIC LETTER FEH WITH THREE DOTS BELOW -->
-        <Key
-            latin:keyLabel="&#x0641;"
-            latin:moreKeys="&#x06A4;,&#x06A2;,&#x06A5;" />
-        <!-- U+063A: "غ" ARABIC LETTER GHAIN -->
-        <Key
-            latin:keyLabel="&#x063A;" />
-        <!-- U+0639: "ع" ARABIC LETTER AIN -->
-        <Key
-            latin:keyLabel="&#x0639;" />
-        <!-- U+0647: "ه" ARABIC LETTER HEH
-             U+FEEB: "ﻫ" ARABIC LETTER HEH INITIAL FORM
-             U+0647 U+200D: ARABIC LETTER HEH + ZERO WIDTH JOINER -->
-        <Key
-            latin:keyLabel="&#x0647;"
-            latin:moreKeys="&#xFEEB;|&#x0647;&#x200D;" />
-        <!-- U+062E: "خ" ARABIC LETTER KHAH -->
-        <Key
-            latin:keyLabel="&#x062E;" />
-        <!-- U+062D: "ح" ARABIC LETTER HAH -->
-        <Key
-            latin:keyLabel="&#x062D;" />
-        <!-- U+062C: "ج" ARABIC LETTER JEEM
-             U+0686: "چ" ARABIC LETTER TCHEH -->
-        <Key
-            latin:keyLabel="&#x062C;"
-            latin:moreKeys="&#x0686;" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_arabic1" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-11.500%p"
@@ -89,64 +44,8 @@
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="9.375%p" />
-        <!-- U+0634: "ش" ARABIC LETTER SHEEN
-             U+069C: "ڜ" ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+069C ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
-        <Key
-            latin:keyLabel="&#x0634;"
-            latin:moreKeys="&#x069C;" />
-        <!-- U+0633: "س" ARABIC LETTER SEEN -->
-        <Key
-            latin:keyLabel="&#x0633;" />
-        <!-- U+064A: "ي" ARABIC LETTER YEH
-             U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
-             U+0649: "ى" ARABIC LETTER ALEF MAKSURA -->
-        <Key
-            latin:keyLabel="&#x064A;"
-            latin:moreKeys="&#x0626;,&#x0649;" />
-        <!-- U+0628: "ب" ARABIC LETTER BEH
-             U+067E: "پ" ARABIC LETTER PEH -->
-        <Key
-            latin:keyLabel="&#x0628;"
-            latin:moreKeys="&#x067E;" />
-        <!-- U+0644: "ل" ARABIC LETTER LAM
-             U+FEFB: "ﻻ" ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-             U+0627: "ا" ARABIC LETTER ALEF
-             U+FEF7: "ﻷ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-             U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
-             U+FEF9: "ﻹ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-             U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
-             U+FEF5: "ﻵ" ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-             U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0644;"
-            latin:moreKeys="&#xFEFB;|&#x0644;&#x0627;,&#xFEF7;|&#x0644;&#x0623;,&#xFEF9;|&#x0644;&#x0625;,&#xFEF5;|&#x0644;&#x0622;" />
-        <!-- U+0627: "ا" ARABIC LETTER ALEF
-             U+0621: "ء" ARABIC LETTER HAMZA
-             U+0671: "ٱ" ARABIC LETTER ALEF WASLA
-             U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
-             U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
-             U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0627;"
-            latin:moreKeys="&#x0621;,&#x0671;,&#x0623;,&#x0625;,&#x0622;" />
-        <!-- U+062A: "ت" ARABIC LETTER TEH -->
-        <Key
-            latin:keyLabel="&#x062A;" />
-        <!-- U+0646: "ن" ARABIC LETTER NOON -->
-        <Key
-            latin:keyLabel="&#x0646;" />
-        <!-- U+0645: "م" ARABIC LETTER MEEM -->
-        <Key
-            latin:keyLabel="&#x0645;" />
-        <!-- U+0643: "ك" ARABIC LETTER KAF
-             U+06AF: "گ" ARABIC LETTER GAF -->
-        <Key
-            latin:keyLabel="&#x0643;"
-            latin:moreKeys="&#x06AF;" />
-        <!-- U+0637: "ط" ARABIC LETTER TAH -->
-        <Key
-            latin:keyLabel="&#x0637;" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_arabic2" />
         <Key
             latin:keyStyle="enterKeyStyle"
             latin:keyXPos="-9.375%p"
@@ -155,42 +54,9 @@
     <Row
         latin:keyWidth="7.375%p"
     >
-        <!-- U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0626;"
+        <include
+            latin:keyboardLayout="@xml/rowkeys_arabic3"
             latin:keyXPos="12.750%p" />
-        <!-- U+0621: "ء" ARABIC LETTER HAMZA -->
-        <Key
-            latin:keyLabel="&#x0621;" />
-        <!-- U+0624: "ؤ" ARABIC LETTER WAW WITH HAMZA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0624;" />
-        <!-- U+0631: "ر" ARABIC LETTER REH -->
-        <Key
-            latin:keyLabel="&#x0631;" />
-        <!-- U+0630: "ذ" ARABIC LETTER THAL -->
-        <Key
-            latin:keyLabel="&#x0630;" />
-        <!-- U+0649: "ى" ARABIC LETTER ALEF MAKSURA -->
-        <Key
-            latin:keyLabel="&#x0649;" />
-        <!-- U+0629: "ة" ARABIC LETTER TEH MARBUTA -->
-        <Key
-            latin:keyLabel="&#x0629;" />
-        <!-- U+0648: "و" ARABIC LETTER WAW -->
-        <Key
-            latin:keyLabel="&#x0648;" />
-        <!-- U+0632: "ز" ARABIC LETTER ZAIN
-             U+0698: "ژ" ARABIC LETTER JEH -->
-        <Key
-            latin:keyLabel="&#x0632;"
-            latin:moreKeys="&#x0698;" />
-        <!-- U+0638: "ظ" ARABIC LETTER ZAH -->
-        <Key
-            latin:keyLabel="&#x0638;" />
-        <!-- U+062F: "د" ARABIC LETTER DAL -->
-        <Key
-            latin:keyLabel="&#x062F;" />
     </Row>
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
diff --git a/java/res/xml-sw768dp/rows_azerty.xml b/java/res/xml-sw768dp/rows_azerty.xml
index 6023e98..e79ca65 100644
--- a/java/res/xml-sw768dp/rows_azerty.xml
+++ b/java/res/xml-sw768dp/rows_azerty.xml
@@ -30,35 +30,8 @@
             latin:keyStyle="tabKeyStyle"
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="7.969%p" />
-        <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a" />
-        <Key
-            latin:keyLabel="z"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="e"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="y"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="u"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_azerty1" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-9.219%p"
@@ -71,31 +44,8 @@
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="10.167%p" />
-        <Key
-            latin:keyLabel="q" />
-        <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <Key
-            latin:keyLabel="m" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_azerty2" />
         <Key
             latin:keyStyle="enterKeyStyle"
             latin:keyXPos="-15.704%p"
@@ -107,26 +57,8 @@
         <Key
             latin:keyStyle="shiftKeyStyle"
             latin:keyWidth="13.829%p" />
-        <Key
-            latin:keyLabel="w" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="\'"
-            latin:keyHintLabel=":"
-            latin:moreKeys=":"
-            latin:keyStyle="hasShiftedLetterHintStyle" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_azerty3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
         <Key
diff --git a/java/res/xml-sw768dp/rows_qwerty.xml b/java/res/xml-sw768dp/rows_qwerty.xml
index 71be44e..ea2bb36 100644
--- a/java/res/xml-sw768dp/rows_qwerty.xml
+++ b/java/res/xml-sw768dp/rows_qwerty.xml
@@ -23,12 +23,49 @@
 >
     <include
         latin:keyboardLayout="@xml/key_styles_common" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty1" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty2" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty3" />
+    <Row
+        latin:keyWidth="8.282%p"
+    >
+        <Key
+            latin:keyStyle="tabKeyStyle"
+            latin:keyLabelFlags="alignLeft"
+            latin:keyWidth="7.969%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyXPos="-9.219%p"
+            latin:keyWidth="fillBoth"/>
+    </Row>
+    <Row
+        latin:keyWidth="8.125%p"
+    >
+        <Key
+            latin:keyStyle="toSymbolKeyStyle"
+            latin:keyLabelFlags="alignLeft"
+            latin:keyWidth="11.172%p"/>
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty2" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyXPos="-15.704%p"
+            latin:keyWidth="fillBoth" />
+    </Row>
+    <Row
+        latin:keyWidth="8.047%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="13.829%p"/>
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
+        <include
+            latin:keyboardLayout="@xml/keys_comma_period" />
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-13.750%p"
+            latin:keyWidth="fillBoth" />
+    </Row>
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_qwertz.xml b/java/res/xml-sw768dp/rows_qwertz.xml
index 7056a94..790ac18 100644
--- a/java/res/xml-sw768dp/rows_qwertz.xml
+++ b/java/res/xml-sw768dp/rows_qwertz.xml
@@ -30,64 +30,35 @@
             latin:keyStyle="tabKeyStyle"
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="7.969%p" />
-        <Key
-            latin:keyLabel="q" />
-        <Key
-            latin:keyLabel="w" />
-        <Key
-            latin:keyLabel="e"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="z"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="u"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwertz1" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-9.219%p"
+            latin:keyWidth="fillBoth"/>
+    </Row>
+    <Row
+        latin:keyWidth="8.125%p"
+    >
+        <Key
+            latin:keyStyle="toSymbolKeyStyle"
+            latin:keyLabelFlags="alignLeft"
+            latin:keyWidth="11.172%p"/>
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty2" />
+        <Key
+            latin:keyStyle="enterKeyStyle"
+            latin:keyXPos="-15.704%p"
             latin:keyWidth="fillBoth" />
     </Row>
-    <include
-        latin:keyboardLayout="@xml/row_qwerty2" />
     <Row
         latin:keyWidth="8.047%p"
     >
         <Key
             latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="13.829%p" />
-        <Key
-            latin:keyLabel="y"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="m" />
+            latin:keyWidth="13.829%p"/>
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwertz3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
         <Key
@@ -95,6 +66,6 @@
             latin:keyXPos="-13.750%p"
             latin:keyWidth="fillBoth" />
     </Row>
-   <include
+    <include
         latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml-sw768dp/rows_scandinavian.xml b/java/res/xml-sw768dp/rows_scandinavian.xml
index 4373166..f7e013b 100644
--- a/java/res/xml-sw768dp/rows_scandinavian.xml
+++ b/java/res/xml-sw768dp/rows_scandinavian.xml
@@ -30,35 +30,8 @@
             latin:keyStyle="tabKeyStyle"
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="7.500%p" />
-        <Key
-            latin:keyLabel="q" />
-        <Key
-            latin:keyLabel="w" />
-        <Key
-            latin:keyLabel="e"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="y"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="u"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_scandinavia_row1_11" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_scandinavian1" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-11.500%p"
@@ -71,36 +44,8 @@
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="9.375%p" />
-        <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a" />
-        <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
-            latin:moreKeys="@string/more_keys_for_scandinavia_row2_10" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
-            latin:moreKeys="@string/more_keys_for_scandinavia_row2_11" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_scandinavian2" />
         <Key
             latin:keyStyle="enterKeyStyle"
             latin:keyXPos="-9.375%p"
@@ -112,24 +57,8 @@
         <Key
             latin:keyStyle="shiftKeyStyle"
             latin:keyWidth="12.750%p" />
-        <Key
-            latin:keyLabel="z"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="m" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
         <include
             latin:keyboardLayout="@xml/keys_comma_period" />
         <Key
diff --git a/java/res/xml-sw768dp/rows_spanish.xml b/java/res/xml-sw768dp/rows_spanish.xml
index 9fe1b3b..683472c 100644
--- a/java/res/xml-sw768dp/rows_spanish.xml
+++ b/java/res/xml-sw768dp/rows_spanish.xml
@@ -23,8 +23,20 @@
 >
     <include
         latin:keyboardLayout="@xml/key_styles_common" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty1" />
+    <Row
+        latin:keyWidth="8.282%p"
+    >
+        <Key
+            latin:keyStyle="tabKeyStyle"
+            latin:keyLabelFlags="alignLeft"
+            latin:keyWidth="7.969%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty1" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyXPos="-9.219%p"
+            latin:keyWidth="fillBoth"/>
+    </Row>
     <Row
         latin:keyWidth="8.125%p"
     >
@@ -32,40 +44,28 @@
             latin:keyStyle="toSymbolKeyStyle"
             latin:keyLabelFlags="alignLeft"
             latin:keyWidth="10.167%p" />
-        <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a" />
-        <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
-        <Key
-            latin:keyLabel="&#x00F1;" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_spanish2" />
         <Key
             latin:keyStyle="enterKeyStyle"
             latin:keyXPos="-15.704%p"
             latin:keyWidth="fillBoth" />
     </Row>
-    <include
-        latin:keyboardLayout="@xml/row_qwerty3" />
+    <Row
+        latin:keyWidth="8.047%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="13.829%p"/>
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
+        <include
+            latin:keyboardLayout="@xml/keys_comma_period" />
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyXPos="-13.750%p"
+            latin:keyWidth="fillBoth" />
+    </Row>
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml/key_azerty_quote.xml b/java/res/xml/key_azerty_quote.xml
new file mode 100644
index 0000000..e1d1804
--- /dev/null
+++ b/java/res/xml/key_azerty_quote.xml
@@ -0,0 +1,37 @@
+<?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:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
+        >
+            <Key
+                latin:keyLabel=":" />
+        </case>
+        <default>
+            <Key
+                latin:keyLabel="\'"
+                latin:moreKeys="\@string/more_keys_for_single_quote" />
+        </default>
+    </switch>
+</merge>
diff --git a/java/res/xml/row_qwerty1.xml b/java/res/xml/row_qwerty1.xml
deleted file mode 100644
index cb1f4d2..0000000
--- a/java/res/xml/row_qwerty1.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Row
-        latin:keyWidth="10%p"
-    >
-        <Key
-            latin:keyLabel="q"
-            latin:keyHintLabel="1"
-            latin:additionalMoreKeys="1" />
-        <Key
-            latin:keyLabel="w"
-            latin:keyHintLabel="2"
-            latin:additionalMoreKeys="2" />
-        <Key
-            latin:keyLabel="e"
-            latin:keyHintLabel="3"
-            latin:additionalMoreKeys="3"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:keyHintLabel="4"
-            latin:additionalMoreKeys="4"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:keyHintLabel="5"
-            latin:additionalMoreKeys="5"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="y"
-            latin:keyHintLabel="6"
-            latin:additionalMoreKeys="6"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="u"
-            latin:keyHintLabel="7"
-            latin:additionalMoreKeys="7"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:keyHintLabel="8"
-            latin:additionalMoreKeys="8"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:keyHintLabel="9"
-            latin:additionalMoreKeys="9"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p"
-            latin:keyHintLabel="0"
-            latin:additionalMoreKeys="0"
-            latin:keyWidth="fillRight" />
-    </Row>
-</merge>
diff --git a/java/res/xml/row_qwerty2.xml b/java/res/xml/row_qwerty2.xml
deleted file mode 100644
index 8986780..0000000
--- a/java/res/xml/row_qwerty2.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Row
-        latin:keyWidth="10%p"
-    >
-        <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a"
-            latin:keyXPos="5%p" />
-        <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <!-- Here is 5%p space -->
-    </Row>
-</merge>
diff --git a/java/res/xml/row_qwerty3.xml b/java/res/xml/row_qwerty3.xml
deleted file mode 100644
index c2b45e7..0000000
--- a/java/res/xml/row_qwerty3.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
-**
-** Copyright 2010, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
--->
-
-<merge
-    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
->
-    <Row
-        latin:keyWidth="10%p"
-    >
-        <Key
-            latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="15%p"
-            latin:visualInsetsRight="1%p" />
-        <Key
-            latin:keyLabel="z"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="m" />
-        <Key
-            latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="fillBoth"
-            latin:visualInsetsLeft="1%p" />
-    </Row>
-</merge>
diff --git a/java/res/xml/rowkeys_arabic1.xml b/java/res/xml/rowkeys_arabic1.xml
new file mode 100644
index 0000000..b1bf790
--- /dev/null
+++ b/java/res/xml/rowkeys_arabic1.xml
@@ -0,0 +1,98 @@
+<?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"
+>
+    <!-- U+0636: "ض" ARABIC LETTER DAD
+         U+0661: "١" ARABIC-INDIC DIGIT ONE -->
+    <Key
+        latin:keyLabel="&#x0636;"
+        latin:keyHintLabel="1"
+        latin:additionalMoreKeys="1,&#x0661;" />
+    <!-- U+0635: "ص" ARABIC LETTER SAD
+         U+0662: "٢" ARABIC-INDIC DIGIT TWO -->
+    <Key
+        latin:keyLabel="&#x0635;"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="2,&#x0662;" />
+    <!-- U+0642: "ق" ARABIC LETTER QAF
+         U+06A8: "ڨ" ARABIC LETTER QAF WITH THREE DOTS ABOVE
+         U+0663: "٣" ARABIC-INDIC DIGIT THREE -->
+    <!-- TODO: DroidSansArabic lacks the glyph of U+06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
+    <Key
+        latin:keyLabel="&#x0642;"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="3,&#x0663;"
+        latin:moreKeys="&#x06A8;" />
+    <!-- U+0641: "ف" ARABIC LETTER FEH
+         U+06A4: "ڤ" ARABIC LETTER VEH
+         U+06A2: "ڢ" ARABIC LETTER FEH WITH DOT MOVED BELOW
+         U+06A5: "ڥ" ARABIC LETTER FEH WITH THREE DOTS BELOW
+         U+0664: "٤" ARABIC-INDIC DIGIT FOUR -->
+    <!-- TODO: DroidSansArabic lacks the glyph of U+06A2 ARABIC LETTER FEH WITH DOT MOVED BELOW -->
+    <!-- TODO: DroidSansArabic lacks the glyph of U+06A5 ARABIC LETTER FEH WITH THREE DOTS BELOW -->
+    <Key
+        latin:keyLabel="&#x0641;"
+        latin:keyHintLabel="4"
+        latin:additionalMoreKeys="4,&#x0664;"
+        latin:moreKeys="&#x06A4;,&#x06A2;,&#x06A5;" />
+    <!-- U+063A: "غ" ARABIC LETTER GHAIN
+         U+0665: "٥" ARABIC-INDIC DIGIT FIVE -->
+    <Key
+        latin:keyLabel="&#x063A;"
+        latin:keyHintLabel="5"
+        latin:additionalMoreKeys="5,&#x0665;" />
+    <!-- U+0639: "ع" ARABIC LETTER AIN
+         U+0666: "٦" ARABIC-INDIC DIGIT SIX -->
+    <Key
+        latin:keyLabel="&#x0639;"
+        latin:keyHintLabel="6"
+        latin:additionalMoreKeys="6,&#x0666;" />
+    <!-- U+0647: "ه" ARABIC LETTER HEH
+         U+FEEB: "ﻫ" ARABIC LETTER HEH INITIAL FORM
+         U+0647 U+200D: ARABIC LETTER HEH + ZERO WIDTH JOINER
+         U+0667: "٧" ARABIC-INDIC DIGIT SEVEN -->
+    <Key
+        latin:keyLabel="&#x0647;"
+        latin:keyHintLabel="7"
+        latin:additionalMoreKeys="7,&#x0667;"
+        latin:moreKeys="&#xFEEB;|&#x0647;&#x200D;" />
+    <!-- U+062E: "خ" ARABIC LETTER KHAH
+         U+0668: "٨" ARABIC-INDIC DIGIT EIGHT -->
+    <Key
+        latin:keyLabel="&#x062E;"
+        latin:keyHintLabel="8"
+        latin:additionalMoreKeys="8,&#x0668;" />
+    <!-- U+062D: "ح" ARABIC LETTER HAH
+         U+0669: "٩" ARABIC-INDIC DIGIT NINE -->
+    <Key
+        latin:keyLabel="&#x062D;"
+        latin:keyHintLabel="9"
+        latin:additionalMoreKeys="9,&#x0669;" />
+    <!-- U+062C: "ج" ARABIC LETTER JEEM
+         U+0686: "چ" ARABIC LETTER TCHEH
+         U+0660: "٠" ARABIC-INDIC DIGIT ZERO -->
+    <Key
+        latin:keyLabel="&#x062C;"
+        latin:keyHintLabel="0"
+        latin:additionalMoreKeys="0,&#x0660;"
+        latin:moreKeys="&#x0686;" />
+</merge>
diff --git a/java/res/xml/rowkeys_arabic2.xml b/java/res/xml/rowkeys_arabic2.xml
new file mode 100644
index 0000000..f86aae0
--- /dev/null
+++ b/java/res/xml/rowkeys_arabic2.xml
@@ -0,0 +1,83 @@
+<?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"
+>
+    <!-- U+0634: "ش" ARABIC LETTER SHEEN
+         U+069C: "ڜ" ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
+    <!-- TODO: DroidSansArabic lacks the glyph of U+069C ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
+    <Key
+        latin:keyLabel="&#x0634;"
+        latin:moreKeys="&#x069C;" />
+    <!-- U+0633: "س" ARABIC LETTER SEEN -->
+    <Key
+        latin:keyLabel="&#x0633;" />
+    <!-- U+064A: "ي" ARABIC LETTER YEH
+         U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
+         U+0649: "ى" ARABIC LETTER ALEF MAKSURA -->
+    <Key
+        latin:keyLabel="&#x064A;"
+        latin:moreKeys="&#x0626;,&#x0649;" />
+    <!-- U+0628: "ب" ARABIC LETTER BEH
+         U+067E: "پ" ARABIC LETTER PEH -->
+    <Key
+        latin:keyLabel="&#x0628;"
+        latin:moreKeys="&#x067E;" />
+    <!-- U+0644: "ل" ARABIC LETTER LAM
+         U+FEFB: "ﻻ" ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+         U+0627: "ا" ARABIC LETTER ALEF
+         U+FEF7: "ﻷ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+         U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
+         U+FEF9: "ﻹ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+         U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
+         U+FEF5: "ﻵ" ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+         U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
+    <Key
+        latin:keyLabel="&#x0644;"
+        latin:moreKeys="&#xFEFB;|&#x0644;&#x0627;,&#xFEF7;|&#x0644;&#x0623;,&#xFEF9;|&#x0644;&#x0625;,&#xFEF5;|&#x0644;&#x0622;" />
+    <!-- U+0627: "ا" ARABIC LETTER ALEF
+         U+0621: "ء" ARABIC LETTER HAMZA
+         U+0671: "ٱ" ARABIC LETTER ALEF WASLA
+         U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
+         U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
+         U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
+    <Key
+        latin:keyLabel="&#x0627;"
+        latin:moreKeys="&#x0621;,&#x0671;,&#x0623;,&#x0625;,&#x0622;" />
+    <!-- U+062A: "ت" ARABIC LETTER TEH
+         U+062B: "ﺙ" ARABIC LETTER THEH -->
+    <Key
+        latin:keyLabel="&#x062A;"
+        latin:moreKeys="&#x062B;" />
+    <!-- U+0646: "ن" ARABIC LETTER NOON -->
+    <Key
+        latin:keyLabel="&#x0646;" />
+    <!-- U+0645: "م" ARABIC LETTER MEEM -->
+    <Key
+        latin:keyLabel="&#x0645;" />
+    <!-- U+0643: "ك" ARABIC LETTER KAF
+         U+06AF: "گ" ARABIC LETTER GAF
+         U+06A9: "ک" ARABIC LETTER KEHEH -->
+    <Key
+        latin:keyLabel="&#x0643;"
+        latin:moreKeys="&#x06AF;,&#x06A9;"
+        latin:keyWidth="fillRight" />
+</merge>
diff --git a/java/res/xml/rowkeys_arabic3.xml b/java/res/xml/rowkeys_arabic3.xml
new file mode 100644
index 0000000..9e9eac0
--- /dev/null
+++ b/java/res/xml/rowkeys_arabic3.xml
@@ -0,0 +1,52 @@
+<?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"
+>
+    <!-- U+0638: "ظ" ARABIC LETTER ZAH -->
+    <Key
+        latin:keyLabel="&#x0638;" />
+    <!-- U+0637: "ط" ARABIC LETTER TAH -->
+    <Key
+        latin:keyLabel="&#x0637;" />
+    <!-- U+0630: "ذ" ARABIC LETTER THAL -->
+    <Key
+        latin:keyLabel="&#x0630;" />
+    <!-- U+062F: "د" ARABIC LETTER DAL -->
+    <Key
+        latin:keyLabel="&#x062F;" />
+    <!-- U+0632: "ز" ARABIC LETTER ZAIN
+         U+0698: "ژ" ARABIC LETTER JEH -->
+    <Key
+        latin:keyLabel="&#x0632;"
+        latin:moreKeys="&#x0698;" />
+    <!-- U+0631: "ر" ARABIC LETTER REH -->
+    <Key
+        latin:keyLabel="&#x0631;" />
+    <!-- U+0629: "ة" ARABIC LETTER TEH MARBUTA -->
+    <Key
+        latin:keyLabel="&#x0629;" />
+    <!-- U+0648: "و" ARABIC LETTER WAW
+         U+0624: "ﺅ" ARABIC LETTER WAW WITH HAMZA ABOVE -->
+    <Key
+        latin:keyLabel="&#x0648;"
+        latin:moreKeys="&#x0624;" />
+</merge>
diff --git a/java/res/xml/rowkeys_azerty1.xml b/java/res/xml/rowkeys_azerty1.xml
new file mode 100644
index 0000000..9983432
--- /dev/null
+++ b/java/res/xml/rowkeys_azerty1.xml
@@ -0,0 +1,73 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="a"
+        latin:keyHintLabel="1"
+        latin:additionalMoreKeys="1"
+        latin:moreKeys="@string/more_keys_for_a" />
+    <Key
+        latin:keyLabel="z"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="2"
+        latin:moreKeys="@string/more_keys_for_z" />
+    <Key
+        latin:keyLabel="e"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="3"
+        latin:moreKeys="@string/more_keys_for_e" />
+    <Key
+        latin:keyLabel="r"
+        latin:keyHintLabel="4"
+        latin:additionalMoreKeys="4"
+        latin:moreKeys="@string/more_keys_for_r" />
+    <Key
+        latin:keyLabel="t"
+        latin:keyHintLabel="5"
+        latin:additionalMoreKeys="5"
+        latin:moreKeys="@string/more_keys_for_t" />
+    <Key
+        latin:keyLabel="y"
+        latin:keyHintLabel="6"
+        latin:additionalMoreKeys="6"
+        latin:moreKeys="@string/more_keys_for_y" />
+    <Key
+        latin:keyLabel="u"
+        latin:keyHintLabel="7"
+        latin:additionalMoreKeys="7"
+        latin:moreKeys="@string/more_keys_for_u" />
+    <Key
+        latin:keyLabel="i"
+        latin:keyHintLabel="8"
+        latin:additionalMoreKeys="8"
+        latin:moreKeys="@string/more_keys_for_i" />
+    <Key
+        latin:keyLabel="o"
+        latin:keyHintLabel="9"
+        latin:additionalMoreKeys="9"
+        latin:moreKeys="@string/more_keys_for_o" />
+    <Key
+        latin:keyLabel="p"
+        latin:keyHintLabel="0"
+        latin:additionalMoreKeys="0" />
+</merge>
diff --git a/java/res/xml/rowkeys_azerty2.xml b/java/res/xml/rowkeys_azerty2.xml
new file mode 100644
index 0000000..11bcd67
--- /dev/null
+++ b/java/res/xml/rowkeys_azerty2.xml
@@ -0,0 +1,49 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="q" />
+    <Key
+        latin:keyLabel="s"
+        latin:moreKeys="@string/more_keys_for_s" />
+    <Key
+        latin:keyLabel="d"
+        latin:moreKeys="@string/more_keys_for_d" />
+    <Key
+        latin:keyLabel="f" />
+    <Key
+        latin:keyLabel="g"
+        latin:moreKeys="@string/more_keys_for_g" />
+    <Key
+        latin:keyLabel="h" />
+    <Key
+        latin:keyLabel="j" />
+    <Key
+        latin:keyLabel="k"
+        latin:moreKeys="@string/more_keys_for_k" />
+    <Key
+        latin:keyLabel="l"
+        latin:moreKeys="@string/more_keys_for_l" />
+    <Key
+        latin:keyLabel="m" />
+</merge>
diff --git a/java/res/xml/rowkeys_azerty3.xml b/java/res/xml/rowkeys_azerty3.xml
new file mode 100644
index 0000000..1a0eacc
--- /dev/null
+++ b/java/res/xml/rowkeys_azerty3.xml
@@ -0,0 +1,41 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="w" />
+    <Key
+        latin:keyLabel="x" />
+    <Key
+        latin:keyLabel="c"
+        latin:moreKeys="@string/more_keys_for_c" />
+    <Key
+        latin:keyLabel="v"
+        latin:moreKeys="@string/more_keys_for_v" />
+    <Key
+        latin:keyLabel="b" />
+    <Key
+        latin:keyLabel="n"
+        latin:moreKeys="@string/more_keys_for_n" />
+    <include
+        latin:keyboardLayout="@xml/key_azerty_quote" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty1.xml b/java/res/xml/rowkeys_qwerty1.xml
new file mode 100644
index 0000000..bd5e9a2
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty1.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"
+>
+    <Key
+        latin:keyLabel="q"
+        latin:keyHintLabel="1"
+        latin:additionalMoreKeys="1" />
+    <Key
+        latin:keyLabel="w"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="2" />
+    <Key
+        latin:keyLabel="e"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="3"
+        latin:moreKeys="@string/more_keys_for_e" />
+    <Key
+        latin:keyLabel="r"
+        latin:keyHintLabel="4"
+        latin:additionalMoreKeys="4"
+        latin:moreKeys="@string/more_keys_for_r" />
+    <Key
+        latin:keyLabel="t"
+        latin:keyHintLabel="5"
+        latin:additionalMoreKeys="5"
+        latin:moreKeys="@string/more_keys_for_t" />
+    <Key
+        latin:keyLabel="y"
+        latin:keyHintLabel="6"
+        latin:additionalMoreKeys="6"
+        latin:moreKeys="@string/more_keys_for_y" />
+    <Key
+        latin:keyLabel="u"
+        latin:keyHintLabel="7"
+        latin:additionalMoreKeys="7"
+        latin:moreKeys="@string/more_keys_for_u" />
+    <Key
+        latin:keyLabel="i"
+        latin:keyHintLabel="8"
+        latin:additionalMoreKeys="8"
+        latin:moreKeys="@string/more_keys_for_i" />
+    <Key
+        latin:keyLabel="o"
+        latin:keyHintLabel="9"
+        latin:additionalMoreKeys="9"
+        latin:moreKeys="@string/more_keys_for_o" />
+    <Key
+        latin:keyLabel="p"
+        latin:keyHintLabel="0"
+        latin:additionalMoreKeys="0" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty2.xml b/java/res/xml/rowkeys_qwerty2.xml
new file mode 100644
index 0000000..4c983df
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty2.xml
@@ -0,0 +1,48 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="a"
+        latin:moreKeys="@string/more_keys_for_a" />
+    <Key
+        latin:keyLabel="s"
+        latin:moreKeys="@string/more_keys_for_s" />
+    <Key
+        latin:keyLabel="d"
+        latin:moreKeys="@string/more_keys_for_d" />
+    <Key
+        latin:keyLabel="f" />
+    <Key
+        latin:keyLabel="g"
+        latin:moreKeys="@string/more_keys_for_g" />
+    <Key
+        latin:keyLabel="h" />
+    <Key
+        latin:keyLabel="j" />
+    <Key
+        latin:keyLabel="k"
+        latin:moreKeys="@string/more_keys_for_k" />
+    <Key
+        latin:keyLabel="l"
+        latin:moreKeys="@string/more_keys_for_l" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwerty3.xml b/java/res/xml/rowkeys_qwerty3.xml
new file mode 100644
index 0000000..932ea6f
--- /dev/null
+++ b/java/res/xml/rowkeys_qwerty3.xml
@@ -0,0 +1,42 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="z"
+        latin:moreKeys="@string/more_keys_for_z" />
+    <Key
+        latin:keyLabel="x" />
+    <Key
+        latin:keyLabel="c"
+        latin:moreKeys="@string/more_keys_for_c" />
+    <Key
+        latin:keyLabel="v"
+        latin:moreKeys="@string/more_keys_for_v" />
+    <Key
+        latin:keyLabel="b" />
+    <Key
+        latin:keyLabel="n"
+        latin:moreKeys="@string/more_keys_for_n" />
+    <Key
+        latin:keyLabel="m" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwertz1.xml b/java/res/xml/rowkeys_qwertz1.xml
new file mode 100644
index 0000000..27b8a76
--- /dev/null
+++ b/java/res/xml/rowkeys_qwertz1.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"
+>
+    <Key
+        latin:keyLabel="q"
+        latin:keyHintLabel="1"
+        latin:additionalMoreKeys="1" />
+    <Key
+        latin:keyLabel="w"
+        latin:keyHintLabel="2"
+        latin:additionalMoreKeys="2" />
+    <Key
+        latin:keyLabel="e"
+        latin:keyHintLabel="3"
+        latin:additionalMoreKeys="3"
+        latin:moreKeys="@string/more_keys_for_e" />
+    <Key
+        latin:keyLabel="r"
+        latin:keyHintLabel="4"
+        latin:additionalMoreKeys="4"
+        latin:moreKeys="@string/more_keys_for_r" />
+    <Key
+        latin:keyLabel="t"
+        latin:keyHintLabel="5"
+        latin:additionalMoreKeys="5"
+        latin:moreKeys="@string/more_keys_for_t" />
+    <Key
+        latin:keyLabel="z"
+        latin:keyHintLabel="6"
+        latin:additionalMoreKeys="6"
+        latin:moreKeys="@string/more_keys_for_z" />
+     <Key
+        latin:keyLabel="u"
+        latin:keyHintLabel="7"
+        latin:additionalMoreKeys="7"
+        latin:moreKeys="@string/more_keys_for_u" />
+    <Key
+        latin:keyLabel="i"
+        latin:keyHintLabel="8"
+        latin:additionalMoreKeys="8"
+        latin:moreKeys="@string/more_keys_for_i" />
+    <Key
+        latin:keyLabel="o"
+        latin:keyHintLabel="9"
+        latin:additionalMoreKeys="9"
+        latin:moreKeys="@string/more_keys_for_o" />
+    <Key
+        latin:keyLabel="p"
+        latin:keyHintLabel="0"
+        latin:additionalMoreKeys="0" />
+</merge>
diff --git a/java/res/xml/rowkeys_qwertz3.xml b/java/res/xml/rowkeys_qwertz3.xml
new file mode 100644
index 0000000..d37cee6
--- /dev/null
+++ b/java/res/xml/rowkeys_qwertz3.xml
@@ -0,0 +1,42 @@
+<?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"
+>
+    <Key
+        latin:keyLabel="y"
+        latin:moreKeys="@string/more_keys_for_y" />
+    <Key
+        latin:keyLabel="x" />
+    <Key
+        latin:keyLabel="c"
+        latin:moreKeys="@string/more_keys_for_c" />
+    <Key
+        latin:keyLabel="v"
+        latin:moreKeys="@string/more_keys_for_v" />
+    <Key
+        latin:keyLabel="b" />
+    <Key
+        latin:keyLabel="n"
+        latin:moreKeys="@string/more_keys_for_n" />
+    <Key
+        latin:keyLabel="m" />
+</merge>
diff --git a/java/res/xml/rowkeys_scandinavian1.xml b/java/res/xml/rowkeys_scandinavian1.xml
new file mode 100644
index 0000000..355b626
--- /dev/null
+++ b/java/res/xml/rowkeys_scandinavian1.xml
@@ -0,0 +1,28 @@
+<?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"
+>
+    <include
+        latin:keyboardLayout="@xml/rowkeys_qwerty1" />
+    <Key
+        latin:keyLabel="@string/keylabel_for_scandinavia_row1_11" />
+</merge>
diff --git a/java/res/xml/rowkeys_scandinavian2.xml b/java/res/xml/rowkeys_scandinavian2.xml
new file mode 100644
index 0000000..58e6bc2
--- /dev/null
+++ b/java/res/xml/rowkeys_scandinavian2.xml
@@ -0,0 +1,32 @@
+<?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"
+>
+    <include
+        latin:keyboardLayout="@xml/rowkeys_qwerty2" />
+    <Key
+        latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
+        latin:moreKeys="@string/more_keys_for_scandinavia_row2_10" />
+    <Key
+        latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
+        latin:moreKeys="@string/more_keys_for_scandinavia_row2_11" />
+</merge>
diff --git a/java/res/xml/rowkeys_spanish2.xml b/java/res/xml/rowkeys_spanish2.xml
new file mode 100644
index 0000000..4c7e579
--- /dev/null
+++ b/java/res/xml/rowkeys_spanish2.xml
@@ -0,0 +1,29 @@
+<?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"
+>
+    <include
+        latin:keyboardLayout="@xml/rowkeys_qwerty2" />
+    <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
+    <Key
+        latin:keyLabel="&#x00F1;" />
+ </merge>
diff --git a/java/res/xml/rows_arabic.xml b/java/res/xml/rows_arabic.xml
index 84f7a3c..6449af2 100644
--- a/java/res/xml/rows_arabic.xml
+++ b/java/res/xml/rows_arabic.xml
@@ -26,177 +26,21 @@
     <Row
         latin:keyWidth="10%p"
     >
-        <!-- U+0636: "ض" ARABIC LETTER DAD
-             U+0661: "١" ARABIC-INDIC DIGIT ONE -->
-        <Key
-            latin:keyLabel="&#x0636;"
-            latin:keyHintLabel="1"
-            latin:additionalMoreKeys="1,&#x0661;" />
-        <!-- U+0635: "ص" ARABIC LETTER SAD
-             U+0662: "٢" ARABIC-INDIC DIGIT TWO -->
-        <Key
-            latin:keyLabel="&#x0635;"
-            latin:keyHintLabel="2"
-            latin:additionalMoreKeys="2,&#x0662;" />
-        <!-- U+0642: "ق" ARABIC LETTER QAF
-             U+06A8: "ڨ" ARABIC LETTER QAF WITH THREE DOTS ABOVE
-             U+0663: "٣" ARABIC-INDIC DIGIT THREE -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+06A8 ARABIC LETTER QAF WITH THREE DOTS ABOVE -->
-        <Key
-            latin:keyLabel="&#x0642;"
-            latin:keyHintLabel="3"
-            latin:additionalMoreKeys="3,&#x0663;"
-            latin:moreKeys="&#x06A8;" />
-        <!-- U+0641: "ف" ARABIC LETTER FEH
-             U+06A4: "ڤ" ARABIC LETTER VEH
-             U+06A2: "ڢ" ARABIC LETTER FEH WITH DOT MOVED BELOW
-             U+06A5: "ڥ" ARABIC LETTER FEH WITH THREE DOTS BELOW
-             U+0664: "٤" ARABIC-INDIC DIGIT FOUR -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+06A2 ARABIC LETTER FEH WITH DOT MOVED BELOW -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+06A5 ARABIC LETTER FEH WITH THREE DOTS BELOW -->
-        <Key
-            latin:keyLabel="&#x0641;"
-            latin:keyHintLabel="4"
-            latin:additionalMoreKeys="4,&#x0664;"
-            latin:moreKeys="&#x06A4;,&#x06A2;,&#x06A5;" />
-        <!-- U+063A: "غ" ARABIC LETTER GHAIN
-             U+0665: "٥" ARABIC-INDIC DIGIT FIVE -->
-        <Key
-            latin:keyLabel="&#x063A;"
-            latin:keyHintLabel="5"
-            latin:additionalMoreKeys="5,&#x0665;" />
-        <!-- U+0639: "ع" ARABIC LETTER AIN
-             U+0666: "٦" ARABIC-INDIC DIGIT SIX -->
-        <Key
-            latin:keyLabel="&#x0639;"
-            latin:keyHintLabel="6"
-            latin:additionalMoreKeys="6,&#x0666;" />
-        <!-- U+0647: "ه" ARABIC LETTER HEH
-             U+FEEB: "ﻫ" ARABIC LETTER HEH INITIAL FORM
-             U+0647 U+200D: ARABIC LETTER HEH + ZERO WIDTH JOINER
-             U+0667: "٧" ARABIC-INDIC DIGIT SEVEN -->
-        <Key
-            latin:keyLabel="&#x0647;"
-            latin:keyHintLabel="7"
-            latin:additionalMoreKeys="7,&#x0667;"
-            latin:moreKeys="&#xFEEB;|&#x0647;&#x200D;" />
-        <!-- U+062E: "خ" ARABIC LETTER KHAH
-             U+0668: "٨" ARABIC-INDIC DIGIT EIGHT -->
-        <Key
-            latin:keyLabel="&#x062E;"
-            latin:keyHintLabel="8"
-            latin:additionalMoreKeys="8,&#x0668;" />
-        <!-- U+062D: "ح" ARABIC LETTER HAH
-             U+0669: "٩" ARABIC-INDIC DIGIT NINE -->
-        <Key
-            latin:keyLabel="&#x062D;"
-            latin:keyHintLabel="9"
-            latin:additionalMoreKeys="9,&#x0669;" />
-        <!-- U+062C: "ج" ARABIC LETTER JEEM
-             U+0686: "چ" ARABIC LETTER TCHEH
-             U+0660: "٠" ARABIC-INDIC DIGIT ZERO -->
-        <Key
-            latin:keyLabel="&#x062C;"
-            latin:keyHintLabel="0"
-            latin:additionalMoreKeys="0,&#x0660;"
-            latin:moreKeys="&#x0686;"
-            latin:keyWidth="fillRight" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_arabic1" />
     </Row>
     <Row
         latin:keyWidth="10%p"
     >
-        <!-- U+0634: "ش" ARABIC LETTER SHEEN
-             U+069C: "ڜ" ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
-        <!-- TODO: DroidSansArabic lacks the glyph of U+069C ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE -->
-        <Key
-            latin:keyLabel="&#x0634;"
-            latin:moreKeys="&#x069C;" />
-        <!-- U+0633: "س" ARABIC LETTER SEEN -->
-        <Key
-            latin:keyLabel="&#x0633;" />
-        <!-- U+064A: "ي" ARABIC LETTER YEH
-             U+0626: "ئ" ARABIC LETTER YEH WITH HAMZA ABOVE
-             U+0649: "ى" ARABIC LETTER ALEF MAKSURA -->
-        <Key
-            latin:keyLabel="&#x064A;"
-            latin:moreKeys="&#x0626;,&#x0649;" />
-        <!-- U+0628: "ب" ARABIC LETTER BEH
-             U+067E: "پ" ARABIC LETTER PEH -->
-        <Key
-            latin:keyLabel="&#x0628;"
-            latin:moreKeys="&#x067E;" />
-        <!-- U+0644: "ل" ARABIC LETTER LAM
-             U+FEFB: "ﻻ" ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
-             U+0627: "ا" ARABIC LETTER ALEF
-             U+FEF7: "ﻷ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
-             U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
-             U+FEF9: "ﻹ" ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
-             U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
-             U+FEF5: "ﻵ" ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
-             U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0644;"
-            latin:moreKeys="&#xFEFB;|&#x0644;&#x0627;,&#xFEF7;|&#x0644;&#x0623;,&#xFEF9;|&#x0644;&#x0625;,&#xFEF5;|&#x0644;&#x0622;" />
-        <!-- U+0627: "ا" ARABIC LETTER ALEF
-             U+0621: "ء" ARABIC LETTER HAMZA
-             U+0671: "ٱ" ARABIC LETTER ALEF WASLA
-             U+0623: "أ" ARABIC LETTER ALEF WITH HAMZA ABOVE
-             U+0625: "إ" ARABIC LETTER ALEF WITH HAMZA BELOW
-             U+0622: "آ" ARABIC LETTER ALEF WITH MADDA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0627;"
-            latin:moreKeys="&#x0621;,&#x0671;,&#x0623;,&#x0625;,&#x0622;" />
-        <!-- U+062A: "ت" ARABIC LETTER TEH
-             U+062B: "ﺙ" ARABIC LETTER THEH -->
-        <Key
-            latin:keyLabel="&#x062A;"
-            latin:moreKeys="&#x062B;" />
-        <!-- U+0646: "ن" ARABIC LETTER NOON -->
-        <Key
-            latin:keyLabel="&#x0646;" />
-        <!-- U+0645: "م" ARABIC LETTER MEEM -->
-        <Key
-            latin:keyLabel="&#x0645;" />
-        <!-- U+0643: "ك" ARABIC LETTER KAF
-             U+06AF: "گ" ARABIC LETTER GAF
-             U+06A9: "ک" ARABIC LETTER KEHEH -->
-        <Key
-            latin:keyLabel="&#x0643;"
-            latin:moreKeys="&#x06AF;,&#x06A9;"
-            latin:keyWidth="fillRight" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_arabic2" />
     </Row>
     <Row
         latin:keyWidth="10%p"
     >
-        <!-- U+0638: "ظ" ARABIC LETTER ZAH -->
-        <Key
-            latin:keyLabel="&#x0638;"
+        <include
+            latin:keyboardLayout="@xml/rowkeys_arabic3"
             latin:keyXPos="5.0%p" />
-        <!-- U+0637: "ط" ARABIC LETTER TAH -->
-        <Key
-            latin:keyLabel="&#x0637;" />
-        <!-- U+0630: "ذ" ARABIC LETTER THAL -->
-        <Key
-            latin:keyLabel="&#x0630;" />
-        <!-- U+062F: "د" ARABIC LETTER DAL -->
-        <Key
-            latin:keyLabel="&#x062F;" />
-        <!-- U+0632: "ز" ARABIC LETTER ZAIN
-             U+0698: "ژ" ARABIC LETTER JEH -->
-        <Key
-            latin:keyLabel="&#x0632;"
-            latin:moreKeys="&#x0698;" />
-        <!-- U+0631: "ر" ARABIC LETTER REH -->
-        <Key
-            latin:keyLabel="&#x0631;" />
-        <!-- U+0629: "ة" ARABIC LETTER TEH MARBUTA -->
-        <Key
-            latin:keyLabel="&#x0629;" />
-        <!-- U+0648: "و" ARABIC LETTER WAW
-             U+0624: "ﺅ" ARABIC LETTER WAW WITH HAMZA ABOVE -->
-        <Key
-            latin:keyLabel="&#x0648;"
-            latin:moreKeys="&#x0624;" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="fillRight"
diff --git a/java/res/xml/rows_azerty.xml b/java/res/xml/rows_azerty.xml
index bd3ff6f..a52504c 100644
--- a/java/res/xml/rows_azerty.xml
+++ b/java/res/xml/rows_azerty.xml
@@ -26,86 +26,14 @@
     <Row
         latin:keyWidth="10%p"
     >
-        <Key
-            latin:keyLabel="a"
-            latin:keyHintLabel="1"
-            latin:additionalMoreKeys="1"
-            latin:moreKeys="@string/more_keys_for_a" />
-        <Key
-            latin:keyLabel="z"
-            latin:keyHintLabel="2"
-            latin:additionalMoreKeys="2"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="e"
-            latin:keyHintLabel="3"
-            latin:additionalMoreKeys="3"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:keyHintLabel="4"
-            latin:additionalMoreKeys="4"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:keyHintLabel="5"
-            latin:additionalMoreKeys="5"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="y"
-            latin:keyHintLabel="6"
-            latin:additionalMoreKeys="6"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="u"
-            latin:keyHintLabel="7"
-            latin:additionalMoreKeys="7"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:keyHintLabel="8"
-            latin:additionalMoreKeys="8"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:keyHintLabel="9"
-            latin:additionalMoreKeys="9"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p"
-            latin:keyHintLabel="0"
-            latin:additionalMoreKeys="0"
-            latin:keyWidth="fillRight" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_azerty1" />
     </Row>
     <Row
         latin:keyWidth="10%p"
     >
-        <Key
-            latin:keyLabel="q" />
-        <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <Key
-            latin:keyLabel="m"
-            latin:keyWidth="fillRight" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_azerty2" />
     </Row>
     <Row
         latin:keyWidth="10%p"
@@ -114,25 +42,8 @@
             latin:keyStyle="shiftKeyStyle"
             latin:keyWidth="15%p"
             latin:visualInsetsRight="1%p" />
-        <Key
-            latin:keyLabel="w" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="\'"
-            latin:moreKeys="@string/more_keys_for_single_quote" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_azerty3" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="fillRight"
diff --git a/java/res/xml/rows_qwerty.xml b/java/res/xml/rows_qwerty.xml
index 71be44e..716d106 100644
--- a/java/res/xml/rows_qwerty.xml
+++ b/java/res/xml/rows_qwerty.xml
@@ -23,12 +23,33 @@
 >
     <include
         latin:keyboardLayout="@xml/key_styles_common" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty1" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty2" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty3" />
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty1" />
+    </Row>
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty2"
+            latin:keyXPos="5%p" />
+    </Row>
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="15%p"
+            latin:visualInsetsRight="1%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillBoth"
+            latin:visualInsetsLeft="1%p" />
+    </Row>
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml/rows_qwertz.xml b/java/res/xml/rows_qwertz.xml
index 11fd933..31a147c 100644
--- a/java/res/xml/rows_qwertz.xml
+++ b/java/res/xml/rows_qwertz.xml
@@ -26,57 +26,16 @@
     <Row
         latin:keyWidth="10%p"
     >
-        <Key
-            latin:keyLabel="q"
-            latin:keyHintLabel="1"
-            latin:additionalMoreKeys="1" />
-        <Key
-            latin:keyLabel="w"
-            latin:keyHintLabel="2"
-            latin:additionalMoreKeys="2" />
-        <Key
-            latin:keyLabel="e"
-            latin:keyHintLabel="3"
-            latin:additionalMoreKeys="3"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:keyHintLabel="4"
-            latin:additionalMoreKeys="4"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:keyHintLabel="5"
-            latin:additionalMoreKeys="5"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="z"
-            latin:keyHintLabel="6"
-            latin:additionalMoreKeys="6"
-            latin:moreKeys="@string/more_keys_for_z" />
-        <Key
-            latin:keyLabel="u"
-            latin:keyHintLabel="7"
-            latin:additionalMoreKeys="7"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:keyHintLabel="8"
-            latin:additionalMoreKeys="8"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:keyHintLabel="9"
-            latin:additionalMoreKeys="9"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p"
-            latin:keyHintLabel="0"
-            latin:additionalMoreKeys="0"
-            latin:keyWidth="fillRight" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwertz1" />
     </Row>
-    <include
-        latin:keyboardLayout="@xml/row_qwerty2" />
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty2"
+            latin:keyXPos="5%p" />
+    </Row>
     <Row
         latin:keyWidth="10%p"
     >
@@ -84,24 +43,8 @@
             latin:keyStyle="shiftKeyStyle"
             latin:keyWidth="15%p"
             latin:visualInsetsRight="1%p" />
-        <Key
-            latin:keyLabel="y"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="x" />
-        <Key
-            latin:keyLabel="c"
-            latin:moreKeys="@string/more_keys_for_c" />
-        <Key
-            latin:keyLabel="v"
-            latin:moreKeys="@string/more_keys_for_v" />
-        <Key
-            latin:keyLabel="b" />
-        <Key
-            latin:keyLabel="n"
-            latin:moreKeys="@string/more_keys_for_n" />
-        <Key
-            latin:keyLabel="m" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwertz3" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="fillRight"
diff --git a/java/res/xml/rows_scandinavian.xml b/java/res/xml/rows_scandinavian.xml
index f5ba96c..45642f4 100644
--- a/java/res/xml/rows_scandinavian.xml
+++ b/java/res/xml/rows_scandinavian.xml
@@ -26,94 +26,29 @@
     <Row
         latin:keyWidth="9.091%p"
     >
-        <Key
-            latin:keyLabel="q"
-            latin:keyHintLabel="1"
-            latin:additionalMoreKeys="1" />
-        <Key
-            latin:keyLabel="w"
-            latin:keyHintLabel="2"
-            latin:additionalMoreKeys="2" />
-        <Key
-            latin:keyLabel="e"
-            latin:keyHintLabel="3"
-            latin:additionalMoreKeys="3"
-            latin:moreKeys="@string/more_keys_for_e" />
-        <Key
-            latin:keyLabel="r"
-            latin:keyHintLabel="4"
-            latin:additionalMoreKeys="4"
-            latin:moreKeys="@string/more_keys_for_r" />
-        <Key
-            latin:keyLabel="t"
-            latin:keyHintLabel="5"
-            latin:additionalMoreKeys="5"
-            latin:moreKeys="@string/more_keys_for_t" />
-        <Key
-            latin:keyLabel="y"
-            latin:keyHintLabel="6"
-            latin:additionalMoreKeys="6"
-            latin:moreKeys="@string/more_keys_for_y" />
-        <Key
-            latin:keyLabel="u"
-            latin:keyHintLabel="7"
-            latin:additionalMoreKeys="7"
-            latin:moreKeys="@string/more_keys_for_u" />
-        <Key
-            latin:keyLabel="i"
-            latin:keyHintLabel="8"
-            latin:additionalMoreKeys="8"
-            latin:moreKeys="@string/more_keys_for_i" />
-        <Key
-            latin:keyLabel="o"
-            latin:keyHintLabel="9"
-            latin:additionalMoreKeys="9"
-            latin:moreKeys="@string/more_keys_for_o" />
-        <Key
-            latin:keyLabel="p"
-            latin:keyHintLabel="0"
-            latin:additionalMoreKeys="0" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_scandinavia_row1_11"
-            latin:keyWidth="fillRight" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_scandinavian1" />
     </Row>
     <Row
         latin:keyWidth="9.091%p"
     >
-        <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a" />
-        <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
-            latin:moreKeys="@string/more_keys_for_scandinavia_row2_10" />
-        <Key
-            latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
-            latin:moreKeys="@string/more_keys_for_scandinavia_row2_11"
-            latin:keyWidth="fillRight" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_scandinavian2" />
     </Row>
-    <include
-        latin:keyboardLayout="@xml/row_qwerty3" />
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <Key
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="15%p"
+            latin:visualInsetsRight="1%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
+        <Key
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillBoth"
+            latin:visualInsetsLeft="1%p" />
+    </Row>
     <include
         latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>
diff --git a/java/res/xml/rows_spanish.xml b/java/res/xml/rows_spanish.xml
index 5831a2b..b311297 100644
--- a/java/res/xml/rows_spanish.xml
+++ b/java/res/xml/rows_spanish.xml
@@ -23,41 +23,32 @@
 >
     <include
         latin:keyboardLayout="@xml/key_styles_common" />
-    <include
-        latin:keyboardLayout="@xml/row_qwerty1" />
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty1" />
+    </Row>
+    <Row
+        latin:keyWidth="10%p"
+    >
+        <include
+            latin:keyboardLayout="@xml/rowkeys_spanish2" />
+    </Row>
     <Row
         latin:keyWidth="10%p"
     >
         <Key
-            latin:keyLabel="a"
-            latin:moreKeys="@string/more_keys_for_a" />
+            latin:keyStyle="shiftKeyStyle"
+            latin:keyWidth="15%p"
+            latin:visualInsetsRight="1%p" />
+        <include
+            latin:keyboardLayout="@xml/rowkeys_qwerty3" />
         <Key
-            latin:keyLabel="s"
-            latin:moreKeys="@string/more_keys_for_s" />
-        <Key
-            latin:keyLabel="d"
-            latin:moreKeys="@string/more_keys_for_d" />
-        <Key
-            latin:keyLabel="f" />
-        <Key
-            latin:keyLabel="g"
-            latin:moreKeys="@string/more_keys_for_g" />
-        <Key
-            latin:keyLabel="h" />
-        <Key
-            latin:keyLabel="j" />
-        <Key
-            latin:keyLabel="k"
-            latin:moreKeys="@string/more_keys_for_k" />
-        <Key
-            latin:keyLabel="l"
-            latin:moreKeys="@string/more_keys_for_l" />
-        <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
-        <Key
-            latin:keyLabel="&#x00F1;" />
+            latin:keyStyle="deleteKeyStyle"
+            latin:keyWidth="fillBoth"
+            latin:visualInsetsLeft="1%p" />
     </Row>
     <include
-        latin:keyboardLayout="@xml/row_qwerty3" />
-    <include
         latin:keyboardLayout="@xml/row_qwerty4" />
 </merge>