diff --git a/java/res/values-da/donottranslate-altchars.xml b/java/res/values-da/donottranslate-altchars.xml
index b1cc8b627..596994ca4 100644
--- a/java/res/values-da/donottranslate-altchars.xml
+++ b/java/res/values-da/donottranslate-altchars.xml
@@ -33,6 +33,8 @@
źžż
ł
w
- ä
- öœ
+ æ
+ ø
+ ä
+ öœ
diff --git a/java/res/values-nb/donottranslate-altchars.xml b/java/res/values-nb/donottranslate-altchars.xml
index 6257dfc31..264402987 100644
--- a/java/res/values-nb/donottranslate-altchars.xml
+++ b/java/res/values-nb/donottranslate-altchars.xml
@@ -33,5 +33,8 @@
źžż
ł
w
- œ
+ ø
+ æ
+ ö
+ ä
diff --git a/java/res/values-sv/donottranslate-altchars.xml b/java/res/values-sv/donottranslate-altchars.xml
index 4d26e6c47..902a4c9bb 100644
--- a/java/res/values-sv/donottranslate-altchars.xml
+++ b/java/res/values-sv/donottranslate-altchars.xml
@@ -33,6 +33,8 @@
źžż
ł
w
- æ
- øœ
+ ö
+ ä
+ øœ
+ æ
diff --git a/java/res/values/donottranslate-altchars.xml b/java/res/values/donottranslate-altchars.xml
index bba7282c9..41c498ee3 100644
--- a/java/res/values/donottranslate-altchars.xml
+++ b/java/res/values/donottranslate-altchars.xml
@@ -37,10 +37,10 @@
0
-
-
+
+
+
+
-
-
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 5daa98935..ff2209887 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -399,9 +399,9 @@
English (United States) Keyboard
English (Great Britain) Keyboard
Spanish Keyboard
- Spanish (United States) Keyboard
+ Spanish (United States) Keyboard
French Keyboard
- French (Canada) Keyboard
+ French (Canada) Keyboard
Italian Keyboard
Norwegian Keyboard
Dutch Keyboard
diff --git a/java/res/xml-da/kbd_qwerty.xml b/java/res/xml-da/kbd_qwerty.xml
index f1f9904e3..ac30b00bb 100644
--- a/java/res/xml-da/kbd_qwerty.xml
+++ b/java/res/xml-da/kbd_qwerty.xml
@@ -31,149 +31,6 @@
latin:verticalGap="@dimen/key_bottom_gap"
latin:keyHeight="@dimen/key_height"
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/java/res/xml-de-xlarge/kbd_qwerty.xml b/java/res/xml-de-xlarge/kbd_qwerty.xml
new file mode 100644
index 000000000..8e8e692cd
--- /dev/null
+++ b/java/res/xml-de-xlarge/kbd_qwerty.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/java/res/xml-de/kbd_qwerty.xml b/java/res/xml-de/kbd_qwerty.xml
index 0832cbc92..8e8e692cd 100644
--- a/java/res/xml-de/kbd_qwerty.xml
+++ b/java/res/xml-de/kbd_qwerty.xml
@@ -25,135 +25,6 @@
latin:verticalGap="@dimen/key_bottom_gap"
latin:keyHeight="@dimen/key_height"
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/java/res/xml-fr-rCA-xlarge/kbd_qwerty.xml b/java/res/xml-fr-rCA-xlarge/kbd_qwerty.xml
new file mode 100644
index 000000000..42f151560
--- /dev/null
+++ b/java/res/xml-fr-rCA-xlarge/kbd_qwerty.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/java/res/xml-fr-rCA/kbd_qwerty.xml b/java/res/xml-fr-rCA/kbd_qwerty.xml
new file mode 100644
index 000000000..42f151560
--- /dev/null
+++ b/java/res/xml-fr-rCA/kbd_qwerty.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/java/res/xml-fr-rCH-xlarge/kbd_qwerty.xml b/java/res/xml-fr-rCH-xlarge/kbd_qwerty.xml
new file mode 100644
index 000000000..8e8e692cd
--- /dev/null
+++ b/java/res/xml-fr-rCH-xlarge/kbd_qwerty.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/java/res/xml-fr-rCH/kbd_qwerty.xml b/java/res/xml-fr-rCH/kbd_qwerty.xml
new file mode 100644
index 000000000..8e8e692cd
--- /dev/null
+++ b/java/res/xml-fr-rCH/kbd_qwerty.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/java/res/xml-fr-xlarge/kbd_qwerty.xml b/java/res/xml-fr-xlarge/kbd_qwerty.xml
new file mode 100644
index 000000000..8d68a554b
--- /dev/null
+++ b/java/res/xml-fr-xlarge/kbd_qwerty.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/java/res/xml-fr/kbd_qwerty.xml b/java/res/xml-fr/kbd_qwerty.xml
index 95c107382..8d68a554b 100644
--- a/java/res/xml-fr/kbd_qwerty.xml
+++ b/java/res/xml-fr/kbd_qwerty.xml
@@ -25,135 +25,6 @@
latin:verticalGap="@dimen/key_bottom_gap"
latin:keyHeight="@dimen/key_height"
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml
index fd94a1202..514f93572 100644
--- a/java/res/xml-iw/kbd_qwerty.xml
+++ b/java/res/xml-iw/kbd_qwerty.xml
@@ -25,6 +25,8 @@
latin:verticalGap="@dimen/key_bottom_gap"
latin:keyHeight="@dimen/key_height"
>
+
@@ -50,12 +52,8 @@
diff --git a/java/res/xml-nb/kbd_qwerty.xml b/java/res/xml-nb/kbd_qwerty.xml
index 32512daaa..fe33e5384 100644
--- a/java/res/xml-nb/kbd_qwerty.xml
+++ b/java/res/xml-nb/kbd_qwerty.xml
@@ -31,149 +31,6 @@
latin:verticalGap="@dimen/key_bottom_gap"
latin:keyHeight="@dimen/key_height"
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/java/res/xml-ru/kbd_qwerty.xml b/java/res/xml-ru/kbd_qwerty.xml
index 80a9ddd4f..d5744c94e 100644
--- a/java/res/xml-ru/kbd_qwerty.xml
+++ b/java/res/xml-ru/kbd_qwerty.xml
@@ -25,6 +25,8 @@
latin:verticalGap="@dimen/key_bottom_gap"
latin:keyHeight="@dimen/key_height"
>
+
@@ -117,12 +119,8 @@
latin:keyWidth="8.5%p"
>
@@ -145,13 +143,10 @@
-
+
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index c9a4e449c..77e764788 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -26,6 +26,8 @@
latin:verticalGap="@dimen/key_bottom_gap"
latin:keyHeight="@dimen/key_height"
>
+
@@ -116,12 +118,8 @@
latin:keyWidth="8.5%p"
>
@@ -138,13 +136,10 @@
-
+
diff --git a/java/res/xml-sv/kbd_qwerty.xml b/java/res/xml-sv/kbd_qwerty.xml
index ae7002463..464a463a1 100644
--- a/java/res/xml-sv/kbd_qwerty.xml
+++ b/java/res/xml-sv/kbd_qwerty.xml
@@ -33,148 +33,6 @@
latin:verticalGap="@dimen/key_bottom_gap"
latin:keyHeight="@dimen/key_height"
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/java/res/xml-xlarge/kbd_azerty_rows.xml b/java/res/xml-xlarge/kbd_azerty_rows.xml
new file mode 100644
index 000000000..b68e21481
--- /dev/null
+++ b/java/res/xml-xlarge/kbd_azerty_rows.xml
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml-xlarge/kbd_qwerty.xml b/java/res/xml-xlarge/kbd_qwerty.xml
index 6f6877b0b..56cfe000e 100644
--- a/java/res/xml-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-xlarge/kbd_qwerty.xml
@@ -25,13 +25,5 @@
latin:keyHeight="@dimen/key_height"
>
-
-
-
-
+ latin:keyboardLayout="@xml/kbd_qwerty_rows" />
diff --git a/java/res/xml-xlarge/kbd_qwerty_rows.xml b/java/res/xml-xlarge/kbd_qwerty_rows.xml
new file mode 100644
index 000000000..6237712f6
--- /dev/null
+++ b/java/res/xml-xlarge/kbd_qwerty_rows.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml-xlarge/kbd_qwertz_rows.xml b/java/res/xml-xlarge/kbd_qwertz_rows.xml
new file mode 100644
index 000000000..de15b5fd6
--- /dev/null
+++ b/java/res/xml-xlarge/kbd_qwertz_rows.xml
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml/kbd_azerty_rows.xml b/java/res/xml/kbd_azerty_rows.xml
new file mode 100644
index 000000000..c06724c49
--- /dev/null
+++ b/java/res/xml/kbd_azerty_rows.xml
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml
index b75f53399..42f151560 100644
--- a/java/res/xml/kbd_qwerty.xml
+++ b/java/res/xml/kbd_qwerty.xml
@@ -26,129 +26,5 @@
latin:keyHeight="@dimen/key_height"
>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ latin:keyboardLayout="@xml/kbd_qwerty_rows" />
diff --git a/java/res/xml/kbd_qwerty_row1.xml b/java/res/xml/kbd_qwerty_row1.xml
new file mode 100644
index 000000000..e4356a8ad
--- /dev/null
+++ b/java/res/xml/kbd_qwerty_row1.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml/kbd_qwerty_row2.xml b/java/res/xml/kbd_qwerty_row2.xml
new file mode 100644
index 000000000..d5184954f
--- /dev/null
+++ b/java/res/xml/kbd_qwerty_row2.xml
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml/kbd_qwerty_row3.xml b/java/res/xml/kbd_qwerty_row3.xml
new file mode 100644
index 000000000..71a5f9c4a
--- /dev/null
+++ b/java/res/xml/kbd_qwerty_row3.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml/kbd_qwerty_rows.xml b/java/res/xml/kbd_qwerty_rows.xml
new file mode 100644
index 000000000..6237712f6
--- /dev/null
+++ b/java/res/xml/kbd_qwerty_rows.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml/kbd_qwerty_rows_scandinavia.xml b/java/res/xml/kbd_qwerty_rows_scandinavia.xml
new file mode 100644
index 000000000..4fa2e6eda
--- /dev/null
+++ b/java/res/xml/kbd_qwerty_rows_scandinavia.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml/kbd_qwertz_rows.xml b/java/res/xml/kbd_qwertz_rows.xml
new file mode 100644
index 000000000..4dbb6412a
--- /dev/null
+++ b/java/res/xml/kbd_qwertz_rows.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index 65816aa4e..7cdd63446 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -20,7 +20,7 @@
-
+
@@ -59,9 +59,9 @@
android:imeSubtypeLocale="es"
android:imeSubtypeMode="keyboard"
/>
-
-