diff --git a/java/res/xml/method.xml b/java/res/xml/method.xml
index 6d8f78773..594378fb4 100644
--- a/java/res/xml/method.xml
+++ b/java/res/xml/method.xml
@@ -57,6 +57,7 @@
in: Indonesian/qwerty # "id" is the official language code of Indonesian.
is: Icelandic/qwerty
it: Italian/qwerty
+ it_CH: Italian (Switzerland)/swiss
iw: Hebrew/hebrew # "he" is the official language code of Hebrew.
ka_GE: Georgian (Georgia)/georgian
kk: Kazakh/east_slavic
@@ -385,6 +386,14 @@
android:imeSubtypeExtraValue="AsciiCapable,SupportTouchPositionCorrection,EmojiCapable"
android:isAsciiCapable="true"
/>
+
subtypeList) {
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java
index 4a2200364..fe83bbf82 100644
--- a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalian.java
@@ -20,6 +20,7 @@ import android.test.suitebuilder.annotation.SmallTest;
import com.android.inputmethod.keyboard.layout.LayoutBase;
import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
+import com.android.inputmethod.keyboard.layout.LayoutBase.LayoutCustomizer;
import com.android.inputmethod.keyboard.layout.Qwerty;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
@@ -31,12 +32,26 @@ import java.util.Locale;
@SmallTest
public final class TestsItalian extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("it");
- private static final LayoutBase LAYOUT = new Qwerty(new ItalianCustomizer(LOCALE));
+ private static final LayoutBase LAYOUT = new Qwerty(new ItalianITCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
- private static class ItalianCustomizer extends EuroCustomizer {
+ private static class ItalianITCustomizer extends EuroCustomizer {
+ private final ItalianCustomizer mItalianCustomizer;
+
+ public ItalianITCustomizer(final Locale locale) {
+ super(locale);
+ mItalianCustomizer = new ItalianCustomizer(locale);
+ }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ return mItalianCustomizer.setAccentedLetters(builder);
+ }
+ }
+
+ static class ItalianCustomizer extends LayoutCustomizer {
public ItalianCustomizer(final Locale locale) { super(locale); }
@Override
diff --git a/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalianCH.java b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalianCH.java
new file mode 100644
index 000000000..65f74bf14
--- /dev/null
+++ b/tests/src/com/android/inputmethod/keyboard/layout/tests/TestsItalianCH.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2014 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.
+ */
+
+package com.android.inputmethod.keyboard.layout.tests;
+
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.inputmethod.keyboard.layout.LayoutBase;
+import com.android.inputmethod.keyboard.layout.Swiss;
+import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
+import com.android.inputmethod.keyboard.layout.tests.TestsItalian.ItalianCustomizer;
+
+import java.util.Locale;
+
+/**
+ * it_CH: Italian (Switzerland)/swiss
+ */
+@SmallTest
+public final class TestsItalianCH extends LayoutTestsBase {
+ private static final Locale LOCALE = new Locale("it", "CH");
+ private static final LayoutBase LAYOUT = new Swiss(new ItalianCHCustomizer(LOCALE));
+
+ @Override
+ LayoutBase getLayout() { return LAYOUT; }
+
+ private static class ItalianCHCustomizer extends ItalianCustomizer {
+ public ItalianCHCustomizer(final Locale locale) { super(locale); }
+
+ @Override
+ public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
+ super.setAccentedLetters(builder);
+ return builder
+ // U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ // U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ .replaceKeyOfLabel(Swiss.ROW1_11, key("\u00FC", moreKey("\u00E8")))
+ // U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ // U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ .replaceKeyOfLabel(Swiss.ROW2_10, key("\u00F6", moreKey("\u00E9")))
+ // U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ // U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ .replaceKeyOfLabel(Swiss.ROW2_11, key("\u00E4", moreKey("\u00E0")));
+ }
+ }
+}
diff --git a/tools/make-keyboard-text/res/values-it/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-it/donottranslate-more-keys.xml
index 6492553ed..e809f4835 100644
--- a/tools/make-keyboard-text/res/values-it/donottranslate-more-keys.xml
+++ b/tools/make-keyboard-text/res/values-it/donottranslate-more-keys.xml
@@ -59,4 +59,16 @@
U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
ù,ú,û,ü,ū
+
+ ü
+
+ è
+
+ ö
+
+ é
+
+ ä
+
+ à