diff --git a/README.md b/README.md
index ae2b46d48..d5d1411ca 100644
--- a/README.md
+++ b/README.md
@@ -14,8 +14,8 @@ Greek (ελληνικά), Hebrew (עברית), Hungarian (Magyar), Italian (Ital
Romanian (Română), Russian (Русский), Russian phonetic (Русский, ru-rPH),
Serbian (Српски), Slovak (Slovenčina), Slovenian
(Slovenščina)/Bosnian/Croatian/Latin Serbian, Spanish (Español, Español
-Latinoamérica), Swedish (Svenska), Tamil (தமிழ்), Thai (ไทย), Turkish (Türkçe),
-and Ukrainian (українська мова).
+Latinoamérica), Swedish (Svenska), Swiss (French and German), Tamil (தமிழ்),
+Thai (ไทย), Turkish (Türkçe), and Ukrainian (українська мова).
To install, get **[Hacker's
Keyboard](https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard)**
diff --git a/java/res/values-de-rCH/donottranslate-altchars.xml b/java/res/values-de-rCH/donottranslate-altchars.xml
new file mode 100644
index 000000000..9d46bbdde
--- /dev/null
+++ b/java/res/values-de-rCH/donottranslate-altchars.xml
@@ -0,0 +1,36 @@
+
+
+
+ àáâãäåæ
+ 3èéêë€
+ 8ïîíì
+ ñ
+ 9øœöõôóò
+ 0π₱
+ 1
+ 4
+ §ß
+ 5
+ 7üúùûū
+ ç
+ 6ÿý
+ 2
+ 6
+
diff --git a/java/res/values-de-rCH/donottranslate-keymap.xml b/java/res/values-de-rCH/donottranslate-keymap.xml
new file mode 100644
index 000000000..b96d4166a
--- /dev/null
+++ b/java/res/values-de-rCH/donottranslate-keymap.xml
@@ -0,0 +1,227 @@
+
+
+
+ §
+ °
+ ^°
+
+ 1
+ +
+ 1+|
+
+ 2
+ \"
+ 2\"@
+
+ 3
+ *
+ 3*#
+
+ 4
+ ç
+ 4ç¼
+
+ 5
+ %
+ 5%½
+
+ 6
+ &
+ 6&¬
+
+ 7
+ /
+ 7/|
+
+ 8
+ (
+ 8(¢
+
+ 9
+ )
+ 9)]
+
+ 0
+ =
+ 0=}
+
+ \'
+ \?
+ \'\?\'
+
+ ^
+ `
+ ^`~
+
+
+
+ q
+ Q
+ @string/alternates_for_q
+
+ w
+ W
+ @string/alternates_for_w
+
+ e
+ E
+ @string/alternates_for_e
+
+ r
+ R
+ @string/alternates_for_r
+
+ t
+ T
+ @string/alternates_for_t
+
+ z
+ Z
+ @string/alternates_for_z
+
+ u
+ U
+ @string/alternates_for_u
+
+ i
+ I
+ @string/alternates_for_i
+
+ o
+ O
+ @string/alternates_for_o
+
+ p
+ P
+ @string/alternates_for_p
+
+ ü
+ è
+ üèÜÈ[
+
+ \"
+ \!
+ \"\!]
+
+ $
+ £
+ $£}
+
+
+
+
+ a
+ A
+ @string/alternates_for_a
+
+ s
+ S
+ @string/alternates_for_s
+
+ d
+ D
+ @string/alternates_for_d
+
+ f
+ F
+ @string/alternates_for_f
+
+ g
+ G
+ @string/alternates_for_g
+
+ h
+ H
+ @string/alternates_for_h
+
+ j
+ J
+ @string/alternates_for_j
+
+ k
+ K
+ @string/alternates_for_k
+
+ l
+ L
+ @string/alternates_for_l
+
+ ö
+ é
+ öéÖÉ
+
+ ä
+ à
+ äàÄÀ{
+
+
+ <
+ >
+ <>\\
+
+ y
+ Y
+ @string/alternates_for_y
+
+ x
+ X
+ @string/alternates_for_x
+
+ c
+ C
+ @string/alternates_for_c
+
+ v
+ V
+ @string/alternates_for_v
+
+ b
+ B
+ @string/alternates_for_b
+
+ n
+ N
+ @string/alternates_for_n
+
+ m
+ M
+ @string/alternates_for_m
+
+ ,
+ ;
+ ,;
+
+ .
+ :
+ .:·
+
+ -
+ _
+ -_
+
+
+
+
diff --git a/java/res/values-fr-rCH/donottranslate-altchars.xml b/java/res/values-fr-rCH/donottranslate-altchars.xml
new file mode 100644
index 000000000..9d46bbdde
--- /dev/null
+++ b/java/res/values-fr-rCH/donottranslate-altchars.xml
@@ -0,0 +1,36 @@
+
+
+
+ àáâãäåæ
+ 3èéêë€
+ 8ïîíì
+ ñ
+ 9øœöõôóò
+ 0π₱
+ 1
+ 4
+ §ß
+ 5
+ 7üúùûū
+ ç
+ 6ÿý
+ 2
+ 6
+
diff --git a/java/res/values-fr-rCH/donottranslate-keymap.xml b/java/res/values-fr-rCH/donottranslate-keymap.xml
new file mode 100644
index 000000000..1df3a632d
--- /dev/null
+++ b/java/res/values-fr-rCH/donottranslate-keymap.xml
@@ -0,0 +1,227 @@
+
+
+
+ §
+ °
+ ^°
+
+ 1
+ +
+ 1+|
+
+ 2
+ \"
+ 2\"@
+
+ 3
+ *
+ 3*#
+
+ 4
+ ç
+ 4ç¼
+
+ 5
+ %
+ 5%½
+
+ 6
+ &
+ 6&¬
+
+ 7
+ /
+ 7/|
+
+ 8
+ (
+ 8(¢
+
+ 9
+ )
+ 9)]
+
+ 0
+ =
+ 0=}
+
+ \'
+ \?
+ \'\?\'
+
+ ^
+ `
+ ^`~
+
+
+
+ q
+ Q
+ @string/alternates_for_q
+
+ w
+ W
+ @string/alternates_for_w
+
+ e
+ E
+ @string/alternates_for_e
+
+ r
+ R
+ @string/alternates_for_r
+
+ t
+ T
+ @string/alternates_for_t
+
+ z
+ Z
+ @string/alternates_for_z
+
+ u
+ U
+ @string/alternates_for_u
+
+ i
+ I
+ @string/alternates_for_i
+
+ o
+ O
+ @string/alternates_for_o
+
+ p
+ P
+ @string/alternates_for_p
+
+ è
+ ü
+ èüÈÜ[
+
+ \"
+ \!
+ \"\!]
+
+ $
+ £
+ $£}
+
+
+
+
+ a
+ A
+ @string/alternates_for_a
+
+ s
+ S
+ @string/alternates_for_s
+
+ d
+ D
+ @string/alternates_for_d
+
+ f
+ F
+ @string/alternates_for_f
+
+ g
+ G
+ @string/alternates_for_g
+
+ h
+ H
+ @string/alternates_for_h
+
+ j
+ J
+ @string/alternates_for_j
+
+ k
+ K
+ @string/alternates_for_k
+
+ l
+ L
+ @string/alternates_for_l
+
+ é
+ ö
+ éöÉÖ
+
+ à
+ ä
+ àäÀÄ{
+
+
+ <
+ >
+ <>\\
+
+ y
+ Y
+ @string/alternates_for_y
+
+ x
+ X
+ @string/alternates_for_x
+
+ c
+ C
+ @string/alternates_for_c
+
+ v
+ V
+ @string/alternates_for_v
+
+ b
+ B
+ @string/alternates_for_b
+
+ n
+ N
+ @string/alternates_for_n
+
+ m
+ M
+ @string/alternates_for_m
+
+ ,
+ ;
+ ,;
+
+ .
+ :
+ .:·
+
+ -
+ _
+ -_
+
+
+
+
diff --git a/java/res/xml-de-rCH/kbd_full.xml b/java/res/xml-de-rCH/kbd_full.xml
new file mode 100644
index 000000000..9e335bf60
--- /dev/null
+++ b/java/res/xml-de-rCH/kbd_full.xml
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml-de-rCH/kbd_qwerty.xml b/java/res/xml-de-rCH/kbd_qwerty.xml
new file mode 100644
index 000000000..8c052f391
--- /dev/null
+++ b/java/res/xml-de-rCH/kbd_qwerty.xml
@@ -0,0 +1,513 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/res/xml-fr-rCH/kbd_full.xml b/java/res/xml-fr-rCH/kbd_full.xml
new file mode 100644
index 000000000..9e335bf60
--- /dev/null
+++ b/java/res/xml-fr-rCH/kbd_full.xml
@@ -0,0 +1,411 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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..8c052f391
--- /dev/null
+++ b/java/res/xml-fr-rCH/kbd_qwerty.xml
@@ -0,0 +1,513 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/java/src/org/pocketworkstation/pckeyboard/InputLanguageSelection.java b/java/src/org/pocketworkstation/pckeyboard/InputLanguageSelection.java
index dfa361090..fd70f9c6f 100644
--- a/java/src/org/pocketworkstation/pckeyboard/InputLanguageSelection.java
+++ b/java/src/org/pocketworkstation/pckeyboard/InputLanguageSelection.java
@@ -68,25 +68,25 @@ public class InputLanguageSelection extends PreferenceActivity {
// Run the GetLanguages.sh script to update the following lists based on
// the available keyboard resources and dictionaries.
private static final String[] KBD_LOCALIZATIONS = {
- "ar", "bg", "bg_ST", "ca", "cs", "cs_QY", "da", "de", "de_NE",
+ "ar", "bg", "bg_ST", "ca", "cs", "cs_QY", "da", "de", "de_CH", "de_NE",
"el", "en", "en_CX", "en_DV", "en_GB", "es", "es_LA", "es_US",
- "fa", "fi", "fr", "fr_CA", "he", "hr", "hu", "hu_QY", "hy", "in",
+ "fa", "fi", "fr", "fr_CA", "fr_CH", "he", "hr", "hu", "hu_QY", "hy", "in",
"it", "iw", "ja", "ka", "ko", "lo", "lt", "lv", "nb", "nl", "pl",
"pt", "pt_PT", "rm", "ro", "ru", "ru_PH", "si", "sk", "sk_QY", "sl",
"sr", "sv", "ta", "th", "tl", "tr", "uk", "vi", "zh_CN", "zh_TW"
};
private static final String[] KBD_5_ROW = {
- "ar", "bg", "bg_ST", "cs", "cs_QY", "da", "de", "de_NE", "el",
+ "ar", "bg", "bg_ST", "cs", "cs_QY", "da", "de", "de_CH", "de_NE", "el",
"en", "en_CX", "en_DV", "en_GB", "es", "es_LA", "fa", "fi", "fr",
- "fr_CA", "he", "hr", "hu", "hu_QY", "hy", "it", "iw", "lo", "lt",
+ "fr_CA", "fr_CH", "he", "hr", "hu", "hu_QY", "hy", "it", "iw", "lo", "lt",
"nb", "pt_PT", "ro", "ru", "ru_PH", "si", "sk", "sk_QY", "sl",
"sr", "sv", "ta", "th", "tr", "uk"
};
private static final String[] KBD_4_ROW = {
- "ar", "bg", "bg_ST", "cs", "cs_QY", "da", "de", "de_NE", "el",
- "en", "en_CX", "en_DV", "es", "es_LA", "es_US", "fa", "fr", "fr_CA",
+ "ar", "bg", "bg_ST", "cs", "cs_QY", "da", "de", "de_CH", "de_NE", "el",
+ "en", "en_CX", "en_DV", "es", "es_LA", "es_US", "fa", "fr", "fr_CA", "fr_CH",
"he", "hr", "hu", "hu_QY", "iw", "nb", "ru", "ru_PH", "sk", "sk_QY",
"sl", "sr", "sv", "tr", "uk"
};