Fix adding more diacritics letters for Nordic languages

Bug: 10787354
Change-Id: Ia71417069a0cc10d7908d0c404ce85eb0cd76540
main
Tadashi G. Takaoka 2014-09-25 16:28:05 +09:00
parent 207b979087
commit dade81d78c
19 changed files with 586 additions and 210 deletions

View File

@ -24,7 +24,7 @@
latin:elementName="alphabet"
latin:elementKeyboard="@xml/kbd_nordic"
latin:enableProximityCharsCorrection="true"
latin:allowRedundantMoreKeys="true" />
latin:allowRedundantMoreKeys="false" />
<Element
latin:elementName="symbols"
latin:elementKeyboard="@xml/kbd_symbols" />

View File

@ -952,20 +952,24 @@ public final class KeyboardTextsTable {
/* Locale da: Danish */
private static final String[] TEXTS_da = {
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
/* morekeys_a */ "\u00E1,\u00E4,\u00E0,\u00E2,\u00E3,\u0101",
/* morekeys_a */ "\u00E5,\u00E6,\u00E1,\u00E4,\u00E0,\u00E2,\u00E3,\u0101",
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
/* morekeys_o */ "\u00F3,\u00F4,\u00F2,\u00F5,\u0153,\u014D",
/* morekeys_o */ "\u00F8,\u00F6,\u00F3,\u00F4,\u00F2,\u00F5,\u0153,\u014D",
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
/* morekeys_e */ "\u00E9,\u00EB",
@ -1666,13 +1670,16 @@ public final class KeyboardTextsTable {
/* Locale fi: Finnish */
private static final String[] TEXTS_fi = {
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
/* morekeys_a */ "\u00E6,\u00E0,\u00E1,\u00E2,\u00E3,\u0101",
/* morekeys_a */ "\u00E4,\u00E5,\u00E6,\u00E0,\u00E1,\u00E2,\u00E3,\u0101",
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
@ -1680,7 +1687,7 @@ public final class KeyboardTextsTable {
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
/* morekeys_o */ "\u00F8,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u014D",
/* morekeys_o */ "\u00F6,\u00F8,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u014D",
/* morekeys_e */ null,
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
/* morekeys_u */ "\u00FC",
@ -2784,21 +2791,24 @@ public final class KeyboardTextsTable {
/* Locale nb: Norwegian Bokmål */
private static final String[] TEXTS_nb = {
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
/* morekeys_a */ "\u00E0,\u00E4,\u00E1,\u00E2,\u00E3,\u0101",
/* morekeys_a */ "\u00E5,\u00E6,\u00E4,\u00E0,\u00E1,\u00E2,\u00E3,\u0101",
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
/* morekeys_o */ "\u00F4,\u00F2,\u00F3,\u00F6,\u00F5,\u0153,\u014D",
/* morekeys_o */ "\u00F8,\u00F6,\u00F4,\u00F2,\u00F3,\u00F5,\u0153,\u014D",
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
// U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@ -3381,18 +3391,24 @@ public final class KeyboardTextsTable {
/* Locale sv: Swedish */
private static final String[] TEXTS_sv = {
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E5: "å" LATIN SMALL LETTER A WITH RING
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
/* morekeys_a */ "\u00E1,\u00E0,\u00E2,\u0105,\u00E3",
/* morekeys_a */ "\u00E4,\u00E5,\u00E6,\u00E1,\u00E0,\u00E2,\u0105,\u00E3",
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
/* morekeys_o */ "\u00F3,\u00F2,\u00F4,\u00F5,\u014D",
/* morekeys_o */ "\u00F6,\u00F8,\u0153,\u00F3,\u00F2,\u00F4,\u00F5,\u014D",
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
// U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX

View File

@ -50,6 +50,24 @@ public abstract class LayoutBase extends AbstractLayoutBase {
return 4;
}
/**
* Set accented letters to a specific keyboard element.
* @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
* layout.
* @param elementId the element id of keyboard
* @return the {@link ExpectedKeyboardBuilder} object that contains accented letters as
* "more keys".
*/
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder,
final int elementId) {
// This method can be overridden by an extended class to provide customized expected
// accented letters depending on the shift state of keyboard.
// This is a default behavior to call a shift-state-independent
// {@link #setAccentedLetters(ExpectedKeyboardBuilder)} implementation, so that
// <code>elementId</code> is ignored here.
return setAccentedLetters(builder);
}
/**
* Set accented letters to common layout.
* @param builder the {@link ExpectedKeyboardBuilder} object that contains common keyboard
@ -386,7 +404,7 @@ public abstract class LayoutBase extends AbstractLayoutBase {
ExpectedKey[][] getCommonAlphabetShiftLayout(final boolean isPhone, final int elementId) {
final ExpectedKeyboardBuilder builder = new ExpectedKeyboardBuilder(
getCommonAlphabetLayout(isPhone));
getCustomizer().setAccentedLetters(builder);
getCustomizer().setAccentedLetters(builder, elementId);
builder.toUpperCase(getLocale());
return builder.build();
}
@ -411,7 +429,7 @@ public abstract class LayoutBase extends AbstractLayoutBase {
final ExpectedKeyboardBuilder builder;
if (elementId == KeyboardId.ELEMENT_ALPHABET) {
builder = new ExpectedKeyboardBuilder(getCommonAlphabetLayout(isPhone));
getCustomizer().setAccentedLetters(builder);
getCustomizer().setAccentedLetters(builder, elementId);
} else {
final ExpectedKey[][] commonLayout = getCommonAlphabetShiftLayout(isPhone, elementId);
if (commonLayout == null) {

View File

@ -53,9 +53,35 @@ class DanishCustomizer extends EuroCustomizer {
.setMoreKeysOf("\u00F8", "\u00F6");
}
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
.setMoreKeysOf("a", "\u00E1", "\u00E4", "\u00E0", "\u00E2", "\u00E3", "\u0101");
}
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o", "\u00F6", "\u00F3", "\u00F4", "\u00F2", "\u00F5", "\u0153",
"\u014D");
}
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
setNordicKeys(builder);
setMoreKeysOfA(builder);
setMoreKeysOfO(builder);
return builder
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
@ -72,20 +98,6 @@ class DanishCustomizer extends EuroCustomizer {
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
.setMoreKeysOf("i", "\u00ED", "\u00EF")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o", "\u00F3", "\u00F4", "\u00F2", "\u00F5", "\u0153", "\u014D")
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
.setMoreKeysOf("a", "\u00E1", "\u00E4", "\u00E0", "\u00E2", "\u00E3", "\u0101")
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+0161: "š" LATIN SMALL LETTER S WITH CARON

View File

@ -0,0 +1,170 @@
/*
* 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 com.android.inputmethod.keyboard.KeyboardId;
import com.android.inputmethod.keyboard.layout.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
class EstonianEECustomizer extends EuroCustomizer {
public EstonianEECustomizer(final Locale locale) {
super(locale);
}
@Override
public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
@Override
public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
builder
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
.replaceKeyOfLabel(Nordic.ROW1_11, "\u00FC")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
.replaceKeyOfLabel(Nordic.ROW2_10, "\u00F6")
.setMoreKeysOf("\u00F6", "\u00F5")
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
.replaceKeyOfLabel(Nordic.ROW2_11, "\u00E4");
}
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
.setMoreKeysOf("a", "\u0101", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E5",
"\u00E6", "\u0105");
}
protected void setMoreKeysOfI(final ExpectedKeyboardBuilder builder, final int elementId) {
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
if (elementId == KeyboardId.ELEMENT_ALPHABET) {
builder.setMoreKeysOf("i",
"\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF", "\u0131");
} else {
// The upper-case letter of "ı" in Estonian locale is "I". It should be omitted
// from the more keys of "I".
builder.setMoreKeysOf("i",
"\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF");
}
}
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
.setMoreKeysOf("o", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153", "\u0151",
"\u00F8");
}
protected void setMoreKeysOfU(final ExpectedKeyboardBuilder builder) {
builder
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
// U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
.setMoreKeysOf("u", "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB", "\u016F",
"\u0171");
}
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder,
final int elementId) {
setNordicKeys(builder);
setMoreKeysOfA(builder);
setMoreKeysOfI(builder, elementId);
setMoreKeysOfO(builder);
setMoreKeysOfU(builder);
return builder
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
// U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
// U+011B: "ě" LATIN SMALL LETTER E WITH CARON
.setMoreKeysOf("e",
"\u0113", "\u00E8", "\u0117", "\u00E9", "\u00EA", "\u00EB", "\u0119",
"\u011B")
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
.setMoreKeysOf("r", "\u0157", "\u0159", "\u0155")
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
.setMoreKeysOf("t", "\u0163", "\u0165")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
.setMoreKeysOf("y", "\u00FD", "\u00FF")
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
.setMoreKeysOf("s", "\u0161", "\u00DF", "\u015B", "\u015F")
// U+010F: "ď" LATIN SMALL LETTER D WITH CARON
.setMoreKeysOf("d", "\u010F")
// U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
.setMoreKeysOf("g", "\u0123", "\u011F")
// U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
.setMoreKeysOf("k", "\u0137")
// U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
// U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
// U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
.setMoreKeysOf("l", "\u013C", "\u0142", "\u013A", "\u013E")
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
.setMoreKeysOf("z", "\u017E", "\u017C", "\u017A")
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
.setMoreKeysOf("c", "\u010D", "\u00E7", "\u0107")
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
.setMoreKeysOf("n", "\u0146", "\u00F1", "\u0144");
}
}

View File

@ -39,12 +39,19 @@ class FinnishCustomizer extends EuroCustomizer {
.setMoreKeysOf("\u00E4", "\u00E6");
}
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
setNordicKeys(builder);
return builder
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
.setMoreKeysOf("u", "\u00FC")
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
.setMoreKeysOf("a", "\u00E6", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u0101");
}
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
@ -52,15 +59,18 @@ class FinnishCustomizer extends EuroCustomizer {
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
"\u00F8", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153", "\u014D")
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
.setMoreKeysOf("a", "\u00E6", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u0101")
.setMoreKeysOf("o", "\u00F8", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153",
"\u014D");
}
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
setNordicKeys(builder);
setMoreKeysOfA(builder);
setMoreKeysOfO(builder);
return builder
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
.setMoreKeysOf("u", "\u00FC")
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE

View File

@ -47,9 +47,35 @@ class NorwegianCustomizer extends LayoutCustomizer {
.setMoreKeysOf("\u00E6", "\u00E4");
}
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
.setMoreKeysOf("a", "\u00E4", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u0101");
}
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o", "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5", "\u0153",
"\u014D");
}
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
setNordicKeys(builder);
setMoreKeysOfA(builder);
setMoreKeysOfO(builder);
return builder
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
@ -65,22 +91,6 @@ class NorwegianCustomizer extends LayoutCustomizer {
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
.setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B")
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o",
"\u00F4", "\u00F2", "\u00F3", "\u00F6", "\u00F5", "\u0153", "\u014D")
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
.setMoreKeysOf("a", "\u00E0", "\u00E4", "\u00E1", "\u00E2", "\u00E3", "\u0101");
.setMoreKeysOf("u", "\u00FC", "\u00FB", "\u00F9", "\u00FA", "\u016B");
}
}

View File

@ -64,9 +64,35 @@ class SwedishCustomizer extends LayoutCustomizer {
.setMoreKeysOf("\u00E4", "\u00E6");
}
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
.setMoreKeysOf("a", "\u00E6", "\u00E1", "\u00E0", "\u00E2", "\u0105", "\u00E3");
}
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o", "\u00F8", "\u0153", "\u00F3", "\u00F2", "\u00F4", "\u00F5",
"\u014D");
}
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
setNordicKeys(builder);
setMoreKeysOfA(builder);
setMoreKeysOfO(builder);
return builder
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
@ -93,18 +119,6 @@ class SwedishCustomizer extends LayoutCustomizer {
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
.setMoreKeysOf("i", "\u00ED", "\u00EC", "\u00EE", "\u00EF")
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o", "\u00F3", "\u00F2", "\u00F4", "\u00F5", "\u014D")
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
.setMoreKeysOf("a", "\u00E1", "\u00E0", "\u00E2", "\u0105", "\u00E3")
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA

View File

@ -44,5 +44,35 @@ public final class TestsDanishQwertz extends LayoutTestsBase {
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
// QWERTZ layout doesn't have Nordic keys.
}
@Override
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
.setMoreKeysOf("a", "\u00E5", "\u00E6", "\u00E1", "\u00E4", "\u00E0", "\u00E2",
"\u00E3", "\u0101");
}
@Override
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o", "\u00F8", "\u00F6", "\u00F3", "\u00F4", "\u00F2", "\u00F5",
"\u0153", "\u014D");
}
}
}

View File

@ -19,11 +19,7 @@ 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.LayoutBase.EuroCustomizer;
import com.android.inputmethod.keyboard.layout.Nordic;
import com.android.inputmethod.keyboard.layout.Symbols;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKey;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
@ -37,121 +33,4 @@ public final class TestsEstonianEE extends LayoutTestsBase {
@Override
LayoutBase getLayout() { return LAYOUT; }
private static class EstonianEECustomizer extends EuroCustomizer {
public EstonianEECustomizer(final Locale locale) {
super(locale);
}
@Override
public ExpectedKey[] getDoubleQuoteMoreKeys() { return Symbols.DOUBLE_QUOTES_R9L; }
@Override
public ExpectedKey[] getSingleQuoteMoreKeys() { return Symbols.SINGLE_QUOTES_R9L; }
@Override
public ExpectedKeyboardBuilder setAccentedLetters(final ExpectedKeyboardBuilder builder) {
return builder
// U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
// U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
// U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
// U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
// U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
// U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
// U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
// U+011B: "ě" LATIN SMALL LETTER E WITH CARON
.setMoreKeysOf("e",
"\u0113", "\u00E8", "\u0117", "\u00E9", "\u00EA", "\u00EB", "\u0119",
"\u011B")
// U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
// U+0159: "ř" LATIN SMALL LETTER R WITH CARON
// U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
.setMoreKeysOf("r", "\u0157", "\u0159", "\u0155")
// U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
// U+0165: "ť" LATIN SMALL LETTER T WITH CARON
.setMoreKeysOf("t", "\u0163", "\u0165")
// U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
// U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
.setMoreKeysOf("y", "\u00FD", "\u00FF")
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
// U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
.setMoreKeysOf("u",
"\u00FC", "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB", "\u016F",
"\u0171")
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
.setMoreKeysOf("i",
"\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF", "\u0131")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
.setMoreKeysOf("o",
"\u00F6", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153", "\u0151",
"\u00F8")
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
.replaceKeyOfLabel(Nordic.ROW1_11, "\u00FC")
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
.replaceKeyOfLabel(Nordic.ROW2_10, key("\u00F6", moreKey("\u00F5")))
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
.replaceKeyOfLabel(Nordic.ROW2_11, "\u00E4")
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
.setMoreKeysOf("a",
"\u00E4", "\u0101", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E5",
"\u00E6", "\u0105")
// U+0161: "š" LATIN SMALL LETTER S WITH CARON
// U+00DF: "ß" LATIN SMALL LETTER SHARP S
// U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
// U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
.setMoreKeysOf("s", "\u0161", "\u00DF", "\u015B", "\u015F")
// U+010F: "ď" LATIN SMALL LETTER D WITH CARON
.setMoreKeysOf("d", "\u010F")
// U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
// U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
.setMoreKeysOf("g", "\u0123", "\u011F")
// U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
.setMoreKeysOf("k", "\u0137")
// U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
// U+0142: "ł" LATIN SMALL LETTER L WITH STROKE
// U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
// U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
.setMoreKeysOf("l", "\u013C", "\u0142", "\u013A", "\u013E")
// U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
// U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
// U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
.setMoreKeysOf("z", "\u017E", "\u017C", "\u017A")
// U+010D: "č" LATIN SMALL LETTER C WITH CARON
// U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
// U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
.setMoreKeysOf("c", "\u010D", "\u00E7", "\u0107")
// U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
// U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
// U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
.setMoreKeysOf("n", "\u0146", "\u00F1", "\u0144");
}
}
}

View File

@ -0,0 +1,110 @@
/*
* 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.Qwerty;
import com.android.inputmethod.keyboard.layout.expected.ExpectedKeyboardBuilder;
import java.util.Locale;
/**
* et_EE: Estonian (Estonia)/qwerty
*/
@SmallTest
public final class TestsEstonianEEQwerty extends LayoutTestsBase {
private static final Locale LOCALE = new Locale("et", "EE");
private static final LayoutBase LAYOUT = new Qwerty(new EstonianEEQwertyCustomizer(LOCALE));
@Override
LayoutBase getLayout() { return LAYOUT; }
private static class EstonianEEQwertyCustomizer extends EstonianEECustomizer {
public EstonianEEQwertyCustomizer(final Locale locale) {
super(locale);
}
@Override
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
// QWERTY layout doesn't have Nordic keys.
}
@Override
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
.setMoreKeysOf("a", "\u00E4", "\u0101", "\u00E0", "\u00E1", "\u00E2", "\u00E3",
"\u00E5", "\u00E6", "\u0105");
}
@Override
protected void setMoreKeysOfI(final ExpectedKeyboardBuilder builder, final int elementId) {
// TODO: The upper-case letter of "ı" in Estonian locale is "I". It should be omitted
// from the more keys of "I".
builder
// U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
// U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
// U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
// U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
// U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
// U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
// U+0131: "ı" LATIN SMALL LETTER DOTLESS I
.setMoreKeysOf("i",
"\u012B", "\u00EC", "\u012F", "\u00ED", "\u00EE", "\u00EF", "\u0131");
}
@Override
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
.setMoreKeysOf("o", "\u00F6", "\u00F5", "\u00F2", "\u00F3", "\u00F4", "\u0153",
"\u0151", "\u00F8");
}
@Override
protected void setMoreKeysOfU(final ExpectedKeyboardBuilder builder) {
builder
// U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
// U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
// U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
// U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
// U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
// U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
// U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
// U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
.setMoreKeysOf("u", "\u00FC", "\u016B", "\u0173", "\u00F9", "\u00FA", "\u00FB",
"\u016F", "\u0171");
}
}
}

View File

@ -44,5 +44,35 @@ public final class TestsFinnishQwerty extends LayoutTestsBase {
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
// QWERTY layout doesn't have Nordic keys.
}
@Override
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
.setMoreKeysOf("a", "\u00E4", "\u00E5", "\u00E6", "\u00E0", "\u00E1", "\u00E2",
"\u00E3", "\u0101");
}
@Override
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o", "\u00F6", "\u00F8", "\u00F4", "\u00F2", "\u00F3", "\u00F5",
"\u0153", "\u014D");
}
}
}

View File

@ -44,5 +44,36 @@ public final class TestsNorwegianColemak extends LayoutTestsBase {
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
// Colemak layout doesn't have Nordic keys.
}
@Override
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
// U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
.setMoreKeysOf("a", "\u00E5", "\u00E6", "\u00E4", "\u00E0", "\u00E1", "\u00E2",
"\u00E3", "\u0101");
}
@Override
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o", "\u00F8", "\u00F6", "\u00F4", "\u00F2", "\u00F3", "\u00F5",
"\u0153", "\u014D");
}
}
}

View File

@ -85,5 +85,36 @@ public final class TestsSwedishPcQwerty extends LayoutTestsBase {
protected void setNordicKeys(final ExpectedKeyboardBuilder builder) {
// PC QWERTY layout doesn't have Nordic keys.
}
@Override
protected void setMoreKeysOfA(final ExpectedKeyboardBuilder builder) {
builder
// U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
// U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
// U+00E6: "æ" LATIN SMALL LETTER AE
// U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
// U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
// U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
// U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
// U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
.setMoreKeysOf("a", "\u00E4", "\u00E5", "\u00E6", "\u00E1", "\u00E0", "\u00E2",
"\u0105", "\u00E3");
}
@Override
protected void setMoreKeysOfO(final ExpectedKeyboardBuilder builder) {
builder
// U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
// U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
// U+0153: "œ" LATIN SMALL LIGATURE OE
// U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
// U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
// U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
// U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
// U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
.setMoreKeysOf("o", "\u00F6", "\u00F8", "\u0153", "\u00F3", "\u00F2", "\u00F4",
"\u00F5", "\u014D");
}
}
}

View File

@ -18,26 +18,30 @@
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
<!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
U+00E6: "æ" LATIN SMALL LETTER AE
U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
<string name="morekeys_a">&#x00E1;,&#x00E4;,&#x00E0;,&#x00E2;,&#x00E3;,&#x0101;</string>
<string name="morekeys_a">&#x00E5;,&#x00E6;,&#x00E1;,&#x00E4;,&#x00E0;,&#x00E2;,&#x00E3;,&#x0101;</string>
<!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS -->
<string name="morekeys_e">&#x00E9;,&#x00EB;</string>
<!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS -->
<string name="morekeys_i">&#x00ED;,&#x00EF;</string>
<!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
<!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
U+0153: "œ" LATIN SMALL LIGATURE OE
U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
<string name="morekeys_o">&#x00F3;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x014D;</string>
<string name="morekeys_o">&#x00F8;,&#x00F6;,&#x00F3;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x014D;</string>
<!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX

View File

@ -72,7 +72,6 @@
U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
<string name="morekeys_n">&#x0146;,&#x00F1;,&#x0144;</string>
<!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON
U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE -->

View File

@ -18,21 +18,24 @@
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- U+00E6: "æ" LATIN SMALL LETTER AE
<!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
U+00E6: "æ" LATIN SMALL LETTER AE
U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
<string name="morekeys_a">&#x00E6;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x0101;</string>
<!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
<string name="morekeys_a">&#x00E4;,&#x00E5;,&#x00E6;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x0101;</string>
<!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
U+0153: "œ" LATIN SMALL LIGATURE OE
U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
<string name="morekeys_o">&#x00F8;,&#x00F4;,&#x00F2;,&#x00F3;,&#x00F5;,&#x0153;,&#x014D;</string>
<string name="morekeys_o">&#x00F6;,&#x00F8;,&#x00F4;,&#x00F2;,&#x00F3;,&#x00F5;,&#x0153;,&#x014D;</string>
<!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS -->
<string name="morekeys_u">&#x00FC;</string>
<!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON

View File

@ -18,13 +18,15 @@
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
<!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
U+00E6: "æ" LATIN SMALL LETTER AE
U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
<string name="morekeys_a">&#x00E0;,&#x00E4;,&#x00E1;,&#x00E2;,&#x00E3;,&#x0101;</string>
<string name="morekeys_a">&#x00E5;,&#x00E6;,&#x00E4;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x0101;</string>
<!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
@ -33,14 +35,15 @@
U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
<string name="morekeys_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0119;,&#x0117;,&#x0113;</string>
<!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
<!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
U+0153: "œ" LATIN SMALL LIGATURE OE
U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
<string name="morekeys_o">&#x00F4;,&#x00F2;,&#x00F3;,&#x00F6;,&#x00F5;,&#x0153;,&#x014D;</string>
<string name="morekeys_o">&#x00F8;,&#x00F6;,&#x00F4;,&#x00F2;,&#x00F3;,&#x00F5;,&#x0153;,&#x014D;</string>
<!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE

View File

@ -18,12 +18,15 @@
*/
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
<!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
U+00E5: "å" LATIN SMALL LETTER A WITH RING
U+00E6: "æ" LATIN SMALL LETTER AE
U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE -->
<string name="morekeys_a">&#x00E1;,&#x00E0;,&#x00E2;,&#x0105;,&#x00E3;</string>
<string name="morekeys_a">&#x00E4;,&#x00E5;,&#x00E6;,&#x00E1;,&#x00E0;,&#x00E2;,&#x0105;,&#x00E3;</string>
<!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
U+010D: "č" LATIN SMALL LETTER C WITH CARON -->
@ -48,12 +51,15 @@
U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
U+0148: "ň" LATIN SMALL LETTER N WITH CARON -->
<string name="morekeys_n">&#x0144;,&#x00F1;,&#x0148;</string>
<!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
<!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
U+0153: "œ" LATIN SMALL LIGATURE OE
U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
<string name="morekeys_o">&#x00F3;,&#x00F2;,&#x00F4;,&#x00F5;,&#x014D;</string>
<string name="morekeys_o">&#x00F6;,&#x00F8;,&#x0153;,&#x00F3;,&#x00F2;,&#x00F4;,&#x00F5;,&#x014D;</string>
<!-- U+0159: "ř" LATIN SMALL LETTER R WITH CARON -->
<string name="morekeys_r">&#x0159;</string>
<!-- U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE