aboutsummaryrefslogtreecommitdiffstats
path: root/tools/make-keyboard-text
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-08-13 12:34:01 +0900
committerTadashi G. Takaoka <takaoka@google.com>2013-08-13 15:33:14 +0900
commitca6acfdd6b3400ad6e29d45c29b0ec40ea92a968 (patch)
tree4f412f403c7566a0f7b650299a92e4b4f64ea81b /tools/make-keyboard-text
parent0adc8a2ad3630aa01984b4b6ccb2b7ca94cf8948 (diff)
downloadlatinime-ca6acfdd6b3400ad6e29d45c29b0ec40ea92a968.tar.gz
latinime-ca6acfdd6b3400ad6e29d45c29b0ec40ea92a968.tar.xz
latinime-ca6acfdd6b3400ad6e29d45c29b0ec40ea92a968.zip
Rename maketext tool to make-keyboard-text
Change-Id: Icceda22aec75f9e3602da8775c0e94b110283575
Diffstat (limited to 'tools/make-keyboard-text')
-rw-r--r--tools/make-keyboard-text/Android.mk25
-rw-r--r--tools/make-keyboard-text/etc/Android.mk20
-rwxr-xr-xtools/make-keyboard-text/etc/make-keyboard-text63
-rw-r--r--tools/make-keyboard-text/etc/manifest.txt1
-rw-r--r--tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.tmpl132
-rw-r--r--tools/make-keyboard-text/res/values-af/donottranslate-more-keys.xml69
-rw-r--r--tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml125
-rw-r--r--tools/make-keyboard-text/res/values-az/donottranslate-more-keys.xml59
-rw-r--r--tools/make-keyboard-text/res/values-be/donottranslate-more-keys.xml42
-rw-r--r--tools/make-keyboard-text/res/values-bg/donottranslate-more-keys.xml28
-rw-r--r--tools/make-keyboard-text/res/values-ca/donottranslate-more-keys.xml78
-rw-r--r--tools/make-keyboard-text/res/values-cs/donottranslate-more-keys.xml91
-rw-r--r--tools/make-keyboard-text/res/values-da/donottranslate-more-keys.xml75
-rw-r--r--tools/make-keyboard-text/res/values-de/donottranslate-more-keys.xml62
-rw-r--r--tools/make-keyboard-text/res/values-el/donottranslate-more-keys.xml26
-rw-r--r--tools/make-keyboard-text/res/values-en/donottranslate-more-keys.xml63
-rw-r--r--tools/make-keyboard-text/res/values-eo/donottranslate-more-keys.xml146
-rw-r--r--tools/make-keyboard-text/res/values-es/donottranslate-more-keys.xml82
-rw-r--r--tools/make-keyboard-text/res/values-et/donottranslate-more-keys.xml116
-rw-r--r--tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml132
-rw-r--r--tools/make-keyboard-text/res/values-fi/donottranslate-more-keys.xml56
-rw-r--r--tools/make-keyboard-text/res/values-fr/donottranslate-more-keys.xml68
-rw-r--r--tools/make-keyboard-text/res/values-hi/donottranslate-more-keys.xml63
-rw-r--r--tools/make-keyboard-text/res/values-hr/donottranslate-more-keys.xml42
-rw-r--r--tools/make-keyboard-text/res/values-hu/donottranslate-more-keys.xml66
-rw-r--r--tools/make-keyboard-text/res/values-is/donottranslate-more-keys.xml75
-rw-r--r--tools/make-keyboard-text/res/values-it/donottranslate-more-keys.xml62
-rw-r--r--tools/make-keyboard-text/res/values-iw/donottranslate-more-keys.xml55
-rw-r--r--tools/make-keyboard-text/res/values-ka/donottranslate-more-keys.xml28
-rw-r--r--tools/make-keyboard-text/res/values-kk/donottranslate-more-keys.xml57
-rw-r--r--tools/make-keyboard-text/res/values-ky/donottranslate-more-keys.xml46
-rw-r--r--tools/make-keyboard-text/res/values-lt/donottranslate-more-keys.xml109
-rw-r--r--tools/make-keyboard-text/res/values-lv/donottranslate-more-keys.xml108
-rw-r--r--tools/make-keyboard-text/res/values-mk/donottranslate-more-keys.xml40
-rw-r--r--tools/make-keyboard-text/res/values-mn/donottranslate-more-keys.xml28
-rw-r--r--tools/make-keyboard-text/res/values-nb/donottranslate-more-keys.xml62
-rw-r--r--tools/make-keyboard-text/res/values-nl/donottranslate-more-keys.xml68
-rw-r--r--tools/make-keyboard-text/res/values-pl/donottranslate-more-keys.xml67
-rw-r--r--tools/make-keyboard-text/res/values-pt/donottranslate-more-keys.xml65
-rw-r--r--tools/make-keyboard-text/res/values-rm/donottranslate-more-keys.xml29
-rw-r--r--tools/make-keyboard-text/res/values-ro/donottranslate-more-keys.xml47
-rw-r--r--tools/make-keyboard-text/res/values-ru/donottranslate-more-keys.xml42
-rw-r--r--tools/make-keyboard-text/res/values-sk/donottranslate-more-keys.xml111
-rw-r--r--tools/make-keyboard-text/res/values-sl/donottranslate-more-keys.xml34
-rw-r--r--tools/make-keyboard-text/res/values-sr/donottranslate-more-keys.xml61
-rw-r--r--tools/make-keyboard-text/res/values-sv/donottranslate-more-keys.xml56
-rw-r--r--tools/make-keyboard-text/res/values-sw/donottranslate-more-keys.xml65
-rw-r--r--tools/make-keyboard-text/res/values-th/donottranslate-more-keys.xml28
-rw-r--r--tools/make-keyboard-text/res/values-tl/donottranslate-more-keys.xml70
-rw-r--r--tools/make-keyboard-text/res/values-tr/donottranslate-more-keys.xml57
-rw-r--r--tools/make-keyboard-text/res/values-uk/donottranslate-more-keys.xml46
-rw-r--r--tools/make-keyboard-text/res/values-vi/donottranslate-more-keys.xml97
-rw-r--r--tools/make-keyboard-text/res/values-zu/donottranslate-more-keys.xml64
-rw-r--r--tools/make-keyboard-text/res/values-zz/donottranslate-more-keys.xml139
-rw-r--r--tools/make-keyboard-text/res/values/donottranslate-more-keys.xml250
-rw-r--r--tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java89
-rw-r--r--tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/JarUtils.java85
-rw-r--r--tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MakeKeyboardText.java65
-rw-r--r--tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java264
-rw-r--r--tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResource.java29
-rw-r--r--tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java135
61 files changed, 4463 insertions, 0 deletions
diff --git a/tools/make-keyboard-text/Android.mk b/tools/make-keyboard-text/Android.mk
new file mode 100644
index 000000000..87601489e
--- /dev/null
+++ b/tools/make-keyboard-text/Android.mk
@@ -0,0 +1,25 @@
+#
+# Copyright (C) 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.
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES += $(call all-java-files-under,src)
+LOCAL_JAR_MANIFEST := etc/manifest.txt
+LOCAL_JAVA_RESOURCE_DIRS := res
+LOCAL_MODULE := make-keyboard-text
+
+include $(BUILD_HOST_JAVA_LIBRARY)
+include $(LOCAL_PATH)/etc/Android.mk
diff --git a/tools/make-keyboard-text/etc/Android.mk b/tools/make-keyboard-text/etc/Android.mk
new file mode 100644
index 000000000..0fbf4ffe9
--- /dev/null
+++ b/tools/make-keyboard-text/etc/Android.mk
@@ -0,0 +1,20 @@
+# Copyright (C) 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.
+
+LOCAL_PATH := $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_PREBUILT_EXECUTABLES := make-keyboard-text
+
+include $(BUILD_HOST_PREBUILT)
diff --git a/tools/make-keyboard-text/etc/make-keyboard-text b/tools/make-keyboard-text/etc/make-keyboard-text
new file mode 100755
index 000000000..156f9ec5f
--- /dev/null
+++ b/tools/make-keyboard-text/etc/make-keyboard-text
@@ -0,0 +1,63 @@
+#!/bin/sh
+# 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.
+
+# Set up prog to be the path of this script, including following symlinks,
+# and set up progdir to be the fully-qualified pathname of its directory.
+prog="$0"
+while [ -h "${prog}" ]; do
+ newProg=`/bin/ls -ld "${prog}"`
+ newProg=`expr "${newProg}" : ".* -> \(.*\)$"`
+ if expr "x${newProg}" : 'x/' >/dev/null; then
+ prog="${newProg}"
+ else
+ progdir=`dirname "${prog}"`
+ prog="${progdir}/${newProg}"
+ fi
+done
+oldwd=`pwd`
+progdir=`dirname "${prog}"`
+cd "${progdir}"
+progdir=`pwd`
+prog="${progdir}"/`basename "${prog}"`
+cd "${oldwd}"
+
+jarfile=make-keyboard-text.jar
+frameworkdir="$progdir"
+if [ ! -r "$frameworkdir/$jarfile" ]
+then
+ frameworkdir=`dirname "$progdir"`/tools/lib
+ libdir=`dirname "$progdir"`/tools/lib
+fi
+if [ ! -r "$frameworkdir/$jarfile" ]
+then
+ frameworkdir=`dirname "$progdir"`/framework
+ libdir=`dirname "$progdir"`/lib
+fi
+if [ ! -r "$frameworkdir/$jarfile" ]
+then
+ echo `basename "$prog"`": can't find $jarfile"
+ exit 1
+fi
+
+if [ "$OSTYPE" = "cygwin" ] ; then
+ jarpath=`cygpath -w "$frameworkdir/$jarfile"`
+ progdir=`cygpath -w "$progdir"`
+else
+ jarpath="$frameworkdir/$jarfile"
+fi
+
+# need to use "java.ext.dirs" because "-jar" causes classpath to be ignored
+# might need more memory, e.g. -Xmx128M
+exec java -ea -jar "$jarpath" "$@"
diff --git a/tools/make-keyboard-text/etc/manifest.txt b/tools/make-keyboard-text/etc/manifest.txt
new file mode 100644
index 000000000..8ad4db059
--- /dev/null
+++ b/tools/make-keyboard-text/etc/manifest.txt
@@ -0,0 +1 @@
+Main-Class: com.android.inputmethod.keyboard.tools.MakeKeyboardText
diff --git a/tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.tmpl b/tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.tmpl
new file mode 100644
index 000000000..4cd9c236b
--- /dev/null
+++ b/tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.tmpl
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.inputmethod.keyboard.internal;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import com.android.inputmethod.annotations.UsedForTesting;
+import com.android.inputmethod.latin.utils.CollectionUtils;
+
+import java.util.HashMap;
+
+/**
+ * !!!!! DO NOT EDIT THIS FILE !!!!!
+ *
+ * This file is generated by tools/make-keyboard-text. The base template file is
+ * tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsSet.tmpl
+ *
+ * This file must be updated when any text resources in keyboard layout files have been changed.
+ * These text resources are referred as "!text/<resource_name>" in keyboard XML definitions,
+ * and should be defined in
+ * tools/make-keyboard-text/res/values-<locale>/donottranslate-more-keys.xml
+ *
+ * To update this file, please run the following commands.
+ * $ cd $ANDROID_BUILD_TOP
+ * $ mmm packages/inputmethods/LatinIME/tools/make-keyboard-text
+ * $ make-keyboard-text -java packages/inputmethods/LatinIME/java/src
+ *
+ * The updated source file will be generated to the following path (this file).
+ * packages/inputmethods/LatinIME/java/src/com/android/inputmethod/keyboard/internal/
+ * KeyboardTextsSet.java
+ */
+public final class KeyboardTextsSet {
+ // Language to texts map.
+ private static final HashMap<String, String[]> sLocaleToTextsMap = CollectionUtils.newHashMap();
+ private static final HashMap<String, Integer> sNameToIdsMap = CollectionUtils.newHashMap();
+
+ private String[] mTexts;
+ // Resource name to text map.
+ private HashMap<String, String> mResourceNameToTextsMap = CollectionUtils.newHashMap();
+
+ public void setLanguage(final String language) {
+ mTexts = sLocaleToTextsMap.get(language);
+ if (mTexts == null) {
+ mTexts = LANGUAGE_DEFAULT;
+ }
+ }
+
+ public void loadStringResources(final Context context) {
+ final int referenceId = context.getApplicationInfo().labelRes;
+ loadStringResourcesInternal(context, RESOURCE_NAMES, referenceId);
+ }
+
+ @UsedForTesting
+ void loadStringResourcesInternal(final Context context, final String[] resourceNames,
+ final int referenceId) {
+ final Resources res = context.getResources();
+ final String packageName = res.getResourcePackageName(referenceId);
+ for (final String resName : resourceNames) {
+ final int resId = res.getIdentifier(resName, "string", packageName);
+ mResourceNameToTextsMap.put(resName, res.getString(resId));
+ }
+ }
+
+ public String getText(final String name) {
+ String text = mResourceNameToTextsMap.get(name);
+ if (text != null) {
+ return text;
+ }
+ final Integer id = sNameToIdsMap.get(name);
+ if (id == null) throw new RuntimeException("Unknown label: " + name);
+ text = (id < mTexts.length) ? mTexts[id] : null;
+ return (text == null) ? LANGUAGE_DEFAULT[id] : text;
+ }
+
+ private static final String[] RESOURCE_NAMES = {
+ // These texts' name should be aligned with the @string/<name> in values/strings.xml.
+ // Labels for action.
+ "label_go_key",
+ // "label_search_key",
+ "label_send_key",
+ "label_next_key",
+ "label_done_key",
+ "label_previous_key",
+ // Other labels.
+ "label_pause_key",
+ "label_wait_key",
+ };
+
+ private static final String[] NAMES = {
+ /* @NAMES@ */
+ };
+
+ private static final String EMPTY = "";
+
+ /* Default texts */
+ private static final String[] LANGUAGE_DEFAULT = {
+ /* @DEFAULT_TEXTS@ */
+ };
+
+ /* @TEXTS@ */
+ private static final Object[] LANGUAGES_AND_TEXTS = {
+ /* @LANGUAGES_AND_TEXTS@ */
+ };
+
+ static {
+ int id = 0;
+ for (final String name : NAMES) {
+ sNameToIdsMap.put(name, id++);
+ }
+
+ for (int i = 0; i < LANGUAGES_AND_TEXTS.length; i += 2) {
+ final String language = (String)LANGUAGES_AND_TEXTS[i];
+ final String[] texts = (String[])LANGUAGES_AND_TEXTS[i + 1];
+ sLocaleToTextsMap.put(language, texts);
+ }
+ }
+}
diff --git a/tools/make-keyboard-text/res/values-af/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-af/donottranslate-more-keys.xml
new file mode 100644
index 000000000..ee96f442d
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-af/donottranslate-more-keys.xml
@@ -0,0 +1,69 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- This is the same as Dutch except more keys of y and demoting vowels with diaeresis. -->
+ <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x00E1;,&#x00E2;,&#x00E4;,&#x00E0;,&#x00E6;,&#x00E3;,&#x00E5;,&#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
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+0133: "ij" LATIN SMALL LIGATURE IJ -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EC;,&#x00EF;,&#x00EE;,&#x012F;,&#x012B;,&#x0133;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F4;,&#x00F6;,&#x00F2;,&#x00F5;,&#x0153;,&#x00F8;,&#x014D;</string>
+ <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x00FB;,&#x00FC;,&#x00F9;,&#x016B;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;</string>
+ <string name="more_keys_for_y">&#x00FD;,&#x0177;,&#x00FF;,&#x0133;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+0133: "ij" LATIN SMALL LIGATURE IJ -->
+ <string name="more_keys_for_y">&#x00FD;,&#x0133;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml
new file mode 100644
index 000000000..8b86b1ba2
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-ar/donottranslate-more-keys.xml
@@ -0,0 +1,125 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Label for "switch to alphabetic" key.
+ U+0623: "ا" ARABIC LETTER ALEF
+ U+200C: ZERO WIDTH NON-JOINER
+ U+0628: "ب" ARABIC LETTER BEH
+ U+062C: "پ" ARABIC LETTER PEH -->
+ <string name="label_to_alpha_key">&#x0623;&#x200C;&#x0628;&#x200C;&#x062C;</string>
+ <!-- U+0661: "١" ARABIC-INDIC DIGIT ONE -->
+ <string name="keylabel_for_symbols_1">&#x0661;</string>
+ <!-- U+0662: "٢" ARABIC-INDIC DIGIT TWO -->
+ <string name="keylabel_for_symbols_2">&#x0662;</string>
+ <!-- U+0663: "٣" ARABIC-INDIC DIGIT THREE -->
+ <string name="keylabel_for_symbols_3">&#x0663;</string>
+ <!-- U+0664: "٤" ARABIC-INDIC DIGIT FOUR -->
+ <string name="keylabel_for_symbols_4">&#x0664;</string>
+ <!-- U+0665: "٥" ARABIC-INDIC DIGIT FIVE -->
+ <string name="keylabel_for_symbols_5">&#x0665;</string>
+ <!-- U+0666: "٦" ARABIC-INDIC DIGIT SIX -->
+ <string name="keylabel_for_symbols_6">&#x0666;</string>
+ <!-- U+0667: "٧" ARABIC-INDIC DIGIT SEVEN -->
+ <string name="keylabel_for_symbols_7">&#x0667;</string>
+ <!-- U+0668: "٨" ARABIC-INDIC DIGIT EIGHT -->
+ <string name="keylabel_for_symbols_8">&#x0668;</string>
+ <!-- U+0669: "٩" ARABIC-INDIC DIGIT NINE -->
+ <string name="keylabel_for_symbols_9">&#x0669;</string>
+ <!-- U+0660: "٠" ARABIC-INDIC DIGIT ZERO -->
+ <string name="keylabel_for_symbols_0">&#x0660;</string>
+ <!-- Label for "switch to symbols" key.
+ U+061F: "؟" ARABIC QUESTION MARK -->
+ <string name="label_to_symbol_key">&#x0663;&#x0662;&#x0661;&#x061F;</string>
+ <!-- Label for "switch to symbols with microphone" key. This string shouldn't include the "mic"
+ part because it'll be appended by the code. -->
+ <string name="label_to_symbol_with_microphone_key">&#x0663;&#x0662;&#x0661;</string>
+ <string name="additional_more_keys_for_symbols_1">1</string>
+ <string name="additional_more_keys_for_symbols_2">2</string>
+ <string name="additional_more_keys_for_symbols_3">3</string>
+ <string name="additional_more_keys_for_symbols_4">4</string>
+ <string name="additional_more_keys_for_symbols_5">5</string>
+ <string name="additional_more_keys_for_symbols_6">6</string>
+ <string name="additional_more_keys_for_symbols_7">7</string>
+ <string name="additional_more_keys_for_symbols_8">8</string>
+ <string name="additional_more_keys_for_symbols_9">9</string>
+ <!-- U+066B: "٫" ARABIC DECIMAL SEPARATOR
+ U+066C: "٬" ARABIC THOUSANDS SEPARATOR -->
+ <string name="additional_more_keys_for_symbols_0">0,&#x066B;,&#x066C;</string>
+ <!-- U+060C: "،" ARABIC COMMA -->
+ <string name="keylabel_for_comma">&#x060C;</string>
+ <string name="more_keys_for_comma">"\\,"</string>
+ <string name="keylabel_for_symbols_question">&#x061F;</string>
+ <string name="keylabel_for_symbols_semicolon">&#x061B;</string>
+ <!-- U+066A: "٪" ARABIC PERCENT SIGN -->
+ <string name="keylabel_for_symbols_percent">&#x066A;</string>
+ <string name="more_keys_for_symbols_question">\?</string>
+ <string name="more_keys_for_symbols_semicolon">;</string>
+ <!-- U+2030: "‰" PER MILLE SIGN -->
+ <string name="more_keys_for_symbols_percent">\\%,&#x2030;</string>
+ <!-- U+060C: "،" ARABIC COMMA
+ U+061B: "؛" ARABIC SEMICOLON
+ U+061F: "؟" ARABIC QUESTION MARK -->
+ <string name="keylabel_for_apostrophe">&#x060C;</string>
+ <string name="keyhintlabel_for_apostrophe">&#x061F;</string>
+ <!-- U+061F: "؟" ARABIC QUESTION MARK
+ U+060C: "،" ARABIC COMMA
+ U+061B: "؛" ARABIC SEMICOLON -->
+ <string name="more_keys_for_punctuation">"!fixedColumnOrder!8,\",\',#,-,:,!,&#x060C;,&#x061F;,\@,&amp;,\\%,+,&#x061B;,/,(|),)|("</string>
+ <string name="more_keys_for_apostrophe">"&#x061F;,&#x061B;,!,:,-,/,\',\""</string>
+ <!-- U+266A: "♪" EIGHTH NOTE -->
+ <string name="more_keys_for_bullet">&#x266A;</string>
+ <!-- U+2605: "★" BLACK STAR
+ U+066D: "٭" ARABIC FIVE POINTED STAR -->
+ <string name="more_keys_for_star">&#x2605;,&#x066D;</string>
+ <!-- The all letters need to be mirrored are found at
+ http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt -->
+ <!-- U+FD3E: "﴾" ORNATE LEFT PARENTHESIS
+ U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS -->
+ <string name="more_keys_for_left_parenthesis">!fixedColumnOrder!4,&#xFD3E;|&#xFD3F;,&lt;|&gt;,{|},[|]</string>
+ <string name="more_keys_for_right_parenthesis">!fixedColumnOrder!4,&#xFD3F;|&#xFD3E;,&gt;|&lt;,}|{,]|[</string>
+ <!-- U+2264: "≤" LESS-THAN OR EQUAL TO
+ U+2265: "≥" GREATER-THAN EQUAL TO
+ U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -->
+ <string name="more_keys_for_less_than">!fixedColumnOrder!3,&#x2039;|&#x203A;,&#x2264;|&#x2265;,&#x00AB;|&#x00BB;</string>
+ <string name="more_keys_for_greater_than">!fixedColumnOrder!3,&#x203A;|&#x2039;,&#x2265;|&#x2264;,&#x00BB;|&#x00AB;</string>
+ <string name="single_angle_quotes">!text/single_laqm_raqm_rtl</string>
+ <string name="double_angle_quotes">!text/double_laqm_raqm_rtl</string>
+ <!-- U+0655: "ٕ" ARABIC HAMZA BELOW
+ U+0654: "ٔ" ARABIC HAMZA ABOVE
+ U+0652: "ْ" ARABIC SUKUN
+ U+064D: "ٍ" ARABIC KASRATAN
+ U+064C: "ٌ" ARABIC DAMMATAN
+ U+064B: "ً" ARABIC FATHATAN
+ U+0651: "ّ" ARABIC SHADDA -->
+ <!-- U+0656: "ٖ" ARABIC SUBSCRIPT ALEF
+ U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF
+ U+0653: "ٓ" ARABIC MADDAH ABOVE
+ U+0650: "ِ" ARABIC KASRA
+ U+064F: "ُ" ARABIC DAMMA
+ U+064E: "َ" ARABIC FATHA
+ U+0640: "ـ" ARABIC TATWEEL -->
+ <!-- In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. -->
+ <!-- Note: The space character is needed as a preceding letter to draw Arabic diacritics characters correctly. -->
+ <string name="more_keys_for_arabic_diacritics">"!fixedColumnOrder!7,&#x20;&#x0655;|&#x0655;,&#x20;&#x0654;|&#x0654;,&#x20;&#x0652;|&#x0652;,&#x20;&#x064D;|&#x064D;,&#x20;&#x064C;|&#x064C;,&#x20;&#x064B;|&#x064B;,&#x20;&#x0651;|&#x0651;,&#x20;&#x0656;|&#x0656;,&#x20;&#x0670;|&#x0670;,&#x20;&#x0653;|&#x0653;,&#x20;&#x0650;|&#x0650;,&#x20;&#x064F;|&#x064F;,&#x20;&#x064E;|&#x064E;,&#x0640;&#x0640;&#x0640;|&#x0640;"</string>
+ <string name="keyhintlabel_for_arabic_diacritics">&#x0651;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-az/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-az/donottranslate-more-keys.xml
new file mode 100644
index 000000000..db1784c17
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-az/donottranslate-more-keys.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+ <string name="more_keys_for_a">&#x00E2;</string>
+ <!-- U+0259: "ə" LATIN SMALL LETTER SCHWA -->
+ <string name="more_keys_for_e">&#x0259;</string>
+ <!-- U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x0131;,&#x00EE;,&#x00EF;,&#x00EC;,&#x00ED;,&#x012F;,&#x012B;</string>
+ <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ 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+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x00F6;,&#x00F4;,&#x0153;,&#x00F2;,&#x00F3;,&#x00F5;,&#x00F8;,&#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
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FC;,&#x00FB;,&#x00F9;,&#x00FA;,&#x016B;</string>
+ <!-- U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+ U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+ <string name="more_keys_for_s">&#x015F;,&#x00DF;,&#x015B;,&#x0161;</string>
+ <!-- U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE -->
+ <string name="more_keys_for_g">&#x011F;</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 -->
+ <string name="more_keys_for_c">&#x00E7;,&#x0107;,&#x010D;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-be/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-be/donottranslate-more-keys.xml
new file mode 100644
index 000000000..4723503f1
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-be/donottranslate-more-keys.xml
@@ -0,0 +1,42 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+045E: "ў" CYRILLIC SMALL LETTER SHORT U -->
+ <string name="keylabel_for_east_slavic_row1_9">&#x045E;</string>
+ <!-- U+0451: "ё" CYRILLIC SMALL LETTER IO -->
+ <string name="keylabel_for_east_slavic_row1_12">&#x0451;</string>
+ <!-- U+044B: "ы" CYRILLIC SMALL LETTER YERU -->
+ <string name="keylabel_for_east_slavic_row2_1">&#x044B;</string>
+ <!-- U+044D: "э" CYRILLIC SMALL LETTER E -->
+ <string name="keylabel_for_east_slavic_row2_11">&#x044D;</string>
+ <!-- U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+ <string name="keylabel_for_east_slavic_row3_5">&#x0456;</string>
+ <!-- U+0451: "ё" CYRILLIC SMALL LETTER IO -->
+ <string name="more_keys_for_cyrillic_ie">&#x0451;</string>
+ <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN -->
+ <string name="more_keys_for_cyrillic_soft_sign">&#x044A;</string>
+ <!-- Label for "switch to alphabetic" key.
+ U+0410: "А" CYRILLIC CAPITAL LETTER A
+ U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+ U+0412: "В" CYRILLIC CAPITAL LETTER VE -->
+ <string name="label_to_alpha_key">&#x0410;&#x0411;&#x0412;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-bg/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-bg/donottranslate-more-keys.xml
new file mode 100644
index 000000000..5262133de
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-bg/donottranslate-more-keys.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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Label for "switch to alphabetic" key.
+ U+0410: "А" CYRILLIC CAPITAL LETTER A
+ U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+ U+0412: "В" CYRILLIC CAPITAL LETTER VE -->
+ <string name="label_to_alpha_key">&#x0410;&#x0411;&#x0412;</string>
+ <!-- single_quotes of Bulgarian is default single_quotes_right_left. -->
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-ca/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ca/donottranslate-more-keys.xml
new file mode 100644
index 000000000..8624dfb65
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-ca/donottranslate-more-keys.xml
@@ -0,0 +1,78 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ 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+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ U+00AA: "ª" FEMININE ORDINAL INDICATOR -->
+ <string name="more_keys_for_a">&#x00E0;,&#x00E1;,&#x00E4;,&#x00E2;,&#x00E3;,&#x00E5;,&#x0105;,&#x00E6;,&#x0101;,&#x00AA;</string>
+ <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E8;,&#x00E9;,&#x00EB;,&#x00EA;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EF;,&#x00EC;,&#x00EE;,&#x012F;,&#x012B;</string>
+ <!-- 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+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+00BA: "º" MASCULINE ORDINAL INDICATOR -->
+ <string name="more_keys_for_o">&#x00F2;,&#x00F3;,&#x00F6;,&#x00F4;,&#x00F5;,&#x00F8;,&#x0153;,&#x014D;,&#x00BA;</string>
+ <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x00FC;,&#x00F9;,&#x00FB;,&#x016B;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;</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 -->
+ <string name="more_keys_for_c">&#x00E7;,&#x0107;,&#x010D;</string>
+ <!-- U+00B7: "·" MIDDLE DOT
+ U+0142: "ł" LATIN SMALL LETTER L WITH STROKE -->
+ <string name="more_keys_for_l">l&#x00B7;l,&#x0142;</string>
+ <!-- U+00B7: "·" MIDDLE DOT -->
+ <string name="more_keys_for_punctuation">"!fixedColumnOrder!9,&#x00B7;,\",\',#,-,:,!,\\,,\?,\@,&amp;,\\%,+,;,/,(,)"</string>
+ <string name="more_keys_for_tablet_period">\?,&#x00B7;</string>
+ <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA -->
+ <string name="keylabel_for_spanish_row2_10">&#x00E7;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-cs/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-cs/donottranslate-more-keys.xml
new file mode 100644
index 000000000..5ce1d3bc8
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-cs/donottranslate-more-keys.xml
@@ -0,0 +1,91 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x00E1;,&#x00E0;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;</string>
+ <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x011B;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- 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+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EE;,&#x00EF;,&#x00EC;,&#x012F;,&#x012B;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ 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+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F6;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x00F8;,&#x014D;</string>
+ <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+ U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x016F;,&#x00FB;,&#x00FC;,&#x00F9;,&#x016B;</string>
+ <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON
+ U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE -->
+ <string name="more_keys_for_s">&#x0161;,&#x00DF;,&#x015B;</string>
+ <!-- U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+ U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x0148;,&#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 -->
+ <string name="more_keys_for_c">&#x010D;,&#x00E7;,&#x0107;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS -->
+ <string name="more_keys_for_y">&#x00FD;,&#x00FF;</string>
+ <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON -->
+ <string name="more_keys_for_d">&#x010F;</string>
+ <!-- U+0159: "ř" LATIN SMALL LETTER R WITH CARON -->
+ <string name="more_keys_for_r">&#x0159;</string>
+ <!-- U+0165: "ť" LATIN SMALL LETTER T WITH CARON -->
+ <string name="more_keys_for_t">&#x0165;</string>
+ <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+ U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+ U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE -->
+ <string name="more_keys_for_z">&#x017E;,&#x017A;,&#x017C;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+ <string name="single_angle_quotes">!text/single_raqm_laqm</string>
+ <string name="double_angle_quotes">!text/double_raqm_laqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-da/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-da/donottranslate-more-keys.xml
new file mode 100644
index 000000000..cbaf9f497
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-da/donottranslate-more-keys.xml
@@ -0,0 +1,75 @@
+<?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.
+*/
+-->
+<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+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="more_keys_for_a">&#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="more_keys_for_e">&#x00E9;,&#x00EB;</string>
+ <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EF;</string>
+ <!-- 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="more_keys_for_o">&#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
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x00FC;,&#x00FB;,&#x00F9;,&#x016B;</string>
+ <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+ <string name="more_keys_for_s">&#x00DF;,&#x015B;,&#x0161;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS -->
+ <string name="more_keys_for_y">&#x00FD;,&#x00FF;</string>
+ <!-- U+00F0: "ð" LATIN SMALL LETTER ETH -->
+ <string name="more_keys_for_d">&#x00F0;</string>
+ <!-- U+0142: "ł" LATIN SMALL LETTER L WITH STROKE -->
+ <string name="more_keys_for_l">&#x0142;</string>
+ <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE -->
+ <string name="keylabel_for_nordic_row1_11">&#x00E5;</string>
+ <!-- U+00E6: "æ" LATIN SMALL LETTER AE -->
+ <string name="keylabel_for_nordic_row2_10">&#x00E6;</string>
+ <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE -->
+ <string name="keylabel_for_nordic_row2_11">&#x00F8;</string>
+ <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS -->
+ <string name="more_keys_for_nordic_row2_10">&#x00E4;</string>
+ <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS -->
+ <string name="more_keys_for_nordic_row2_11">&#x00F6;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+ <string name="single_angle_quotes">!text/single_raqm_laqm</string>
+ <string name="double_angle_quotes">!text/double_raqm_laqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-de/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-de/donottranslate-more-keys.xml
new file mode 100644
index 000000000..9dc8717ec
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-de/donottranslate-more-keys.xml
@@ -0,0 +1,62 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x00E4;,&#x00E2;,&#x00E0;,&#x00E1;,&#x00E6;,&#x00E3;,&#x00E5;,&#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
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0117;</string>
+ <!-- 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+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x00F6;,&#x00F4;,&#x00F2;,&#x00F3;,&#x00F5;,&#x0153;,&#x00F8;,&#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
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FC;,&#x00FB;,&#x00F9;,&#x00FA;,&#x016B;</string>
+ <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+ <string name="more_keys_for_s">&#x00DF;,&#x015B;,&#x0161;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+ <string name="single_angle_quotes">!text/single_raqm_laqm</string>
+ <string name="double_angle_quotes">!text/double_raqm_laqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-el/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-el/donottranslate-more-keys.xml
new file mode 100644
index 000000000..964dba081
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-el/donottranslate-more-keys.xml
@@ -0,0 +1,26 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Label for "switch to alphabetic" key.
+ U+0391: "Α" GREEK CAPITAL LETTER ALPHA
+ U+0392: "Β" GREEK CAPITAL LETTER BETA
+ U+0393: "Γ" GREEK CAPITAL LETTER GAMMA -->
+ <string name="label_to_alpha_key">&#x0391;&#x0392;&#x0393;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-en/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-en/donottranslate-more-keys.xml
new file mode 100644
index 000000000..969a5041b
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-en/donottranslate-more-keys.xml
@@ -0,0 +1,63 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x00E0;,&#x00E1;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;</string>
+ <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0113;</string>
+ <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE -->
+ <string name="more_keys_for_i">&#x00EE;,&#x00EF;,&#x00ED;,&#x012B;,&#x00EC;</string>
+ <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE -->
+ <string name="more_keys_for_o">&#x00F4;,&#x00F6;,&#x00F2;,&#x00F3;,&#x0153;,&#x00F8;,&#x014D;,&#x00F5;</string>
+ <!-- U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FB;,&#x00FC;,&#x00F9;,&#x00FA;,&#x016B;</string>
+ <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S -->
+ <string name="more_keys_for_s">&#x00DF;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
+ <string name="more_keys_for_n">&#x00F1;</string>
+ <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA -->
+ <string name="more_keys_for_c">&#x00E7;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-eo/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-eo/donottranslate-more-keys.xml
new file mode 100644
index 000000000..e929869e2
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-eo/donottranslate-more-keys.xml
@@ -0,0 +1,146 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
+ U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+ U+00AA: "ª" FEMININE ORDINAL INDICATOR -->
+ <string name="more_keys_for_a">&#x00E1;,&#x00E0;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;,&#x0103;,&#x0105;,&#x00AA;</string>
+ <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x011B;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- 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+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+ U+0133: "ij" LATIN SMALL LIGATURE IJ -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EE;,&#x00EF;,&#x0129;,&#x00EC;,&#x012F;,&#x012B;,&#x0131;,&#x0133;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ 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+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ U+00BA: "º" MASCULINE ORDINAL INDICATOR -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F6;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x00F8;,&#x014D;,&#x0151;,&#x00BA;</string>
+ <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+ U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE
+ U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
+ U+00B5: "µ" MICRO SIGN -->
+ <string name="more_keys_for_u">&#x00FA;,&#x016F;,&#x00FB;,&#x00FC;,&#x00F9;,&#x016B;,&#x0169;,&#x0171;,&#x0173;,&#x00B5;</string>
+ <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW
+ U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA -->
+ <string name="more_keys_for_s">&#x00DF;,&#x0161;,&#x015B;,&#x0219;,&#x015F;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+ U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+ U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+ U+014B: "ŋ" LATIN SMALL LETTER ENG -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;,&#x0146;,&#x0148;,&#x0149;,&#x014B;</string>
+ <!-- U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+ U+010D: "č" LATIN SMALL LETTER C WITH CARON
+ U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+ U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE -->
+ <string name="more_keys_for_c">&#x0107;,&#x010D;,&#x00E7;,&#x010B;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
+ U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
+ U+00FE: "þ" LATIN SMALL LETTER THORN -->
+ <string name="more_keys_for_y">y,&#x00FD;,&#x0177;,&#x00FF;,&#x00FE;</string>
+ <!-- U+00F0: "ð" LATIN SMALL LETTER ETH
+ U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+ U+0111: "đ" LATIN SMALL LETTER D WITH STROKE -->
+ <string name="more_keys_for_d">&#x00F0;,&#x010F;,&#x0111;</string>
+ <!-- U+0159: "ř" LATIN SMALL LETTER R WITH CARON
+ U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
+ U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA -->
+ <string name="more_keys_for_r">&#x0159;,&#x0155;,&#x0157;</string>
+ <!-- U+0165: "ť" LATIN SMALL LETTER T WITH CARON
+ U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW
+ U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
+ U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE -->
+ <string name="more_keys_for_t">&#x0165;,&#x021B;,&#x0163;,&#x0167;</string>
+ <!-- U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+ U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
+ U+017E: "ž" LATIN SMALL LETTER Z WITH CARON -->
+ <string name="more_keys_for_z">&#x017A;,&#x017C;,&#x017E;</string>
+ <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
+ U+0138: "ĸ" LATIN SMALL LETTER KRA -->
+ <string name="more_keys_for_k">&#x0137;,&#x0138;</string>
+ <!-- U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
+ U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
+ U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
+ U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT
+ U+0142: "ł" LATIN SMALL LETTER L WITH STROKE -->
+ <string name="more_keys_for_l">&#x013A;,&#x013C;,&#x013E;,&#x0140;,&#x0142;</string>
+ <!-- U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
+ U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
+ U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA -->
+ <string name="more_keys_for_g">&#x011F;,&#x0121;,&#x0123;</string>
+ <!-- U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+ <string name="more_keys_for_v">w,&#x0175;</string>
+ <!-- U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX
+ U+0127: "ħ" LATIN SMALL LETTER H WITH STROKE -->
+ <string name="more_keys_for_h">&#x0125;,&#x0127;</string>
+ <!-- U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+ <string name="more_keys_for_w">w,&#x0175;</string>
+ <string name="more_keys_for_q">q</string>
+ <string name="more_keys_for_x">x</string>
+ <!-- U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+ <string name="keylabel_for_q">&#x015D;</string>
+ <!-- U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+ <string name="keylabel_for_w">&#x011D;</string>
+ <!-- U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE -->
+ <string name="keylabel_for_y">&#x016D;</string>
+ <!-- U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+ <string name="keylabel_for_x">&#x0109;</string>
+ <!-- U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+ <string name="keylabel_for_spanish_row2_10">&#x0135;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-es/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-es/donottranslate-more-keys.xml
new file mode 100644
index 000000000..0e58c1440
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-es/donottranslate-more-keys.xml
@@ -0,0 +1,82 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ 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+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ U+00AA: "ª" FEMININE ORDINAL INDICATOR -->
+ <string name="more_keys_for_a">&#x00E1;,&#x00E0;,&#x00E4;,&#x00E2;,&#x00E3;,&#x00E5;,&#x0105;,&#x00E6;,&#x0101;,&#x00AA;</string>
+ <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00E8;,&#x00EB;,&#x00EA;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EF;,&#x00EC;,&#x00EE;,&#x012F;,&#x012B;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+00BA: "º" MASCULINE ORDINAL INDICATOR -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F2;,&#x00F6;,&#x00F4;,&#x00F5;,&#x00F8;,&#x0153;,&#x014D;,&#x00BA;</string>
+ <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x00FC;,&#x00F9;,&#x00FB;,&#x016B;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;</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 -->
+ <string name="more_keys_for_c">&#x00E7;,&#x0107;,&#x010D;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
+ <string name="keylabel_for_spanish_row2_10">&#x00F1;</string>
+ <!-- U+00A1: "¡" INVERTED EXCLAMATION MARK
+ U+00BF: "¿" INVERTED QUESTION MARK -->
+ <string name="more_keys_for_punctuation">"!fixedColumnOrder!9,&#x00A1;,\",\',#,-,:,!,\\,,\?,&#x00BF;,\@,&amp;,\\%,+,;,/,(,)"</string>
+ <!-- U+00A1: "¡" INVERTED EXCLAMATION MARK -->
+ <string name="more_keys_for_tablet_comma">"!,&#x00A1;"</string>
+ <!-- U+00BF: "¿" INVERTED QUESTION MARK -->
+ <string name="more_keys_for_tablet_period">"\?,&#x00BF;"</string>
+ <string name="keylabel_for_apostrophe">\"</string>
+ <string name="keyhintlabel_for_apostrophe">\'</string>
+ <string name="more_keys_for_apostrophe">\'</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-et/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-et/donottranslate-more-keys.xml
new file mode 100644
index 000000000..d037044bd
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-et/donottranslate-more-keys.xml
@@ -0,0 +1,116 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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 -->
+ <string name="more_keys_for_a">&#x00E4;,&#x0101;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x00E5;,&#x00E6;,&#x0105;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_e">&#x0113;,&#x00E8;,&#x0117;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0119;,&#x011B;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_i">&#x012B;,&#x00EC;,&#x012F;,&#x00ED;,&#x00EE;,&#x00EF;,&#x0131;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_o">&#x00F6;,&#x00F5;,&#x00F2;,&#x00F3;,&#x00F4;,&#x0153;,&#x0151;,&#x00F8;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_u">&#x00FC;,&#x016B;,&#x0173;,&#x00F9;,&#x00FA;,&#x00FB;,&#x016F;,&#x0171;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_s">&#x0161;,&#x00DF;,&#x015B;,&#x015F;</string>
+ <!-- U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+ U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x0146;,&#x00F1;,&#x0144;,&#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 -->
+ <string name="more_keys_for_c">&#x010D;,&#x00E7;,&#x0107;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS -->
+ <string name="more_keys_for_y">&#x00FD;,&#x00FF;</string>
+ <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON -->
+ <string name="more_keys_for_d">&#x010F;</string>
+ <!-- U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
+ U+0159: "ř" LATIN SMALL LETTER R WITH CARON
+ U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE -->
+ <string name="more_keys_for_r">&#x0157;,&#x0159;,&#x0155;</string>
+ <!-- U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
+ U+0165: "ť" LATIN SMALL LETTER T WITH CARON -->
+ <string name="more_keys_for_t">&#x0163;,&#x0165;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_z">&#x017E;,&#x017C;,&#x017A;</string>
+ <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA -->
+ <string name="more_keys_for_k">&#x0137;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_l">&#x013C;,&#x0142;,&#x013A;,&#x013E;</string>
+ <!-- U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
+ U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE -->
+ <string name="more_keys_for_g">&#x0123;,&#x011F;</string>
+ <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS -->
+ <string name="keylabel_for_nordic_row1_11">&#x00FC;</string>
+ <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS -->
+ <string name="keylabel_for_nordic_row2_10">&#x00F6;</string>
+ <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS -->
+ <string name="keylabel_for_nordic_row2_11">&#x00E4;</string>
+ <!-- U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE -->
+ <string name="more_keys_for_nordic_row2_10">&#x00F5;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml
new file mode 100644
index 000000000..6d13d6bb6
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-fa/donottranslate-more-keys.xml
@@ -0,0 +1,132 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Label for "switch to alphabetic" key.
+ U+0627: "ا" ARABIC LETTER ALEF
+ U+200C: ZERO WIDTH NON-JOINER
+ U+0628: "ب" ARABIC LETTER BEH
+ U+067E: "پ" ARABIC LETTER PEH -->
+ <string name="label_to_alpha_key">&#x0627;&#x200C;&#x0628;&#x200C;&#x067E;</string>
+ <!-- U+06F1: "۱" EXTENDED ARABIC-INDIC DIGIT ONE -->
+ <string name="keylabel_for_symbols_1">&#x06F1;</string>
+ <!-- U+06F2: "۲" EXTENDED ARABIC-INDIC DIGIT TWO -->
+ <string name="keylabel_for_symbols_2">&#x06F2;</string>
+ <!-- U+06F3: "۳" EXTENDED ARABIC-INDIC DIGIT THREE -->
+ <string name="keylabel_for_symbols_3">&#x06F3;</string>
+ <!-- U+06F4: "۴" EXTENDED ARABIC-INDIC DIGIT FOUR -->
+ <string name="keylabel_for_symbols_4">&#x06F4;</string>
+ <!-- U+06F5: "۵" EXTENDED ARABIC-INDIC DIGIT FIVE -->
+ <string name="keylabel_for_symbols_5">&#x06F5;</string>
+ <!-- U+06F6: "۶" EXTENDED ARABIC-INDIC DIGIT SIX -->
+ <string name="keylabel_for_symbols_6">&#x06F6;</string>
+ <!-- U+06F7: "۷" EXTENDED ARABIC-INDIC DIGIT SEVEN -->
+ <string name="keylabel_for_symbols_7">&#x06F7;</string>
+ <!-- U+06F8: "۸" EXTENDED ARABIC-INDIC DIGIT EIGHT -->
+ <string name="keylabel_for_symbols_8">&#x06F8;</string>
+ <!-- U+06F9: "۹" EXTENDED ARABIC-INDIC DIGIT NINE -->
+ <string name="keylabel_for_symbols_9">&#x06F9;</string>
+ <!-- U+06F0: "۰" EXTENDED ARABIC-INDIC DIGIT ZERO -->
+ <string name="keylabel_for_symbols_0">&#x06F0;</string>
+ <!-- Label for "switch to symbols" key.
+ U+061F: "؟" ARABIC QUESTION MARK -->
+ <string name="label_to_symbol_key">&#x06F3;&#x06F2;&#x06F1;&#x061F;</string>
+ <!-- Label for "switch to symbols with microphone" key. This string shouldn't include the "mic"
+ part because it'll be appended by the code. -->
+ <string name="label_to_symbol_with_microphone_key">&#x06F3;&#x06F2;&#x06F1;</string>
+ <string name="additional_more_keys_for_symbols_1">1</string>
+ <string name="additional_more_keys_for_symbols_2">2</string>
+ <string name="additional_more_keys_for_symbols_3">3</string>
+ <string name="additional_more_keys_for_symbols_4">4</string>
+ <string name="additional_more_keys_for_symbols_5">5</string>
+ <string name="additional_more_keys_for_symbols_6">6</string>
+ <string name="additional_more_keys_for_symbols_7">7</string>
+ <string name="additional_more_keys_for_symbols_8">8</string>
+ <string name="additional_more_keys_for_symbols_9">9</string>
+ <!-- U+066B: "٫" ARABIC DECIMAL SEPARATOR
+ U+066C: "٬" ARABIC THOUSANDS SEPARATOR -->
+ <string name="additional_more_keys_for_symbols_0">0,&#x066B;,&#x066C;</string>
+ <!-- U+060C: "،" ARABIC COMMA -->
+ <string name="keylabel_for_comma">&#x060C;</string>
+ <string name="more_keys_for_comma">"\\,"</string>
+ <string name="keylabel_for_symbols_question">&#x061F;</string>
+ <string name="keylabel_for_symbols_semicolon">&#x061B;</string>
+ <!-- U+066A: "٪" ARABIC PERCENT SIGN -->
+ <string name="keylabel_for_symbols_percent">&#x066A;</string>
+ <string name="more_keys_for_symbols_question">\?</string>
+ <string name="more_keys_for_symbols_semicolon">;</string>
+ <!-- U+2030: "‰" PER MILLE SIGN -->
+ <string name="more_keys_for_symbols_percent">\\%,&#x2030;</string>
+ <!-- U+060C: "،" ARABIC COMMA
+ U+061B: "؛" ARABIC SEMICOLON
+ U+061F: "؟" ARABIC QUESTION MARK
+ U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+ <string name="keylabel_for_tablet_comma">"&#x060C;"</string>
+ <string name="keyhintlabel_for_tablet_comma">"!"</string>
+ <string name="more_keys_for_tablet_comma">"!,\\,"</string>
+ <string name="keyhintlabel_for_tablet_period">"&#x061F;"</string>
+ <string name="more_keys_for_tablet_period">"&#x061F;,\?"</string>
+ <string name="keylabel_for_apostrophe">&#x060C;</string>
+ <string name="keyhintlabel_for_apostrophe">&#x061F;</string>
+ <string name="more_keys_for_apostrophe">"!fixedColumnOrder!4,:,!,&#x061F;,&#x061B;,-,/,&#x00AB;|&#x00BB;,&#x00BB;|&#x00AB;"</string>
+ <!-- U+061F: "؟" ARABIC QUESTION MARK
+ U+060C: "،" ARABIC COMMA
+ U+061B: "؛" ARABIC SEMICOLON -->
+ <string name="more_keys_for_punctuation">"!fixedColumnOrder!8,\",\',#,-,:,!,&#x060C;,&#x061F;,\@,&amp;,\\%,+,&#x061B;,/,(|),)|("</string>
+ <!-- U+266A: "♪" EIGHTH NOTE -->
+ <string name="more_keys_for_bullet">&#x266A;</string>
+ <!-- U+2605: "★" BLACK STAR
+ U+066D: "٭" ARABIC FIVE POINTED STAR -->
+ <string name="more_keys_for_star">&#x2605;,&#x066D;</string>
+ <!-- The all letters need to be mirrored are found at
+ http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt -->
+ <!-- U+FD3E: "﴾" ORNATE LEFT PARENTHESIS
+ U+FD3F: "﴿" ORNATE RIGHT PARENTHESIS -->
+ <string name="more_keys_for_left_parenthesis">!fixedColumnOrder!4,&#xFD3E;|&#xFD3F;,&lt;|&gt;,{|},[|]</string>
+ <string name="more_keys_for_right_parenthesis">!fixedColumnOrder!4,&#xFD3F;|&#xFD3E;,&gt;|&lt;,}|{,]|[</string>
+ <!-- U+2264: "≤" LESS-THAN OR EQUAL TO
+ U+2265: "≥" GREATER-THAN EQUAL TO
+ U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -->
+ <string name="more_keys_for_less_than">!fixedColumnOrder!3,&#x2039;|&#x203A;,&#x2264;|&#x2265;,&lt;|&gt;</string>
+ <string name="more_keys_for_greater_than">!fixedColumnOrder!3,&#x203A;|&#x2039;,&#x2265;|&#x2264;,&gt;|&lt;</string>
+ <string name="single_angle_quotes">!text/single_laqm_raqm_rtl</string>
+ <string name="double_angle_quotes">!text/double_laqm_raqm_rtl</string>
+ <!-- U+0655: "ٕ" ARABIC HAMZA BELOW
+ U+0652: "ْ" ARABIC SUKUN
+ U+0651: "ّ" ARABIC SHADDA
+ U+064C: "ٌ" ARABIC DAMMATAN
+ U+064D: "ٍ" ARABIC KASRATAN
+ U+064B: "ً" ARABIC FATHATAN
+ U+0654: "ٔ" ARABIC HAMZA ABOVE -->
+ <!-- U+0656: "ٖ" ARABIC SUBSCRIPT ALEF
+ U+0670: "ٰ" ARABIC LETTER SUPERSCRIPT ALEF
+ U+0653: "ٓ" ARABIC MADDAH ABOVE
+ U+064F: "ُ" ARABIC DAMMA
+ U+0650: "ِ" ARABIC KASRA
+ U+064E: "َ" ARABIC FATHA
+ U+0640: "ـ" ARABIC TATWEEL -->
+ <!-- In order to make Tatweel easily distinguishable from other punctuations, we use consecutive Tatweels only for its displayed label. -->
+ <!-- Note: The space character is needed as a preceding letter to draw Arabic diacritics characters correctly. -->
+ <string name="more_keys_for_arabic_diacritics">"!fixedColumnOrder!7,&#x20;&#x0655;|&#x0655;,&#x20;&#x0652;|&#x0652;,&#x20;&#x0651;|&#x0651;,&#x20;&#x064C;|&#x064C;,&#x20;&#x064D;|&#x064D;,&#x20;&#x064B;|&#x064B;,&#x20;&#x0654;|&#x0654;,&#x20;&#x0656;|&#x0656;,&#x20;&#x0670;|&#x0670;,&#x20;&#x0653;|&#x0653;,&#x20;&#x064F;|&#x064F;,&#x20;&#x0650;|&#x0650;,&#x20;&#x064E;|&#x064E;,&#x0640;&#x0640;&#x0640;|&#x0640;"</string>
+ <string name="keyhintlabel_for_arabic_diacritics">&#x064B;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-fi/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-fi/donottranslate-more-keys.xml
new file mode 100644
index 000000000..25b785845
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-fi/donottranslate-more-keys.xml
@@ -0,0 +1,56 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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="more_keys_for_a">&#x00E6;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x0101;</string>
+ <!-- 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="more_keys_for_o">&#x00F8;,&#x00F4;,&#x00F2;,&#x00F3;,&#x00F5;,&#x0153;,&#x014D;</string>
+ <!-- U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS -->
+ <string name="more_keys_for_u">&#x00FC;</string>
+ <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON
+ U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE -->
+ <string name="more_keys_for_s">&#x0161;,&#x00DF;,&#x015B;</string>
+ <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+ U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+ U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE -->
+ <string name="more_keys_for_z">&#x017E;,&#x017A;,&#x017C;</string>
+ <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE -->
+ <string name="keylabel_for_nordic_row1_11">&#x00E5;</string>
+ <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS -->
+ <string name="keylabel_for_nordic_row2_10">&#x00F6;</string>
+ <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS -->
+ <string name="keylabel_for_nordic_row2_11">&#x00E4;</string>
+ <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE -->
+ <string name="more_keys_for_nordic_row2_10">&#x00F8;</string>
+ <!-- U+00E6: "æ" LATIN SMALL LETTER AE -->
+ <string name="more_keys_for_nordic_row2_11">&#x00E6;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-fr/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-fr/donottranslate-more-keys.xml
new file mode 100644
index 000000000..7b11a183d
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-fr/donottranslate-more-keys.xml
@@ -0,0 +1,68 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ U+00AA: "ª" FEMININE ORDINAL INDICATOR -->
+ <string name="more_keys_for_a">&#x00E0;,&#x00E2;,%,&#x00E6;,&#x00E1;,&#x00E4;,&#x00E3;,&#x00E5;,&#x0101;,&#x00AA;</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
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,%,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00EE;,%,&#x00EF;,&#x00EC;,&#x00ED;,&#x012F;,&#x012B;</string>
+ <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ 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+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+00BA: "º" MASCULINE ORDINAL INDICATOR -->
+ <string name="more_keys_for_o">&#x00F4;,&#x0153;,%,&#x00F6;,&#x00F2;,&#x00F3;,&#x00F5;,&#x00F8;,&#x014D;,&#x00BA;</string>
+ <!-- U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00F9;,&#x00FB;,%,&#x00FC;,&#x00FA;,&#x016B;</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 -->
+ <string name="more_keys_for_c">&#x00E7;,&#x0107;,&#x010D;</string>
+ <!-- U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS -->
+ <string name="more_keys_for_y">%,&#x00FF;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-hi/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-hi/donottranslate-more-keys.xml
new file mode 100644
index 000000000..98ad2cb3e
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-hi/donottranslate-more-keys.xml
@@ -0,0 +1,63 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Label for "switch to alphabetic" key.
+ U+0915: "क" DEVANAGARI LETTER KA
+ U+0916: "ख" DEVANAGARI LETTER KHA
+ U+0917: "ग" DEVANAGARI LETTER GA -->
+ <string name="label_to_alpha_key">&#x0915;&#x0916;&#x0917;</string>
+ <!-- U+0967: "१" DEVANAGARI DIGIT ONE -->
+ <string name="keylabel_for_symbols_1">&#x0967;</string>
+ <!-- U+0968: "२" DEVANAGARI DIGIT TWO -->
+ <string name="keylabel_for_symbols_2">&#x0968;</string>
+ <!-- U+0969: "३" DEVANAGARI DIGIT THREE -->
+ <string name="keylabel_for_symbols_3">&#x0969;</string>
+ <!-- U+096A: "४" DEVANAGARI DIGIT FOUR -->
+ <string name="keylabel_for_symbols_4">&#x096A;</string>
+ <!-- U+096B: "५" DEVANAGARI DIGIT FIVE -->
+ <string name="keylabel_for_symbols_5">&#x096B;</string>
+ <!-- U+096C: "६" DEVANAGARI DIGIT SIX -->
+ <string name="keylabel_for_symbols_6">&#x096C;</string>
+ <!-- U+096D: "७" DEVANAGARI DIGIT SEVEN -->
+ <string name="keylabel_for_symbols_7">&#x096D;</string>
+ <!-- U+096E: "८" DEVANAGARI DIGIT EIGHT -->
+ <string name="keylabel_for_symbols_8">&#x096E;</string>
+ <!-- U+096F: "९" DEVANAGARI DIGIT NINE -->
+ <string name="keylabel_for_symbols_9">&#x096F;</string>
+ <!-- U+0966: "०" DEVANAGARI DIGIT ZERO -->
+ <string name="keylabel_for_symbols_0">&#x0966;</string>
+ <!-- Label for "switch to symbols" key. -->
+ <string name="label_to_symbol_key">\?&#x0967;&#x0968;&#x0969;</string>
+ <!-- Label for "switch to symbols with microphone" key. This string shouldn't include the "mic"
+ part because it'll be appended by the code. -->
+ <string name="label_to_symbol_with_microphone_key">&#x0967;&#x0968;&#x0969;</string>
+ <string name="additional_more_keys_for_symbols_1">1</string>
+ <string name="additional_more_keys_for_symbols_2">2</string>
+ <string name="additional_more_keys_for_symbols_3">3</string>
+ <string name="additional_more_keys_for_symbols_4">4</string>
+ <string name="additional_more_keys_for_symbols_5">5</string>
+ <string name="additional_more_keys_for_symbols_6">6</string>
+ <string name="additional_more_keys_for_symbols_7">7</string>
+ <string name="additional_more_keys_for_symbols_8">8</string>
+ <string name="additional_more_keys_for_symbols_9">9</string>
+ <string name="additional_more_keys_for_symbols_0">0</string>
+ <!-- U+20B9: "₹" INDIAN RUPEE SIGN -->
+ <string name="keylabel_for_currency_generic">&#x20B9;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-hr/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-hr/donottranslate-more-keys.xml
new file mode 100644
index 000000000..022bd2a87
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-hr/donottranslate-more-keys.xml
@@ -0,0 +1,42 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+00DF: "ß" LATIN SMALL LETTER SHARP S -->
+ <string name="more_keys_for_s">&#x0161;,&#x015B;,&#x00DF;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;</string>
+ <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+ U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+ U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE -->
+ <string name="more_keys_for_z">&#x017E;,&#x017A;,&#x017C;</string>
+ <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON
+ U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+ U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA -->
+ <string name="more_keys_for_c">&#x010D;,&#x0107;,&#x00E7;</string>
+ <!-- U+0111: "đ" LATIN SMALL LETTER D WITH STROKE -->
+ <string name="more_keys_for_d">&#x0111;</string>
+ <string name="single_quotes">!text/single_9qm_rqm</string>
+ <string name="double_quotes">!text/double_9qm_rqm</string>
+ <string name="single_angle_quotes">!text/single_raqm_laqm</string>
+ <string name="double_angle_quotes">!text/double_raqm_laqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-hu/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-hu/donottranslate-more-keys.xml
new file mode 100644
index 000000000..ce2f5d057
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-hu/donottranslate-more-keys.xml
@@ -0,0 +1,66 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x00E1;,&#x00E0;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#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
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- 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+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EE;,&#x00EF;,&#x00EC;,&#x012F;,&#x012B;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE 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+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F6;,&#x0151;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x00F8;,&#x014D;</string>
+ <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x00FC;,&#x0171;,&#x00FB;,&#x00F9;,&#x016B;</string>
+ <string name="single_quotes">!text/single_9qm_rqm</string>
+ <string name="double_quotes">!text/double_9qm_rqm</string>
+ <string name="single_angle_quotes">!text/single_raqm_laqm</string>
+ <string name="double_angle_quotes">!text/double_raqm_laqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-is/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-is/donottranslate-more-keys.xml
new file mode 100644
index 000000000..4b4d986b8
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-is/donottranslate-more-keys.xml
@@ -0,0 +1,75 @@
+<?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.
+*/
+-->
+<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+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ 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="more_keys_for_a">&#x00E1;,&#x00E4;,&#x00E6;,&#x00E5;,&#x00E0;,&#x00E2;,&#x00E3;,&#x0101;</string>
+ <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00EB;,&#x00E8;,&#x00EA;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EF;,&#x00EE;,&#x00EC;,&#x012F;,&#x012B;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ 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+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F6;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x00F8;,&#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
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x00FC;,&#x00FB;,&#x00F9;,&#x016B;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS -->
+ <string name="more_keys_for_y">&#x00FD;,&#x00FF;</string>
+ <!-- U+00F0: "ð" LATIN SMALL LETTER ETH -->
+ <string name="more_keys_for_d">&#x00F0;</string>
+ <!-- U+00FE: "þ" LATIN SMALL LETTER THORN -->
+ <string name="more_keys_for_t">&#x00FE;</string>
+ <!-- U+00F0: "ð" LATIN SMALL LETTER ETH -->
+ <string name="keylabel_for_nordic_row1_11">&#x00F0;</string>
+ <!-- U+00E6: "æ" LATIN SMALL LETTER AE -->
+ <string name="keylabel_for_nordic_row2_10">&#x00E6;</string>
+ <!-- U+00FE: "þ" LATIN SMALL LETTER THORN -->
+ <string name="keylabel_for_nordic_row2_11">&#x00FE;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
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
new file mode 100644
index 000000000..17dd03108
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-it/donottranslate-more-keys.xml
@@ -0,0 +1,62 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ U+00AA: "ª" FEMININE ORDINAL INDICATOR -->
+ <string name="more_keys_for_a">&#x00E0;,&#x00E1;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;,&#x00AA;</string>
+ <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ 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+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00EC;,&#x00ED;,&#x00EE;,&#x00EF;,&#x012F;,&#x012B;</string>
+ <!-- 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+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+00BA: "º" MASCULINE ORDINAL INDICATOR -->
+ <string name="more_keys_for_o">&#x00F2;,&#x00F3;,&#x00F4;,&#x00F6;,&#x00F5;,&#x0153;,&#x00F8;,&#x014D;,&#x00BA;</string>
+ <!-- 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+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00F9;,&#x00FA;,&#x00FB;,&#x00FC;,&#x016B;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-iw/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-iw/donottranslate-more-keys.xml
new file mode 100644
index 000000000..9d2e01ebd
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-iw/donottranslate-more-keys.xml
@@ -0,0 +1,55 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Label for "switch to alphabetic" key.
+ U+05D0: "א" HEBREW LETTER ALEF
+ U+05D1: "ב" HEBREW LETTER BET
+ U+05D2: "ג" HEBREW LETTER GIMEL -->
+ <string name="label_to_alpha_key">&#x05D0;&#x05D1;&#x05D2;</string>
+ <string name="more_keys_for_punctuation">"!fixedColumnOrder!8,\",\',#,-,:,!,\\,,\?,\@,&amp;,\\%,+,;,/,(|),)|("</string>
+ <!-- U+2605: "★" BLACK STAR -->
+ <string name="more_keys_for_star">&#x2605;</string>
+ <!-- U+00B1: "±" PLUS-MINUS SIGN
+ U+FB29: "﬩" HEBREW LETTER ALTERNATIVE PLUS SIGN -->
+ <string name="more_keys_for_plus">&#x00B1;,&#xFB29;</string>
+ <!-- The all letters need to be mirrored are found at
+ http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt -->
+ <string name="more_keys_for_left_parenthesis">!fixedColumnOrder!3,&lt;|&gt;,{|},[|]</string>
+ <string name="more_keys_for_right_parenthesis">!fixedColumnOrder!3,&gt;|&lt;,}|{,]|[</string>
+ <!-- U+2264: "≤" LESS-THAN OR EQUAL TO
+ U+2265: "≥" GREATER-THAN EQUAL TO
+ U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK -->
+ <string name="more_keys_for_less_than">!fixedColumnOrder!3,&#x2039;|&#x203A;,&#x2264;|&#x2265;,&#x00AB;|&#x00BB;</string>
+ <string name="more_keys_for_greater_than">!fixedColumnOrder!3,&#x203A;|&#x2039;,&#x2265;|&#x2264;,&#x00BB;|&#x00AB;</string>
+ <!-- The following characters don't need BIDI mirroring.
+ U+2018: "‘" LEFT SINGLE QUOTATION MARK
+ U+2019: "’" RIGHT SINGLE QUOTATION MARK
+ U+201A: "‚" SINGLE LOW-9 QUOTATION MARK
+ U+201C: "“" LEFT DOUBLE QUOTATION MARK
+ U+201D: "”" RIGHT DOUBLE QUOTATION MARK
+ U+201E: "„" DOUBLE LOW-9 QUOTATION MARK -->
+ <string name="single_quotes">&#x2018;,&#x2019;,&#x201A;</string>
+ <string name="double_quotes">&#x201C;,&#x201D;,&#x201E;</string>
+ <string name="single_angle_quotes">!text/single_laqm_raqm_rtl</string>
+ <string name="double_angle_quotes">!text/double_laqm_raqm_rtl</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-ka/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ka/donottranslate-more-keys.xml
new file mode 100644
index 000000000..8c2add44c
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-ka/donottranslate-more-keys.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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Label for "switch to alphabetic" key.
+ U+10D0: "ა" GEORGIAN LETTER AN
+ U+10D1: "ბ" GEORGIAN LETTER BAN
+ U+10D2: "გ" GEORGIAN LETTER GAN -->
+ <string name="label_to_alpha_key">&#x10D0;&#x10D1;&#x10D2;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-kk/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-kk/donottranslate-more-keys.xml
new file mode 100644
index 000000000..0e953ff21
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-kk/donottranslate-more-keys.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2013, 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+0449: "щ" CYRILLIC SMALL LETTER SHCHA -->
+ <string name="keylabel_for_east_slavic_row1_9">&#x0449;</string>
+ <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN -->
+ <string name="keylabel_for_east_slavic_row1_12">&#x044A;</string>
+ <!-- U+044B: "ы" CYRILLIC SMALL LETTER YERU -->
+ <string name="keylabel_for_east_slavic_row2_1">&#x044B;</string>
+ <!-- U+044D: "э" CYRILLIC SMALL LETTER E -->
+ <string name="keylabel_for_east_slavic_row2_11">&#x044D;</string>
+ <!-- U+0438: "и" CYRILLIC SMALL LETTER I -->
+ <string name="keylabel_for_east_slavic_row3_5">&#x0438;</string>
+ <!-- U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U
+ U+04B1: "ұ" CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE -->
+ <string name="more_keys_for_cyrillic_u">&#x04AF;,&#x04B1;</string>
+ <!-- U+049B: "қ" CYRILLIC SMALL LETTER KA WITH DESCENDER -->
+ <string name="more_keys_for_cyrillic_ka">&#x049B;</string>
+ <!-- U+0451: "ё" CYRILLIC SMALL LETTER IO -->
+ <string name="more_keys_for_cyrillic_ie">&#x0451;</string>
+ <!-- U+04A3: "ң" CYRILLIC SMALL LETTER EN WITH DESCENDER -->
+ <string name="more_keys_for_cyrillic_en">&#x04A3;</string>
+ <!-- U+0493: "ғ" CYRILLIC SMALL LETTER GHE WITH STROKE -->
+ <string name="more_keys_for_cyrillic_ghe">&#x0493;</string>
+ <!-- U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+ <string name="more_keys_for_east_slavic_row2_1">&#x0456;</string>
+ <!-- U+04D9: "ә" CYRILLIC SMALL LETTER SCHWA -->
+ <string name="more_keys_for_cyrillic_a">&#x04D9;</string>
+ <!-- U+04E9: "ө" CYRILLIC SMALL LETTER BARRED O -->
+ <string name="more_keys_for_cyrillic_o">&#x04E9;</string>
+ <!-- U+04BB: "һ" CYRILLIC SMALL LETTER SHHA -->
+ <string name="more_keys_for_east_slavic_row2_11">&#x04BB;</string>
+ <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN -->
+ <string name="more_keys_for_cyrillic_soft_sign">&#x044A;</string>
+ <!-- Label for "switch to alphabetic" key.
+ U+0410: "А" CYRILLIC CAPITAL LETTER A
+ U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+ U+0412: "В" CYRILLIC CAPITAL LETTER VE -->
+ <string name="label_to_alpha_key">&#x0410;&#x0411;&#x0412;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-ky/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ky/donottranslate-more-keys.xml
new file mode 100644
index 000000000..8d8c5fbf2
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-ky/donottranslate-more-keys.xml
@@ -0,0 +1,46 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+0449: "щ" CYRILLIC SMALL LETTER SHCHA -->
+ <string name="keylabel_for_east_slavic_row1_9">&#x0449;</string>
+ <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN -->
+ <string name="keylabel_for_east_slavic_row1_12">&#x044A;</string>
+ <!-- U+044B: "ы" CYRILLIC SMALL LETTER YERU -->
+ <string name="keylabel_for_east_slavic_row2_1">&#x044B;</string>
+ <!-- U+044D: "э" CYRILLIC SMALL LETTER E -->
+ <string name="keylabel_for_east_slavic_row2_11">&#x044D;</string>
+ <!-- U+0438: "и" CYRILLIC SMALL LETTER I -->
+ <string name="keylabel_for_east_slavic_row3_5">&#x0438;</string>
+ <!-- U+04AF: "ү" CYRILLIC SMALL LETTER STRAIGHT U -->
+ <string name="more_keys_for_cyrillic_u">&#x04AF;</string>
+ <!-- U+0451: "ё" CYRILLIC SMALL LETTER IO -->
+ <string name="more_keys_for_cyrillic_ie">&#x0451;</string>
+ <!-- U+04A3: "ң" CYRILLIC SMALL LETTER EN WITH DESCENDER -->
+ <string name="more_keys_for_cyrillic_en">&#x04A3;</string>
+ <!-- U+04E9: "ө" CYRILLIC SMALL LETTER BARRED O -->
+ <string name="more_keys_for_cyrillic_o">&#x04E9;</string>
+ <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN -->
+ <string name="more_keys_for_cyrillic_soft_sign">&#x044A;</string>
+ <!-- Label for "switch to alphabetic" key.
+ U+0410: "А" CYRILLIC CAPITAL LETTER A
+ U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+ U+0412: "В" CYRILLIC CAPITAL LETTER VE -->
+ <string name="label_to_alpha_key">&#x0410;&#x0411;&#x0412;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-lt/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-lt/donottranslate-more-keys.xml
new file mode 100644
index 000000000..7e2b8a076
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-lt/donottranslate-more-keys.xml
@@ -0,0 +1,109 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+ 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 -->
+ <string name="more_keys_for_a">&#x0105;,&#x00E4;,&#x0101;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x00E5;,&#x00E6;</string>
+ <!-- U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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+011B: "ě" LATIN SMALL LETTER E WITH CARON -->
+ <string name="more_keys_for_e">&#x0117;,&#x0119;,&#x0113;,&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x011B;</string>
+ <!-- U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ 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 -->
+ <string name="more_keys_for_i">&#x012F;,&#x012B;,&#x00EC;,&#x00ED;,&#x00EE;,&#x00EF;,&#x0131;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_o">&#x00F6;,&#x00F5;,&#x00F2;,&#x00F3;,&#x00F4;,&#x0153;,&#x0151;,&#x00F8;</string>
+ <!-- U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ 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 -->
+ <string name="more_keys_for_u">&#x016B;,&#x0173;,&#x00FC;,&#x016B;,&#x00F9;,&#x00FA;,&#x00FB;,&#x016F;,&#x0171;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_s">&#x0161;,&#x00DF;,&#x015B;,&#x015F;</string>
+ <!-- U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+ U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x0146;,&#x00F1;,&#x0144;,&#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 -->
+ <string name="more_keys_for_c">&#x010D;,&#x00E7;,&#x0107;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS -->
+ <string name="more_keys_for_y">&#x00FD;,&#x00FF;</string>
+ <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON -->
+ <string name="more_keys_for_d">&#x010F;</string>
+ <!-- U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
+ U+0159: "ř" LATIN SMALL LETTER R WITH CARON
+ U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE -->
+ <string name="more_keys_for_r">&#x0157;,&#x0159;,&#x0155;</string>
+ <!-- U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
+ U+0165: "ť" LATIN SMALL LETTER T WITH CARON -->
+ <string name="more_keys_for_t">&#x0163;,&#x0165;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_z">&#x017E;,&#x017C;,&#x017A;</string>
+ <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA -->
+ <string name="more_keys_for_k">&#x0137;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_l">&#x013C;,&#x0142;,&#x013A;,&#x013E;</string>
+ <!-- U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
+ U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE -->
+ <string name="more_keys_for_g">&#x0123;,&#x011F;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-lv/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-lv/donottranslate-more-keys.xml
new file mode 100644
index 000000000..c64e37bc8
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-lv/donottranslate-more-keys.xml
@@ -0,0 +1,108 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK -->
+ <string name="more_keys_for_a">&#x0101;,&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x00E4;,&#x00E5;,&#x00E6;,&#x0105;</string>
+ <!-- U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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 -->
+ <string name="more_keys_for_e">&#x0113;,&#x0117;,&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0119;,&#x011B;</string>
+ <!-- U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ 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 -->
+ <string name="more_keys_for_i">&#x012B;,&#x012F;,&#x00EC;,&#x00ED;,&#x00EE;,&#x00EF;,&#x0131;</string>
+ <!-- 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+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE -->
+ <string name="more_keys_for_o">&#x00F2;,&#x00F3;,&#x00F4;,&#x00F5;,&#x00F6;,&#x0153;,&#x0151;,&#x00F8;</string>
+ <!-- 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+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+ U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+ <string name="more_keys_for_u">&#x016B;,&#x0173;,&#x00F9;,&#x00FA;,&#x00FB;,&#x00FC;,&#x016F;,&#x0171;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_s">&#x0161;,&#x00DF;,&#x015B;,&#x015F;</string>
+ <!-- U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+ U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x0146;,&#x00F1;,&#x0144;,&#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 -->
+ <string name="more_keys_for_c">&#x010D;,&#x00E7;,&#x0107;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS -->
+ <string name="more_keys_for_y">&#x00FD;,&#x00FF;</string>
+ <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON -->
+ <string name="more_keys_for_d">&#x010F;</string>
+ <!-- U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
+ U+0159: "ř" LATIN SMALL LETTER R WITH CARON
+ U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE -->
+ <string name="more_keys_for_r">&#x0157;,&#x0159;,&#x0155;</string>
+ <!-- U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
+ U+0165: "ť" LATIN SMALL LETTER T WITH CARON -->
+ <string name="more_keys_for_t">&#x0163;,&#x0165;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_z">&#x017E;,&#x017C;,&#x017A;</string>
+ <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA -->
+ <string name="more_keys_for_k">&#x0137;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_l">&#x013C;,&#x0142;,&#x013A;,&#x013E;</string>
+ <!-- U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
+ U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE -->
+ <string name="more_keys_for_g">&#x0123;,&#x011F;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-mk/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-mk/donottranslate-more-keys.xml
new file mode 100644
index 000000000..2db75c8f5
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-mk/donottranslate-more-keys.xml
@@ -0,0 +1,40 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+0455: "ѕ" CYRILLIC SMALL LETTER DZE -->
+ <string name="keylabel_for_south_slavic_row1_6">&#x0455;</string>
+ <!-- U+045C: "ќ" CYRILLIC SMALL LETTER KJE -->
+ <string name="keylabel_for_south_slavic_row2_11">&#x045C;</string>
+ <!-- U+0437: "з" CYRILLIC SMALL LETTER ZE -->
+ <string name="keylabel_for_south_slavic_row3_1">&#x0437;</string>
+ <!-- U+0453: "ѓ" CYRILLIC SMALL LETTER GJE -->
+ <string name="keylabel_for_south_slavic_row3_8">&#x0453;</string>
+ <!-- U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE -->
+ <string name="more_keys_for_cyrillic_ie">&#x0450;</string>
+ <!-- U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE -->
+ <string name="more_keys_for_cyrillic_i">&#x045D;</string>
+ <!-- Label for "switch to alphabetic" key.
+ U+0410: "А" CYRILLIC CAPITAL LETTER A
+ U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+ U+0412: "В" CYRILLIC CAPITAL LETTER VE -->
+ <string name="label_to_alpha_key">&#x0410;&#x0411;&#x0412;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-mn/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-mn/donottranslate-more-keys.xml
new file mode 100644
index 000000000..fd1853e85
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-mn/donottranslate-more-keys.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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Label for "switch to alphabetic" key.
+ U+0410: "А" CYRILLIC CAPITAL LETTER A
+ U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+ U+0412: "В" CYRILLIC CAPITAL LETTER VE -->
+ <string name="label_to_alpha_key">&#x0410;&#x0411;&#x0412;</string>
+ <!-- U+20AE: "₮" TUGRIK SIGN -->
+ <string name="keylabel_for_currency_generic">&#x20AE;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-nb/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-nb/donottranslate-more-keys.xml
new file mode 100644
index 000000000..2cecb5e65
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-nb/donottranslate-more-keys.xml
@@ -0,0 +1,62 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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 -->
+ <string name="more_keys_for_a">&#x00E0;,&#x00E4;,&#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
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- 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="more_keys_for_o">&#x00F4;,&#x00F2;,&#x00F3;,&#x00F6;,&#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
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FC;,&#x00FB;,&#x00F9;,&#x00FA;,&#x016B;</string>
+ <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE -->
+ <string name="keylabel_for_nordic_row1_11">&#x00E5;</string>
+ <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE -->
+ <string name="keylabel_for_nordic_row2_10">&#x00F8;</string>
+ <!-- U+00E6: "æ" LATIN SMALL LETTER AE -->
+ <string name="keylabel_for_nordic_row2_11">&#x00E6;</string>
+ <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS -->
+ <string name="more_keys_for_nordic_row2_10">&#x00F6;</string>
+ <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS -->
+ <string name="more_keys_for_nordic_row2_11">&#x00E4;</string>
+ <string name="single_quotes">!text/single_9qm_rqm</string>
+ <string name="double_quotes">!text/double_9qm_rqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-nl/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-nl/donottranslate-more-keys.xml
new file mode 100644
index 000000000..e5d82951a
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-nl/donottranslate-more-keys.xml
@@ -0,0 +1,68 @@
+<?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.
+*/
+-->
+<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+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x00E1;,&#x00E4;,&#x00E2;,&#x00E0;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;</string>
+ <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00EB;,&#x00EA;,&#x00E8;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+0133: "ij" LATIN SMALL LIGATURE IJ -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EF;,&#x00EC;,&#x00EE;,&#x012F;,&#x012B;,&#x0133;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ 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+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F6;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x00F8;,&#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
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x00FC;,&#x00FB;,&#x00F9;,&#x016B;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;</string>
+ <!-- U+0133: "ij" LATIN SMALL LIGATURE IJ -->
+ <string name="more_keys_for_y">&#x0133;</string>
+ <string name="single_quotes">!text/single_9qm_rqm</string>
+ <string name="double_quotes">!text/double_9qm_rqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-pl/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-pl/donottranslate-more-keys.xml
new file mode 100644
index 000000000..b5cf6a0fa
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-pl/donottranslate-more-keys.xml
@@ -0,0 +1,67 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+ 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x0105;,&#x00E1;,&#x00E0;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;</string>
+ <!-- U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x0119;,&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0117;,&#x0113;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ 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+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F6;,&#x00F4;,&#x00F2;,&#x00F5;,&#x0153;,&#x00F8;,&#x014D;</string>
+ <!-- U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+ <string name="more_keys_for_s">&#x015B;,&#x00DF;,&#x0161;</string>
+ <!-- U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
+ <string name="more_keys_for_n">&#x0144;,&#x00F1;</string>
+ <!-- U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+ U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+ U+010D: "č" LATIN SMALL LETTER C WITH CARON -->
+ <string name="more_keys_for_c">&#x0107;,&#x00E7;,&#x010D;</string>
+ <!-- U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
+ U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+ U+017E: "ž" LATIN SMALL LETTER Z WITH CARON -->
+ <string name="more_keys_for_z">&#x017C;,&#x017A;,&#x017E;</string>
+ <!-- U+0142: "ł" LATIN SMALL LETTER L WITH STROKE -->
+ <string name="more_keys_for_l">&#x0142;</string>
+ <string name="single_quotes">!text/single_9qm_rqm</string>
+ <string name="double_quotes">!text/double_9qm_rqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-pt/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-pt/donottranslate-more-keys.xml
new file mode 100644
index 000000000..0c9065f27
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-pt/donottranslate-more-keys.xml
@@ -0,0 +1,65 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00AA: "ª" FEMININE ORDINAL INDICATOR -->
+ <string name="more_keys_for_a">&#x00E1;,&#x00E3;,&#x00E0;,&#x00E2;,&#x00E4;,&#x00E5;,&#x00E6;,&#x00AA;</string>
+ <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00EA;,&#x00E8;,&#x0119;,&#x0117;,&#x0113;,&#x00EB;</string>
+ <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EE;,&#x00EC;,&#x00EF;,&#x012F;,&#x012B;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+00BA: "º" MASCULINE ORDINAL INDICATOR -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F5;,&#x00F4;,&#x00F2;,&#x00F6;,&#x0153;,&#x00F8;,&#x014D;,&#x00BA;</string>
+ <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x00FC;,&#x00F9;,&#x00FB;,&#x016B;</string>
+ <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+ U+010D: "č" LATIN SMALL LETTER C WITH CARON
+ U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE -->
+ <string name="more_keys_for_c">&#x00E7;,&#x010D;,&#x0107;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-rm/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-rm/donottranslate-more-keys.xml
new file mode 100644
index 000000000..aa0d7f817
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-rm/donottranslate-more-keys.xml
@@ -0,0 +1,29 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE -->
+ <string name="more_keys_for_o">&#x00F2;,&#x00F3;,&#x00F6;,&#x00F4;,&#x00F5;,&#x0153;,&#x00F8;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-ro/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ro/donottranslate-more-keys.xml
new file mode 100644
index 000000000..f399eb28e
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-ro/donottranslate-more-keys.xml
@@ -0,0 +1,47 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
+ U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x00E2;,&#x00E3;,&#x0103;,&#x00E0;,&#x00E1;,&#x00E4;,&#x00E6;,&#x00E5;,&#x0101;</string>
+ <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00EE;,&#x00EF;,&#x00EC;,&#x00ED;,&#x012F;,&#x012B;</string>
+ <!-- U+0219: "ș" LATIN SMALL LETTER S WITH COMMA BELOW
+ U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+ <string name="more_keys_for_s">&#x0219;,&#x00DF;,&#x015B;,&#x0161;</string>
+ <!-- U+021B: "ț" LATIN SMALL LETTER T WITH COMMA BELOW -->
+ <string name="more_keys_for_t">&#x021B;</string>
+ <string name="single_quotes">!text/single_9qm_rqm</string>
+ <string name="double_quotes">!text/double_9qm_rqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-ru/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-ru/donottranslate-more-keys.xml
new file mode 100644
index 000000000..f62c90ffc
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-ru/donottranslate-more-keys.xml
@@ -0,0 +1,42 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+0449: "щ" CYRILLIC SMALL LETTER SHCHA -->
+ <string name="keylabel_for_east_slavic_row1_9">&#x0449;</string>
+ <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN -->
+ <string name="keylabel_for_east_slavic_row1_12">&#x044A;</string>
+ <!-- U+044B: "ы" CYRILLIC SMALL LETTER YERU -->
+ <string name="keylabel_for_east_slavic_row2_1">&#x044B;</string>
+ <!-- U+044D: "э" CYRILLIC SMALL LETTER E -->
+ <string name="keylabel_for_east_slavic_row2_11">&#x044D;</string>
+ <!-- U+0438: "и" CYRILLIC SMALL LETTER I -->
+ <string name="keylabel_for_east_slavic_row3_5">&#x0438;</string>
+ <!-- U+0451: "ё" CYRILLIC SMALL LETTER IO -->
+ <string name="more_keys_for_cyrillic_ie">&#x0451;</string>
+ <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN -->
+ <string name="more_keys_for_cyrillic_soft_sign">&#x044A;</string>
+ <!-- Label for "switch to alphabetic" key.
+ U+0410: "А" CYRILLIC CAPITAL LETTER A
+ U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+ U+0412: "В" CYRILLIC CAPITAL LETTER VE -->
+ <string name="label_to_alpha_key">&#x0410;&#x0411;&#x0412;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-sk/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-sk/donottranslate-more-keys.xml
new file mode 100644
index 000000000..2ed538e5b
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-sk/donottranslate-more-keys.xml
@@ -0,0 +1,111 @@
+<?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.
+*/
+-->
+<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+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ 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+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK -->
+ <string name="more_keys_for_a">&#x00E1;,&#x00E4;,&#x0101;,&#x00E0;,&#x00E2;,&#x00E3;,&#x00E5;,&#x00E6;,&#x0105;</string>
+ <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+011B: "ě" LATIN SMALL LETTER E WITH CARON
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK -->
+ <string name="more_keys_for_e">&#x00E9;,&#x011B;,&#x0113;,&#x0117;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0119;</string>
+ <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+0131: "ı" LATIN SMALL LETTER DOTLESS I -->
+ <string name="more_keys_for_i">&#x00ED;,&#x012B;,&#x012F;,&#x00EC;,&#x00EE;,&#x00EF;,&#x0131;</string>
+ <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE -->
+ <string name="more_keys_for_o">&#x00F4;,&#x00F3;,&#x00F6;,&#x00F2;,&#x00F5;,&#x0153;,&#x0151;,&#x00F8;</string>
+ <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+ 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+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+ <string name="more_keys_for_u">&#x00FA;,&#x016F;,&#x00FC;,&#x016B;,&#x0173;,&#x00F9;,&#x00FB;,&#x0171;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_s">&#x0161;,&#x00DF;,&#x015B;,&#x015F;</string>
+ <!-- U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+ U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+ U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x0148;,&#x0146;,&#x00F1;,&#x0144;,&#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 -->
+ <string name="more_keys_for_c">&#x010D;,&#x00E7;,&#x0107;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS -->
+ <string name="more_keys_for_y">&#x00FD;,&#x00FF;</string>
+ <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON -->
+ <string name="more_keys_for_d">&#x010F;</string>
+ <!-- U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
+ U+0159: "ř" LATIN SMALL LETTER R WITH CARON
+ U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA -->
+ <string name="more_keys_for_r">&#x0155;,&#x0159;,&#x0157;</string>
+ <!-- U+0165: "ť" LATIN SMALL LETTER T WITH CARON
+ U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA -->
+ <string name="more_keys_for_t">&#x0165;,&#x0163;</string>
+ <!-- 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 -->
+ <string name="more_keys_for_z">&#x017E;,&#x017C;,&#x017A;</string>
+ <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA -->
+ <string name="more_keys_for_k">&#x0137;</string>
+ <!-- U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
+ U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
+ U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
+ U+0142: "ł" LATIN SMALL LETTER L WITH STROKE -->
+ <string name="more_keys_for_l">&#x013E;,&#x013A;,&#x013C;,&#x0142;</string>
+ <!-- U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA
+ U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE -->
+ <string name="more_keys_for_g">&#x0123;,&#x011F;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+ <string name="single_angle_quotes">!text/single_raqm_laqm</string>
+ <string name="double_angle_quotes">!text/double_raqm_laqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-sl/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-sl/donottranslate-more-keys.xml
new file mode 100644
index 000000000..1e5d1d71f
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-sl/donottranslate-more-keys.xml
@@ -0,0 +1,34 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+ <string name="more_keys_for_s">&#x0161;</string>
+ <!-- U+010D: "č" LATIN SMALL LETTER C WITH CARON
+ U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE -->
+ <string name="more_keys_for_c">&#x010D;,&#x0107;</string>
+ <!-- U+0111: "đ" LATIN SMALL LETTER D WITH STROKE -->
+ <string name="more_keys_for_d">&#x0111;</string>
+ <!-- U+017E: "ž" LATIN SMALL LETTER Z WITH CARON -->
+ <string name="more_keys_for_z">&#x017E;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+ <string name="single_angle_quotes">!text/single_raqm_laqm</string>
+ <string name="double_angle_quotes">!text/double_raqm_laqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-sr/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-sr/donottranslate-more-keys.xml
new file mode 100644
index 000000000..c00d2a665
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-sr/donottranslate-more-keys.xml
@@ -0,0 +1,61 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- TODO: Move these to sr-Latn once we can handle IETF language tag with script name specified.
+ BEGIN: More keys definitions for Serbian (Latin)
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON
+ U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ <string name="more_keys_for_s">&#x0161;,&#x00DF;,&#x015B;</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
+ <string name="more_keys_for_c">&#x010D;,&#x00E7;,&#x0107;</string>
+ U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+ <string name="more_keys_for_d">&#x010F;</string>
+ U+017E: "ž" LATIN SMALL LETTER Z WITH CARON
+ U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+ U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
+ <string name="more_keys_for_z">&#x017E;,&#x017A;,&#x017C;</string>
+ END: More keys definitions for Serbian (Latin) -->
+ <!-- BEGIN: More keys definitions for Serbian (Cyrillic) -->
+ <!-- U+0437: "з" CYRILLIC SMALL LETTER ZE -->
+ <string name="keylabel_for_south_slavic_row1_6">&#x0437;</string>
+ <!-- U+045B: "ћ" CYRILLIC SMALL LETTER TSHE -->
+ <string name="keylabel_for_south_slavic_row2_11">&#x045B;</string>
+ <!-- U+0455: "ѕ" CYRILLIC SMALL LETTER DZE -->
+ <string name="keylabel_for_south_slavic_row3_1">&#x0455;</string>
+ <!-- U+0452: "ђ" CYRILLIC SMALL LETTER DJE -->
+ <string name="keylabel_for_south_slavic_row3_8">&#x0452;</string>
+ <!-- U+0450: "ѐ" CYRILLIC SMALL LETTER IE WITH GRAVE -->
+ <string name="more_keys_for_cyrillic_ie">&#x0450;</string>
+ <!-- U+045D: "ѝ" CYRILLIC SMALL LETTER I WITH GRAVE -->
+ <string name="more_keys_for_cyrillic_i">&#x045D;</string>
+ <!-- END: More keys definitions for Serbian (Cyrillic) -->
+ <!-- Label for "switch to alphabetic" key.
+ U+0410: "А" CYRILLIC CAPITAL LETTER A
+ U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+ U+0412: "В" CYRILLIC CAPITAL LETTER VE -->
+ <string name="label_to_alpha_key">&#x0410;&#x0411;&#x0412;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+ <string name="single_angle_quotes">!text/single_raqm_laqm</string>
+ <string name="double_angle_quotes">!text/double_raqm_laqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-sv/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-sv/donottranslate-more-keys.xml
new file mode 100644
index 000000000..a36a13eb2
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-sv/donottranslate-more-keys.xml
@@ -0,0 +1,56 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00E8;,&#x00EA;,&#x00EB;,&#x0119;</string>
+ <!-- U+0153: "œ" LATIN SMALL LIGATURE OE
+ 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+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x0153;,&#x00F4;,&#x00F2;,&#x00F3;,&#x00F5;,&#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
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FC;,&#x00FB;,&#x00F9;,&#x00FA;,&#x016B;</string>
+ <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+ <string name="more_keys_for_s">&#x00DF;,&#x015B;,&#x0161;</string>
+ <!-- U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE -->
+ <string name="keylabel_for_nordic_row1_11">&#x00E5;</string>
+ <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS -->
+ <string name="keylabel_for_nordic_row2_10">&#x00F6;</string>
+ <!-- U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS -->
+ <string name="keylabel_for_nordic_row2_11">&#x00E4;</string>
+ <!-- U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE -->
+ <string name="more_keys_for_nordic_row2_10">&#x00F8;</string>
+ <!-- U+00E6: "æ" LATIN SMALL LETTER AE -->
+ <string name="more_keys_for_nordic_row2_11">&#x00E6;</string>
+ <string name="single_angle_quotes">!text/single_raqm_laqm</string>
+ <string name="double_angle_quotes">!text/double_raqm_laqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-sw/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-sw/donottranslate-more-keys.xml
new file mode 100644
index 000000000..968a80c1c
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-sw/donottranslate-more-keys.xml
@@ -0,0 +1,65 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- This is the same as English except more_keys_for_g. -->
+ <!-- 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x00E0;,&#x00E1;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;</string>
+ <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0113;</string>
+ <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE -->
+ <string name="more_keys_for_i">&#x00EE;,&#x00EF;,&#x00ED;,&#x012B;,&#x00EC;</string>
+ <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE -->
+ <string name="more_keys_for_o">&#x00F4;,&#x00F6;,&#x00F2;,&#x00F3;,&#x0153;,&#x00F8;,&#x014D;,&#x00F5;</string>
+ <!-- U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FB;,&#x00FC;,&#x00F9;,&#x00FA;,&#x016B;</string>
+ <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S -->
+ <string name="more_keys_for_s">&#x00DF;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
+ <string name="more_keys_for_n">&#x00F1;</string>
+ <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA -->
+ <string name="more_keys_for_c">&#x00E7;</string>
+ <string name="more_keys_for_g">g\'</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-th/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-th/donottranslate-more-keys.xml
new file mode 100644
index 000000000..6350d4b8e
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-th/donottranslate-more-keys.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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Label for "switch to alphabetic" key.
+ U+0E01: "ก" THAI CHARACTER KO KAI
+ U+0E02: "ข" THAI CHARACTER KHO KHAI
+ U+0E04: "ค" THAI CHARACTER KHO KHWAI -->
+ <string name="label_to_alpha_key">&#x0E01;&#x0E02;&#x0E04;</string>
+ <!-- U+0E3F: "฿" THAI CURRENCY SYMBOL BAHT -->
+ <string name="keylabel_for_currency_generic">&#x0E3F;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-tl/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-tl/donottranslate-more-keys.xml
new file mode 100644
index 000000000..383d55ccf
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-tl/donottranslate-more-keys.xml
@@ -0,0 +1,70 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ 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+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ U+00AA: "ª" FEMININE ORDINAL INDICATOR -->
+ <string name="more_keys_for_a">&#x00E1;,&#x00E0;,&#x00E4;,&#x00E2;,&#x00E3;,&#x00E5;,&#x0105;,&#x00E6;,&#x0101;,&#x00AA;</string>
+ <!-- U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ U+00EB: "ë" LATIN SMALL LETTER E WITH DIAERESIS
+ U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E9;,&#x00E8;,&#x00EB;,&#x00EA;,&#x0119;,&#x0117;,&#x0113;</string>
+ <!-- U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x00ED;,&#x00EF;,&#x00EC;,&#x00EE;,&#x012F;,&#x012B;</string>
+ <!-- U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+00BA: "º" MASCULINE ORDINAL INDICATOR -->
+ <string name="more_keys_for_o">&#x00F3;,&#x00F2;,&#x00F6;,&#x00F4;,&#x00F5;,&#x00F8;,&#x0153;,&#x014D;,&#x00BA;</string>
+ <!-- U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FA;,&#x00FC;,&#x00F9;,&#x00FB;,&#x016B;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;</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 -->
+ <string name="more_keys_for_c">&#x00E7;,&#x0107;,&#x010D;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-tr/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-tr/donottranslate-more-keys.xml
new file mode 100644
index 000000000..1161811d4
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-tr/donottranslate-more-keys.xml
@@ -0,0 +1,57 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+ <string name="more_keys_for_a">&#x00E2;</string>
+ <!-- U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+ U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON -->
+ <string name="more_keys_for_i">&#x0131;,&#x00EE;,&#x00EF;,&#x00EC;,&#x00ED;,&#x012F;,&#x012B;</string>
+ <!-- U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ 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+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON -->
+ <string name="more_keys_for_o">&#x00F6;,&#x00F4;,&#x0153;,&#x00F2;,&#x00F3;,&#x00F5;,&#x00F8;,&#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
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FC;,&#x00FB;,&#x00F9;,&#x00FA;,&#x016B;</string>
+ <!-- U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+ U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON -->
+ <string name="more_keys_for_s">&#x015F;,&#x00DF;,&#x015B;,&#x0161;</string>
+ <!-- U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE -->
+ <string name="more_keys_for_g">&#x011F;</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 -->
+ <string name="more_keys_for_c">&#x00E7;,&#x0107;,&#x010D;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-uk/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-uk/donottranslate-more-keys.xml
new file mode 100644
index 000000000..cc05cc697
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-uk/donottranslate-more-keys.xml
@@ -0,0 +1,46 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+0449: "щ" CYRILLIC SMALL LETTER SHCHA -->
+ <string name="keylabel_for_east_slavic_row1_9">&#x0449;</string>
+ <!-- U+0457: "ї" CYRILLIC SMALL LETTER YI -->
+ <string name="keylabel_for_east_slavic_row1_12">&#x0457;</string>
+ <!-- U+0456: "і" CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+ <string name="keylabel_for_east_slavic_row2_1">&#x0456;</string>
+ <!-- U+0454: "є" CYRILLIC SMALL LETTER UKRAINIAN IE -->
+ <string name="keylabel_for_east_slavic_row2_11">&#x0454;</string>
+ <!-- U+0438: "и" CYRILLIC SMALL LETTER I -->
+ <string name="keylabel_for_east_slavic_row3_5">&#x0438;</string>
+ <!-- U+0491: "ґ" CYRILLIC SMALL LETTER GHE WITH UPTURN -->
+ <string name="more_keys_for_cyrillic_ghe">&#x0491;</string>
+ <!-- U+0457: "ї" CYRILLIC SMALL LETTER YI -->
+ <string name="more_keys_for_east_slavic_row2_1">&#x0457;</string>
+ <!-- U+044A: "ъ" CYRILLIC SMALL LETTER HARD SIGN -->
+ <string name="more_keys_for_cyrillic_soft_sign">&#x044A;</string>
+ <!-- U+20B4: "₴" HRYVNIA SIGN -->
+ <string name="keylabel_for_currency_generic">&#x20B4;</string>
+ <!-- Label for "switch to alphabetic" key.
+ U+0410: "А" CYRILLIC CAPITAL LETTER A
+ U+0411: "Б" CYRILLIC CAPITAL LETTER BE
+ U+0412: "В" CYRILLIC CAPITAL LETTER VE -->
+ <string name="label_to_alpha_key">&#x0410;&#x0411;&#x0412;</string>
+ <string name="single_quotes">!text/single_9qm_lqm</string>
+ <string name="double_quotes">!text/double_9qm_lqm</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-vi/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-vi/donottranslate-more-keys.xml
new file mode 100644
index 000000000..fa98ea9e1
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-vi/donottranslate-more-keys.xml
@@ -0,0 +1,97 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- U+00E0: "à" LATIN SMALL LETTER A WITH GRAVE
+ U+00E1: "á" LATIN SMALL LETTER A WITH ACUTE
+ U+1EA3: "ả" LATIN SMALL LETTER A WITH HOOK ABOVE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+1EA1: "ạ" LATIN SMALL LETTER A WITH DOT BELOW
+ U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
+ U+1EB1: "ằ" LATIN SMALL LETTER A WITH BREVE AND GRAVE
+ U+1EAF: "ắ" LATIN SMALL LETTER A WITH BREVE AND ACUTE
+ U+1EB3: "ẳ" LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
+ U+1EB5: "ẵ" LATIN SMALL LETTER A WITH BREVE AND TILDE
+ U+1EB7: "ặ" LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
+ U+00E2: "â" LATIN SMALL LETTER A WITH CIRCUMFLEX
+ U+1EA7: "ầ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
+ U+1EA5: "ấ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
+ U+1EA9: "ẩ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
+ U+1EAB: "ẫ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
+ U+1EAD: "ậ" LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW -->
+ <string name="more_keys_for_a">&#x00E0;,&#x00E1;,&#x1EA3;,&#x00E3;,&#x1EA1;,&#x0103;,&#x1EB1;,&#x1EAF;,&#x1EB3;,&#x1EB5;,&#x1EB7;,&#x00E2;,&#x1EA7;,&#x1EA5;,&#x1EA9;,&#x1EAB;,&#x1EAD;</string>
+ <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ U+00E9: "é" LATIN SMALL LETTER E WITH ACUTE
+ U+1EBB: "ẻ" LATIN SMALL LETTER E WITH HOOK ABOVE
+ U+1EBD: "ẽ" LATIN SMALL LETTER E WITH TILDE
+ U+1EB9: "ẹ" LATIN SMALL LETTER E WITH DOT BELOW
+ U+00EA: "ê" LATIN SMALL LETTER E WITH CIRCUMFLEX
+ U+1EC1: "ề" LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
+ U+1EBF: "ế" LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
+ U+1EC3: "ể" LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
+ U+1EC5: "ễ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
+ U+1EC7: "ệ" LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW -->
+ <string name="more_keys_for_e">&#x00E8;,&#x00E9;,&#x1EBB;,&#x1EBD;,&#x1EB9;,&#x00EA;,&#x1EC1;,&#x1EBF;,&#x1EC3;,&#x1EC5;,&#x1EC7;</string>
+ <!-- U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+1EC9: "ỉ" LATIN SMALL LETTER I WITH HOOK ABOVE
+ U+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
+ U+1ECB: "ị" LATIN SMALL LETTER I WITH DOT BELOW -->
+ <string name="more_keys_for_i">&#x00EC;,&#x00ED;,&#x1EC9;,&#x0129;,&#x1ECB;</string>
+ <!-- U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+1ECF: "ỏ" LATIN SMALL LETTER O WITH HOOK ABOVE
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+1ECD: "ọ" LATIN SMALL LETTER O WITH DOT BELOW
+ U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+1ED3: "ồ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
+ U+1ED1: "ố" LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
+ U+1ED5: "ổ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
+ U+1ED7: "ỗ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
+ U+1ED9: "ộ" LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
+ U+01A1: "ơ" LATIN SMALL LETTER O WITH HORN
+ U+1EDD: "ờ" LATIN SMALL LETTER O WITH HORN AND GRAVE
+ U+1EDB: "ớ" LATIN SMALL LETTER O WITH HORN AND ACUTE
+ U+1EDF: "ở" LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
+ U+1EE1: "ỡ" LATIN SMALL LETTER O WITH HORN AND TILDE
+ U+1EE3: "ợ" LATIN SMALL LETTER O WITH HORN AND DOT BELOW -->
+ <string name="more_keys_for_o">&#x00F2;,&#x00F3;,&#x1ECF;,&#x00F5;,&#x1ECD;,&#x00F4;,&#x1ED3;,&#x1ED1;,&#x1ED5;,&#x1ED7;,&#x1ED9;,&#x01A1;,&#x1EDD;,&#x1EDB;,&#x1EDF;,&#x1EE1;,&#x1EE3;</string>
+ <!-- U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+1EE7: "ủ" LATIN SMALL LETTER U WITH HOOK ABOVE
+ U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE
+ U+1EE5: "ụ" LATIN SMALL LETTER U WITH DOT BELOW
+ U+01B0: "ư" LATIN SMALL LETTER U WITH HORN
+ U+1EEB: "ừ" LATIN SMALL LETTER U WITH HORN AND GRAVE
+ U+1EE9: "ứ" LATIN SMALL LETTER U WITH HORN AND ACUTE
+ U+1EED: "ử" LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
+ U+1EEF: "ữ" LATIN SMALL LETTER U WITH HORN AND TILDE
+ U+1EF1: "ự" LATIN SMALL LETTER U WITH HORN AND DOT BELOW -->
+ <string name="more_keys_for_u">&#x00F9;,&#x00FA;,&#x1EE7;,&#x0169;,&#x1EE5;,&#x01B0;,&#x1EEB;,&#x1EE9;,&#x1EED;,&#x1EEF;,&#x1EF1;</string>
+ <!-- U+1EF3: "ỳ" LATIN SMALL LETTER Y WITH GRAVE
+ U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+1EF7: "ỷ" LATIN SMALL LETTER Y WITH HOOK ABOVE
+ U+1EF9: "ỹ" LATIN SMALL LETTER Y WITH TILDE
+ U+1EF5: "ỵ" LATIN SMALL LETTER Y WITH DOT BELOW -->
+ <string name="more_keys_for_y">&#x1EF3;,&#x00FD;,&#x1EF7;,&#x1EF9;,&#x1EF5;</string>
+ <!-- U+0111: "đ" LATIN SMALL LETTER D WITH STROKE -->
+ <string name="more_keys_for_d">&#x0111;</string>
+ <!-- U+20AB: "₫" DONG SIGN -->
+ <string name="keylabel_for_currency_generic">&#x20AB;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-zu/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-zu/donottranslate-more-keys.xml
new file mode 100644
index 000000000..191791530
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-zu/donottranslate-more-keys.xml
@@ -0,0 +1,64 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- This is the same as English -->
+ <!-- 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+00E3: "ã" LATIN SMALL LETTER A WITH TILDE
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON -->
+ <string name="more_keys_for_a">&#x00E0;,&#x00E1;,&#x00E2;,&#x00E4;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;</string>
+ <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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+0113: "ē" LATIN SMALL LETTER E WITH MACRON -->
+ <string name="more_keys_for_e">&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0113;</string>
+ <!-- U+00EE: "î" LATIN SMALL LETTER I WITH CIRCUMFLEX
+ U+00EF: "ï" LATIN SMALL LETTER I WITH DIAERESIS
+ U+00ED: "í" LATIN SMALL LETTER I WITH ACUTE
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE -->
+ <string name="more_keys_for_i">&#x00EE;,&#x00EF;,&#x00ED;,&#x012B;,&#x00EC;</string>
+ <!-- U+00F4: "ô" LATIN SMALL LETTER O WITH CIRCUMFLEX
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F2: "ò" LATIN SMALL LETTER O WITH GRAVE
+ U+00F3: "ó" LATIN SMALL LETTER O WITH ACUTE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+00F5: "õ" LATIN SMALL LETTER O WITH TILDE -->
+ <string name="more_keys_for_o">&#x00F4;,&#x00F6;,&#x00F2;,&#x00F3;,&#x0153;,&#x00F8;,&#x014D;,&#x00F5;</string>
+ <!-- U+00FB: "û" LATIN SMALL LETTER U WITH CIRCUMFLEX
+ U+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+00F9: "ù" LATIN SMALL LETTER U WITH GRAVE
+ U+00FA: "ú" LATIN SMALL LETTER U WITH ACUTE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON -->
+ <string name="more_keys_for_u">&#x00FB;,&#x00FC;,&#x00F9;,&#x00FA;,&#x016B;</string>
+ <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S -->
+ <string name="more_keys_for_s">&#x00DF;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE -->
+ <string name="more_keys_for_n">&#x00F1;</string>
+ <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA -->
+ <string name="more_keys_for_c">&#x00E7;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values-zz/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values-zz/donottranslate-more-keys.xml
new file mode 100644
index 000000000..eb984a469
--- /dev/null
+++ b/tools/make-keyboard-text/res/values-zz/donottranslate-more-keys.xml
@@ -0,0 +1,139 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- 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+00E4: "ä" LATIN SMALL LETTER A WITH DIAERESIS
+ U+00E5: "å" LATIN SMALL LETTER A WITH RING ABOVE
+ U+00E6: "æ" LATIN SMALL LETTER AE
+ U+0101: "ā" LATIN SMALL LETTER A WITH MACRON
+ U+0103: "ă" LATIN SMALL LETTER A WITH BREVE
+ U+0105: "ą" LATIN SMALL LETTER A WITH OGONEK
+ U+00AA: "ª" FEMININE ORDINAL INDICATOR -->
+ <string name="more_keys_for_a">&#x00E0;,&#x00E1;,&#x00E2;,&#x00E3;,&#x00E4;,&#x00E5;,&#x00E6;,&#x00E3;,&#x00E5;,&#x0101;,&#x0103;,&#x0105;,&#x00AA;</string>
+ <!-- U+00E8: "è" LATIN SMALL LETTER E WITH GRAVE
+ 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+0113: "ē" LATIN SMALL LETTER E WITH MACRON
+ U+0115: "ĕ" LATIN SMALL LETTER E WITH BREVE
+ U+0117: "ė" LATIN SMALL LETTER E WITH DOT ABOVE
+ U+0119: "ę" LATIN SMALL LETTER E WITH OGONEK
+ U+011B: "ě" LATIN SMALL LETTER E WITH CARON -->
+ <string name="more_keys_for_e">&#x00E8;,&#x00E9;,&#x00EA;,&#x00EB;,&#x0113;,&#x0115;,&#x0117;,&#x0119;,&#x011B;</string>
+ <!-- U+00EC: "ì" LATIN SMALL LETTER I WITH GRAVE
+ 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+0129: "ĩ" LATIN SMALL LETTER I WITH TILDE
+ U+012B: "ī" LATIN SMALL LETTER I WITH MACRON
+ U+012D: "ĭ" LATIN SMALL LETTER I WITH BREVE
+ U+012F: "į" LATIN SMALL LETTER I WITH OGONEK
+ U+0131: "ı" LATIN SMALL LETTER DOTLESS I
+ U+0133: "ij" LATIN SMALL LIGATURE IJ -->
+ <string name="more_keys_for_i">&#x00EC;,&#x00ED;,&#x00EE;,&#x00EF;,&#x0129;,&#x012B;,&#x012D;,&#x012F;,&#x0131;,&#x0133;</string>
+ <!-- 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+00F5: "õ" LATIN SMALL LETTER O WITH TILDE
+ U+00F6: "ö" LATIN SMALL LETTER O WITH DIAERESIS
+ U+00F8: "ø" LATIN SMALL LETTER O WITH STROKE
+ U+014D: "ō" LATIN SMALL LETTER O WITH MACRON
+ U+014F: "ŏ" LATIN SMALL LETTER O WITH BREVE
+ U+0151: "ő" LATIN SMALL LETTER O WITH DOUBLE ACUTE
+ U+0153: "œ" LATIN SMALL LIGATURE OE
+ U+00BA: "º" MASCULINE ORDINAL INDICATOR -->
+ <string name="more_keys_for_o">&#x00F2;,&#x00F3;,&#x00F4;,&#x00F5;,&#x00F6;,&#x00F8;,&#x014D;,&#x014F;,&#x0151;,&#x0153;,&#x00BA;</string>
+ <!-- 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+00FC: "ü" LATIN SMALL LETTER U WITH DIAERESIS
+ U+0169: "ũ" LATIN SMALL LETTER U WITH TILDE
+ U+016B: "ū" LATIN SMALL LETTER U WITH MACRON
+ U+016D: "ŭ" LATIN SMALL LETTER U WITH BREVE
+ U+016F: "ů" LATIN SMALL LETTER U WITH RING ABOVE
+ U+0171: "ű" LATIN SMALL LETTER U WITH DOUBLE ACUTE
+ U+0173: "ų" LATIN SMALL LETTER U WITH OGONEK -->
+ <string name="more_keys_for_u">&#x00F9;,&#x00FA;,&#x00FB;,&#x00FC;,&#x0169;,&#x016B;,&#x016D;,&#x016F;,&#x0171;,&#x0173;</string>
+ <!-- U+00DF: "ß" LATIN SMALL LETTER SHARP S
+ U+015B: "ś" LATIN SMALL LETTER S WITH ACUTE
+ U+015D: "ŝ" LATIN SMALL LETTER S WITH CIRCUMFLEX
+ U+015F: "ş" LATIN SMALL LETTER S WITH CEDILLA
+ U+0161: "š" LATIN SMALL LETTER S WITH CARON
+ U+017F: "ſ" LATIN SMALL LETTER LONG S -->
+ <string name="more_keys_for_s">&#x00DF;,&#x015B;,&#x015D;,&#x015F;,&#x0161;,&#x017F;</string>
+ <!-- U+00F1: "ñ" LATIN SMALL LETTER N WITH TILDE
+ U+0144: "ń" LATIN SMALL LETTER N WITH ACUTE
+ U+0146: "ņ" LATIN SMALL LETTER N WITH CEDILLA
+ U+0148: "ň" LATIN SMALL LETTER N WITH CARON
+ U+0149: "ʼn" LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+ U+014B: "ŋ" LATIN SMALL LETTER ENG -->
+ <string name="more_keys_for_n">&#x00F1;,&#x0144;,&#x0146;,&#x0148;,&#x0149;,&#x014B;</string>
+ <!-- U+00E7: "ç" LATIN SMALL LETTER C WITH CEDILLA
+ U+0107: "ć" LATIN SMALL LETTER C WITH ACUTE
+ U+0109: "ĉ" LATIN SMALL LETTER C WITH CIRCUMFLEX
+ U+010B: "ċ" LATIN SMALL LETTER C WITH DOT ABOVE
+ U+010D: "č" LATIN SMALL LETTER C WITH CARON -->
+ <string name="more_keys_for_c">&#x00E7;,&#x0107;,&#x0109;,&#x010B;,&#x010D;</string>
+ <!-- U+00FD: "ý" LATIN SMALL LETTER Y WITH ACUTE
+ U+0177: "ŷ" LATIN SMALL LETTER Y WITH CIRCUMFLEX
+ U+00FF: "ÿ" LATIN SMALL LETTER Y WITH DIAERESIS
+ U+0133: "ij" LATIN SMALL LIGATURE IJ -->
+ <string name="more_keys_for_y">&#x00FD;,&#x0177;,&#x00FF;,&#x0133;</string>
+ <!-- U+010F: "ď" LATIN SMALL LETTER D WITH CARON
+ U+0111: "đ" LATIN SMALL LETTER D WITH STROKE
+ U+00F0: "ð" LATIN SMALL LETTER ETH -->
+ <string name="more_keys_for_d">&#x010F;,&#x0111;,&#x00F0;</string>
+ <!-- U+0155: "ŕ" LATIN SMALL LETTER R WITH ACUTE
+ U+0157: "ŗ" LATIN SMALL LETTER R WITH CEDILLA
+ U+0159: "ř" LATIN SMALL LETTER R WITH CARON -->
+ <string name="more_keys_for_r">&#x0155;,&#x0157;,&#x0159;</string>
+ <!-- U+00FE: "þ" LATIN SMALL LETTER THORN
+ U+0163: "ţ" LATIN SMALL LETTER T WITH CEDILLA
+ U+0165: "ť" LATIN SMALL LETTER T WITH CARON
+ U+0167: "ŧ" LATIN SMALL LETTER T WITH STROKE -->
+ <string name="more_keys_for_t">&#x00FE;,&#x0163;,&#x0165;,&#x0167;</string>
+ <!-- U+017A: "ź" LATIN SMALL LETTER Z WITH ACUTE
+ U+017C: "ż" LATIN SMALL LETTER Z WITH DOT ABOVE
+ U+017E: "ž" LATIN SMALL LETTER Z WITH CARON -->
+ <string name="more_keys_for_z">&#x017A;,&#x017C;,&#x017E;</string>
+ <!-- U+0137: "ķ" LATIN SMALL LETTER K WITH CEDILLA
+ U+0138: "ĸ" LATIN SMALL LETTER KRA -->
+ <string name="more_keys_for_k">&#x0137;,&#x0138;</string>
+ <!-- U+013A: "ĺ" LATIN SMALL LETTER L WITH ACUTE
+ U+013C: "ļ" LATIN SMALL LETTER L WITH CEDILLA
+ U+013E: "ľ" LATIN SMALL LETTER L WITH CARON
+ U+0140: "ŀ" LATIN SMALL LETTER L WITH MIDDLE DOT
+ U+0142: "ł" LATIN SMALL LETTER L WITH STROKE -->
+ <string name="more_keys_for_l">&#x013A;,&#x013C;,&#x013E;,&#x0140;,&#x0142;</string>
+ <!-- U+011D: "ĝ" LATIN SMALL LETTER G WITH CIRCUMFLEX
+ U+011F: "ğ" LATIN SMALL LETTER G WITH BREVE
+ U+0121: "ġ" LATIN SMALL LETTER G WITH DOT ABOVE
+ U+0123: "ģ" LATIN SMALL LETTER G WITH CEDILLA -->
+ <string name="more_keys_for_g">&#x011D;,&#x011F;,&#x0121;,&#x0123;</string>
+ <!-- U+0125: "ĥ" LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+ <string name="more_keys_for_h">&#x0125;</string>
+ <!-- U+0135: "ĵ" LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+ <string name="more_keys_for_j">&#x0135;</string>
+ <!-- U+0175: "ŵ" LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+ <string name="more_keys_for_w">&#x0175;</string>
+</resources>
diff --git a/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml b/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml
new file mode 100644
index 000000000..4cf26505f
--- /dev/null
+++ b/tools/make-keyboard-text/res/values/donottranslate-more-keys.xml
@@ -0,0 +1,250 @@
+<?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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="more_keys_for_a"></string>
+ <string name="more_keys_for_e"></string>
+ <string name="more_keys_for_i"></string>
+ <string name="more_keys_for_o"></string>
+ <string name="more_keys_for_u"></string>
+ <string name="more_keys_for_s"></string>
+ <string name="more_keys_for_n"></string>
+ <string name="more_keys_for_c"></string>
+ <string name="more_keys_for_y"></string>
+ <string name="more_keys_for_d"></string>
+ <string name="more_keys_for_r"></string>
+ <string name="more_keys_for_t"></string>
+ <string name="more_keys_for_z"></string>
+ <string name="more_keys_for_k"></string>
+ <string name="more_keys_for_l"></string>
+ <string name="more_keys_for_g"></string>
+ <string name="more_keys_for_v"></string>
+ <string name="more_keys_for_h"></string>
+ <string name="more_keys_for_j"></string>
+ <string name="more_keys_for_w"></string>
+ <string name="keylabel_for_nordic_row1_11"></string>
+ <string name="keylabel_for_nordic_row2_10"></string>
+ <string name="keylabel_for_nordic_row2_11"></string>
+ <string name="more_keys_for_nordic_row2_10"></string>
+ <string name="more_keys_for_nordic_row2_11"></string>
+ <string name="keylabel_for_east_slavic_row1_9"></string>
+ <string name="keylabel_for_east_slavic_row1_12"></string>
+ <string name="keylabel_for_east_slavic_row2_1"></string>
+ <string name="keylabel_for_east_slavic_row2_11"></string>
+ <string name="keylabel_for_east_slavic_row3_5"></string>
+ <string name="more_keys_for_cyrillic_u"></string>
+ <string name="more_keys_for_cyrillic_ka"></string>
+ <string name="more_keys_for_cyrillic_en"></string>
+ <string name="more_keys_for_cyrillic_ghe"></string>
+ <string name="more_keys_for_east_slavic_row2_1"></string>
+ <string name="more_keys_for_cyrillic_a"></string>
+ <string name="more_keys_for_cyrillic_o"></string>
+ <string name="more_keys_for_cyrillic_soft_sign"></string>
+ <string name="more_keys_for_east_slavic_row2_11"></string>
+ <string name="keylabel_for_south_slavic_row1_6"></string>
+ <string name="keylabel_for_south_slavic_row2_11"></string>
+ <string name="keylabel_for_south_slavic_row3_1"></string>
+ <string name="keylabel_for_south_slavic_row3_8"></string>
+ <string name="more_keys_for_cyrillic_ie"></string>
+ <string name="more_keys_for_cyrillic_i"></string>
+ <!-- Label for "switch to alphabetic" key. -->
+ <string name="label_to_alpha_key">ABC</string>
+ <string name="single_quotes">!text/single_lqm_rqm</string>
+ <string name="double_quotes">!text/double_lqm_rqm</string>
+ <string name="single_angle_quotes">!text/single_laqm_raqm</string>
+ <string name="double_angle_quotes">!text/double_laqm_raqm</string>
+ <!-- U+00A2: "¢" CENT SIGN
+ U+00A3: "£" POUND SIGN
+ U+20AC: "€" EURO SIGN
+ U+00A5: "¥" YEN SIGN
+ U+20B1: "₱" PESO SIGN -->
+ <string name="more_keys_for_currency_dollar">&#x00A2;,&#x00A3;,&#x20AC;,&#x00A5;,&#x20B1;</string>
+ <string name="keylabel_for_currency_generic">$</string>
+ <string name="more_keys_for_currency_generic">$,&#x00A2;,&#x20AC;,&#x00A3;,&#x00A5;,&#x20B1;</string>
+ <string name="more_keys_for_punctuation">"!fixedColumnOrder!8,\",\',#,-,:,!,\\,,\?,\@,&amp;,\\%,+,;,/,(,)"</string>
+ <!-- U+2020: "†" DAGGER
+ U+2021: "‡" DOUBLE DAGGER
+ U+2605: "★" BLACK STAR -->
+ <string name="more_keys_for_star">&#x2020;,&#x2021;,&#x2605;</string>
+ <!-- U+266A: "♪" EIGHTH NOTE
+ U+2665: "♥" BLACK HEART SUIT
+ U+2660: "♠" BLACK SPADE SUIT
+ U+2666: "♦" BLACK DIAMOND SUIT
+ U+2663: "♣" BLACK CLUB SUIT -->
+ <string name="more_keys_for_bullet">&#x266A;,&#x2665;,&#x2660;,&#x2666;,&#x2663;</string>
+ <!-- U+00B1: "±" PLUS-MINUS SIGN -->
+ <string name="more_keys_for_plus">&#x00B1;</string>
+ <!-- The all letters need to be mirrored are found at
+ http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt -->
+ <string name="more_keys_for_left_parenthesis">!fixedColumnOrder!3,&lt;,{,[</string>
+ <string name="more_keys_for_right_parenthesis">!fixedColumnOrder!3,&gt;,},]</string>
+ <!-- U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ U+2264: "≤" LESS-THAN OR EQUAL TO
+ U+2265: "≥" GREATER-THAN EQUAL TO
+ U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+ <string name="more_keys_for_less_than">!fixedColumnOrder!3,&#x2039;,&#x2264;,&#x00AB;</string>
+ <string name="more_keys_for_greater_than">!fixedColumnOrder!3,&#x203A;,&#x2265;,&#x00BB;</string>
+ <string name="more_keys_for_arabic_diacritics"></string>
+ <string name="keyhintlabel_for_arabic_diacritics"></string>
+ <string name="keylabel_for_symbols_1">1</string>
+ <string name="keylabel_for_symbols_2">2</string>
+ <string name="keylabel_for_symbols_3">3</string>
+ <string name="keylabel_for_symbols_4">4</string>
+ <string name="keylabel_for_symbols_5">5</string>
+ <string name="keylabel_for_symbols_6">6</string>
+ <string name="keylabel_for_symbols_7">7</string>
+ <string name="keylabel_for_symbols_8">8</string>
+ <string name="keylabel_for_symbols_9">9</string>
+ <string name="keylabel_for_symbols_0">0</string>
+ <!-- Label for "switch to symbols" key. -->
+ <string name="label_to_symbol_key">\?123</string>
+ <!-- Label for "switch to symbols with microphone" key. This string shouldn't include the "mic"
+ part because it'll be appended by the code. -->
+ <string name="label_to_symbol_with_microphone_key">123</string>
+ <string name="additional_more_keys_for_symbols_1"></string>
+ <string name="additional_more_keys_for_symbols_2"></string>
+ <string name="additional_more_keys_for_symbols_3"></string>
+ <string name="additional_more_keys_for_symbols_4"></string>
+ <string name="additional_more_keys_for_symbols_5"></string>
+ <string name="additional_more_keys_for_symbols_6"></string>
+ <string name="additional_more_keys_for_symbols_7"></string>
+ <string name="additional_more_keys_for_symbols_8"></string>
+ <string name="additional_more_keys_for_symbols_9"></string>
+ <string name="additional_more_keys_for_symbols_0"></string>
+ <!-- U+00B9: "¹" SUPERSCRIPT ONE
+ U+00BD: "½" VULGAR FRACTION ONE HALF
+ U+2153: "⅓" VULGAR FRACTION ONE THIRD
+ U+00BC: "¼" VULGAR FRACTION ONE QUARTER
+ U+215B: "⅛" VULGAR FRACTION ONE EIGHTH -->
+ <string name="more_keys_for_symbols_1">&#x00B9;,&#x00BD;,&#x2153;,&#x00BC;,&#x215B;</string>
+ <!-- U+00B2: "²" SUPERSCRIPT TWO
+ U+2154: "⅔" VULGAR FRACTION TWO THIRDS -->
+ <string name="more_keys_for_symbols_2">&#x00B2;,&#x2154;</string>
+ <!-- U+00B3: "³" SUPERSCRIPT THREE
+ U+00BE: "¾" VULGAR FRACTION THREE QUARTERS
+ U+215C: "⅜" VULGAR FRACTION THREE EIGHTHS -->
+ <string name="more_keys_for_symbols_3">&#x00B3;,&#x00BE;,&#x215C;</string>
+ <!-- U+2074: "⁴" SUPERSCRIPT FOUR -->
+ <string name="more_keys_for_symbols_4">&#x2074;</string>
+ <!-- U+215D: "⅝" VULGAR FRACTION FIVE EIGHTHS -->
+ <string name="more_keys_for_symbols_5">&#x215D;</string>
+ <string name="more_keys_for_symbols_6"></string>
+ <!-- U+215E: "⅞" VULGAR FRACTION SEVEN EIGHTHS -->
+ <string name="more_keys_for_symbols_7">&#x215E;</string>
+ <string name="more_keys_for_symbols_8"></string>
+ <string name="more_keys_for_symbols_9"></string>
+ <!-- U+207F: "ⁿ" SUPERSCRIPT LATIN SMALL LETTER N
+ U+2205: "∅" EMPTY SET -->
+ <string name="more_keys_for_symbols_0">&#x207F;,&#x2205;</string>
+ <string name="keylabel_for_comma">,</string>
+ <string name="more_keys_for_comma"></string>
+ <string name="keylabel_for_symbols_question">\?</string>
+ <string name="keylabel_for_symbols_semicolon">;</string>
+ <string name="keylabel_for_symbols_percent">%</string>
+ <!-- U+00A1: "¡" INVERTED EXCLAMATION MARK -->
+ <string name="more_keys_for_symbols_exclamation">&#x00A1;</string>
+ <!-- U+00BF: "¿" INVERTED QUESTION MARK -->
+ <string name="more_keys_for_symbols_question">&#x00BF;</string>
+ <string name="more_keys_for_symbols_semicolon"></string>
+ <!-- U+2030: "‰" PER MILLE SIGN -->
+ <string name="more_keys_for_symbols_percent">&#x2030;</string>
+ <string name="keylabel_for_tablet_comma">,</string>
+ <string name="keyhintlabel_for_tablet_comma">!</string>
+ <string name="more_keys_for_tablet_comma">!</string>
+ <string name="keyhintlabel_for_tablet_period">\?</string>
+ <string name="more_keys_for_tablet_period">\?</string>
+ <string name="keylabel_for_apostrophe">\'</string>
+ <string name="keyhintlabel_for_apostrophe">\"</string>
+ <string name="more_keys_for_apostrophe">\"</string>
+ <string name="more_keys_for_q"></string>
+ <string name="more_keys_for_x"></string>
+ <string name="keylabel_for_q">q</string>
+ <string name="keylabel_for_w">w</string>
+ <string name="keylabel_for_y">y</string>
+ <string name="keylabel_for_x">x</string>
+ <string name="keylabel_for_spanish_row2_10"></string>
+ <string name="more_keys_for_am_pm">!fixedColumnOrder!2,!hasLabels!,\@string/label_time_am,\@string/label_time_pm</string>
+ <string name="settings_as_more_key">!icon/settings_key|!code/key_settings</string>
+ <string name="shortcut_as_more_key">!icon/shortcut_key|!code/key_shortcut</string>
+ <string name="action_next_as_more_key">!hasLabels!,\@string/label_next_key|!code/key_action_next</string>
+ <string name="action_previous_as_more_key">!hasLabels!,\@string/label_previous_key|!code/key_action_previous</string>
+ <!-- Label for "switch to more symbol" modifier key. Must be short to fit on key! -->
+ <string name="label_to_more_symbol_key">= \\ &lt;</string>
+ <!-- Label for "switch to more symbol" modifier key on tablets. Must be short to fit on key! -->
+ <string name="label_to_more_symbol_for_tablet_key">~ \\ {</string>
+ <!-- Label for "Tab" key. Must be short to fit on key! -->
+ <string name="label_tab_key">Tab</string>
+ <!-- Label for "switch to phone numeric" key. Must be short to fit on key! -->
+ <string name="label_to_phone_numeric_key">123</string>
+ <!-- Label for "switch to phone symbols" key. Must be short to fit on key! -->
+ <!-- U+FF0A: "*" FULLWIDTH ASTERISK
+ U+FF03: "#" FULLWIDTH NUMBER SIGN -->
+ <string name="label_to_phone_symbols_key">&#xFF0A;&#xFF03;</string>
+ <!-- Key label for "ante meridiem" -->
+ <string name="label_time_am">"AM"</string>
+ <!-- Key label for "post meridiem" -->
+ <string name="label_time_pm">"PM"</string>
+ <!-- Label for "switch to symbols" key on PC QWERTY layout -->
+ <string name="label_to_symbol_key_pcqwerty">Sym</string>
+ <string name="keylabel_for_popular_domain">".com"</string>
+ <!-- popular web domains for the locale - most popular, displayed on the keyboard -->
+ <string name="more_keys_for_popular_domain">"!hasLabels!,.net,.org,.gov,.edu"</string>
+ <string name="more_keys_for_smiley">"!fixedColumnOrder!5,!hasLabels!,=-O|=-O ,:-P|:-P ,;-)|;-) ,:-(|:-( ,:-)|:-) ,:-!|:-! ,:-$|:-$ ,B-)|B-) ,:O|:O ,:-*|:-* ,:-D|:-D ,:\'(|:\'( ,:-\\\\|:-\\\\ ,O:-)|O:-) ,:-[|:-[ "</string>
+ <!-- U+2039: "‹" SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+ U+203A: "›" SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+ U+00AB: "«" LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+ U+00BB: "»" RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+ The following characters don't need BIDI mirroring.
+ U+2018: "‘" LEFT SINGLE QUOTATION MARK
+ U+2019: "’" RIGHT SINGLE QUOTATION MARK
+ U+201A: "‚" SINGLE LOW-9 QUOTATION MARK
+ U+201C: "“" LEFT DOUBLE QUOTATION MARK
+ U+201D: "”" RIGHT DOUBLE QUOTATION MARK
+ U+201E: "„" DOUBLE LOW-9 QUOTATION MARK -->
+ <!-- Abbreviations are:
+ laqm: LEFT-POINTING ANGLE QUOTATION MARK
+ raqm: RIGHT-POINTING ANGLE QUOTATION MARK
+ rtl: Right-To-Left script order
+ lqm: LEFT QUOTATION MARK
+ rqm: RIGHT QUOTATION MARK
+ 9qm: LOW-9 QUOTATION MARK -->
+ <!-- The following each quotation mark pair consist of
+ <opening quotation mark>, <closing quotation mark>
+ and is named after (single|double)_<opening quotation mark>_<closing quotation mark>. -->
+ <string name="single_laqm_raqm">&#x2039;,&#x203A;</string>
+ <string name="single_laqm_raqm_rtl">&#x2039;|&#x203A;,&#x203A;|&#x2039;</string>
+ <string name="single_raqm_laqm">&#x203A;,&#x2039;</string>
+ <string name="double_laqm_raqm">&#x00AB;,&#x00BB;</string>
+ <string name="double_laqm_raqm_rtl">&#x00AB;|&#x00BB;,&#x00BB;|&#x00AB;</string>
+ <string name="double_raqm_laqm">&#x00BB;,&#x00AB;</string>
+ <!-- The following each quotation mark triplet consists of
+ <another quotation mark>, <opening quotation mark>, <closing quotation mark>
+ and is named after (single|double)_<opening quotation mark>_<closing quotation mark>. -->
+ <string name="single_lqm_rqm">&#x201A;,&#x2018;,&#x2019;</string>
+ <string name="single_9qm_lqm">&#x2019;,&#x201A;,&#x2018;</string>
+ <string name="single_9qm_rqm">&#x2018;,&#x201A;,&#x2019;</string>
+ <string name="double_lqm_rqm">&#x201E;,&#x201C;,&#x201D;</string>
+ <string name="double_9qm_lqm">&#x201D;,&#x201E;,&#x201C;</string>
+ <string name="double_9qm_rqm">&#x201C;,&#x201E;,&#x201D;</string>
+ <string name="more_keys_for_single_quote">!fixedColumnOrder!5,!text/single_quotes,!text/single_angle_quotes</string>
+ <string name="more_keys_for_double_quote">!fixedColumnOrder!5,!text/double_quotes,!text/double_angle_quotes</string>
+ <string name="more_keys_for_tablet_double_quote">!fixedColumnOrder!6,!text/double_quotes,!text/single_quotes,!text/double_angle_quotes,!text/single_angle_quotes</string>
+</resources>
diff --git a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java
new file mode 100644
index 000000000..331003e67
--- /dev/null
+++ b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/ArrayInitializerFormatter.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.inputmethod.keyboard.tools;
+
+import java.io.PrintStream;
+
+public class ArrayInitializerFormatter {
+ private final PrintStream mOut;
+ private final int mMaxWidth;
+ private final String mIndent;
+
+ private int mCurrentIndex = 0;
+ private String mFixedElement;
+ private final StringBuilder mBuffer = new StringBuilder();
+ private int mBufferedLen;
+ private int mBufferedIndex = Integer.MIN_VALUE;
+
+ public ArrayInitializerFormatter(PrintStream out, int width, String indent) {
+ mOut = out;
+ mMaxWidth = width - indent.length();
+ mIndent = indent;
+ }
+
+ public void flush() {
+ if (mBuffer.length() == 0) {
+ return;
+ }
+ final int lastIndex = mCurrentIndex - 1;
+ if (mBufferedIndex == lastIndex) {
+ mOut.format("%s/* %d */ %s\n", mIndent, mBufferedIndex, mBuffer);
+ } else if (mBufferedIndex == lastIndex - 1) {
+ final String[] elements = mBuffer.toString().split(" ");
+ mOut.format("%s/* %d */ %s\n"
+ + "%s/* %d */ %s\n",
+ mIndent, mBufferedIndex, elements[0],
+ mIndent, lastIndex, elements[1]);
+ } else {
+ mOut.format("%s/* %d~ */\n"
+ + "%s%s\n"
+ + "%s/* ~%d */\n", mIndent, mBufferedIndex,
+ mIndent, mBuffer,
+ mIndent, lastIndex);
+ }
+ mBuffer.setLength(0);
+ mBufferedLen = 0;
+ }
+
+ public void outCommentLines(String lines) {
+ flush();
+ mOut.print(lines);
+ mFixedElement = null;
+ }
+
+ public void outElement(String element) {
+ if (!element.equals(mFixedElement)) {
+ flush();
+ mBufferedIndex = mCurrentIndex;
+ }
+ final int nextLen = mBufferedLen + " ".length() + element.length();
+ if (mBufferedLen != 0 && nextLen < mMaxWidth) {
+ mBuffer.append(' ');
+ mBuffer.append(element);
+ mBufferedLen = nextLen;
+ } else {
+ if (mBufferedLen != 0) {
+ mBuffer.append('\n');
+ mBuffer.append(mIndent);
+ }
+ mBuffer.append(element);
+ mBufferedLen = element.length();
+ }
+ mCurrentIndex++;
+ mFixedElement = element;
+ }
+}
diff --git a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/JarUtils.java b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/JarUtils.java
new file mode 100644
index 000000000..a74096e79
--- /dev/null
+++ b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/JarUtils.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.inputmethod.keyboard.tools;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URL;
+import java.net.URLDecoder;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+public final class JarUtils {
+ private JarUtils() {
+ // This utility class is not publicly instantiable.
+ }
+
+ public static JarFile getJarFile(final Class<?> mainClass) {
+ final String mainClassPath = "/" + mainClass.getName().replace('.', '/') + ".class";
+ final URL resUrl = mainClass.getResource(mainClassPath);
+ if (!resUrl.getProtocol().equals("jar")) {
+ throw new RuntimeException("Should run as jar");
+ }
+ final String path = resUrl.getPath();
+ if (!path.startsWith("file:")) {
+ throw new RuntimeException("Unknown jar path: " + path);
+ }
+ final String jarPath = path.substring("file:".length(), path.indexOf('!'));
+ try {
+ return new JarFile(URLDecoder.decode(jarPath, "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ } catch (IOException e) {
+ }
+ return null;
+ }
+
+ public static InputStream openResource(final String name) {
+ return JarUtils.class.getResourceAsStream("/" + name);
+ }
+
+ public interface JarFilter {
+ public boolean accept(String dirName, String name);
+ }
+
+ public static ArrayList<String> getNameListing(final JarFile jar, final JarFilter filter) {
+ final ArrayList<String> result = new ArrayList<String>();
+ final Enumeration<JarEntry> entries = jar.entries();
+ while (entries.hasMoreElements()) {
+ final JarEntry entry = entries.nextElement();
+ final String path = entry.getName();
+ final int pos = path.lastIndexOf('/');
+ final String dirName = (pos >= 0) ? path.substring(0, pos) : "";
+ final String name = (pos >= 0) ? path.substring(pos + 1) : path;
+ if (filter.accept(dirName, name)) {
+ result.add(path);
+ }
+ }
+ return result;
+ }
+
+ public static ArrayList<String> getNameListing(final JarFile jar, final String filterName) {
+ return getNameListing(jar, new JarFilter() {
+ @Override
+ public boolean accept(final String dirName, final String name) {
+ return name.equals(filterName);
+ }
+ });
+ }
+}
diff --git a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MakeKeyboardText.java b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MakeKeyboardText.java
new file mode 100644
index 000000000..36a03f8dc
--- /dev/null
+++ b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MakeKeyboardText.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.inputmethod.keyboard.tools;
+
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.NoSuchElementException;
+import java.util.jar.JarFile;
+
+public class MakeKeyboardText {
+ static class Options {
+ private static final String OPTION_JAVA = "-java";
+
+ public final String mJava;
+
+ public static void usage(String message) {
+ if (message != null) {
+ System.err.println(message);
+ }
+ System.err.println("usage: make-keyboard-text " + OPTION_JAVA + " <java_output_dir>");
+ System.exit(1);
+ }
+
+ public Options(final String[] argsArray) {
+ final LinkedList<String> args = new LinkedList<String>(Arrays.asList(argsArray));
+ String arg = null;
+ String java = null;
+ try {
+ while (!args.isEmpty()) {
+ arg = args.removeFirst();
+ if (arg.equals(OPTION_JAVA)) {
+ java = args.removeFirst();
+ } else {
+ usage("Unknown option: " + arg);
+ }
+ }
+ } catch (NoSuchElementException e) {
+ usage("Option " + arg + " needs argument");
+ }
+
+ mJava = java;
+ }
+ }
+
+ public static void main(final String[] args) {
+ final Options options = new Options(args);
+ final JarFile jar = JarUtils.getJarFile(MakeKeyboardText.class);
+ final MoreKeysResources resources = new MoreKeysResources(jar);
+ resources.writeToJava(options.mJava);
+ }
+}
diff --git a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java
new file mode 100644
index 000000000..2643e01ec
--- /dev/null
+++ b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/MoreKeysResources.java
@@ -0,0 +1,264 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.inputmethod.keyboard.tools;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+import java.io.PrintStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.jar.JarFile;
+
+public class MoreKeysResources {
+ private static final String TEXT_RESOURCE_NAME = "donottranslate-more-keys.xml";
+
+ private static final String JAVA_TEMPLATE = "KeyboardTextsSet.tmpl";
+ private static final String MARK_NAMES = "@NAMES@";
+ private static final String MARK_DEFAULT_TEXTS = "@DEFAULT_TEXTS@";
+ private static final String MARK_TEXTS = "@TEXTS@";
+ private static final String MARK_LANGUAGES_AND_TEXTS = "@LANGUAGES_AND_TEXTS@";
+ private static final String DEFAUT_LANGUAGE_NAME = "DEFAULT";
+ private static final String ARRAY_NAME_FOR_LANGUAGE = "LANGUAGE_%s";
+ private static final String EMPTY_STRING_VAR = "EMPTY";
+
+ private static final String NO_LANGUAGE_CODE = "zz";
+ private static final String NO_LANGUAGE_DISPLAY_NAME = "Alphabet";
+
+ private final JarFile mJar;
+ // Language to string resources map.
+ private final HashMap<String, StringResourceMap> mResourcesMap =
+ new HashMap<String, StringResourceMap>();
+ // Name to id map.
+ private final HashMap<String, Integer> mNameToIdMap = new HashMap<String,Integer>();
+
+ public MoreKeysResources(final JarFile jar) {
+ mJar = jar;
+ final ArrayList<String> resources = JarUtils.getNameListing(jar, TEXT_RESOURCE_NAME);
+ for (final String name : resources) {
+ final String dirName = name.substring(0, name.lastIndexOf('/'));
+ final int pos = dirName.lastIndexOf('/');
+ final String parentName = (pos >= 0) ? dirName.substring(pos + 1) : dirName;
+ final String language = getLanguageFromResDir(parentName);
+ final InputStream stream = JarUtils.openResource(name);
+ try {
+ mResourcesMap.put(language, new StringResourceMap(stream));
+ } finally {
+ close(stream);
+ }
+ }
+ }
+
+ private static String getLanguageFromResDir(final String dirName) {
+ final int languagePos = dirName.indexOf('-');
+ if (languagePos < 0) {
+ // Default resource.
+ return DEFAUT_LANGUAGE_NAME;
+ }
+ final String language = dirName.substring(languagePos + 1);
+ final int countryPos = language.indexOf("-r");
+ if (countryPos < 0) {
+ return language;
+ }
+ return language.replace("-r", "_");
+ }
+
+ public void writeToJava(final String outDir) {
+ final ArrayList<String> list = JarUtils.getNameListing(mJar, JAVA_TEMPLATE);
+ if (list.isEmpty())
+ throw new RuntimeException("Can't find java template " + JAVA_TEMPLATE);
+ if (list.size() > 1)
+ throw new RuntimeException("Found multiple java template " + JAVA_TEMPLATE);
+ final String template = list.get(0);
+ final String javaPackage = template.substring(0, template.lastIndexOf('/'));
+ PrintStream ps = null;
+ LineNumberReader lnr = null;
+ try {
+ if (outDir == null) {
+ ps = System.out;
+ } else {
+ final File outPackage = new File(outDir, javaPackage);
+ final File outputFile = new File(outPackage,
+ JAVA_TEMPLATE.replace(".tmpl", ".java"));
+ outPackage.mkdirs();
+ ps = new PrintStream(outputFile, "UTF-8");
+ }
+ lnr = new LineNumberReader(new InputStreamReader(JarUtils.openResource(template)));
+ inflateTemplate(lnr, ps);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ } finally {
+ close(lnr);
+ close(ps);
+ }
+ }
+
+ private void inflateTemplate(final LineNumberReader in, final PrintStream out)
+ throws IOException {
+ String line;
+ while ((line = in.readLine()) != null) {
+ if (line.contains(MARK_NAMES)) {
+ dumpNames(out);
+ } else if (line.contains(MARK_DEFAULT_TEXTS)) {
+ dumpDefaultTexts(out);
+ } else if (line.contains(MARK_TEXTS)) {
+ dumpTexts(out);
+ } else if (line.contains(MARK_LANGUAGES_AND_TEXTS)) {
+ dumpLanguageMap(out);
+ } else {
+ out.println(line);
+ }
+ }
+ }
+
+ private void dumpNames(final PrintStream out) {
+ final StringResourceMap defaultResMap = mResourcesMap.get(DEFAUT_LANGUAGE_NAME);
+ int id = 0;
+ for (final StringResource res : defaultResMap.getResources()) {
+ out.format(" /* %2d */ \"%s\",\n", id, res.mName);
+ mNameToIdMap.put(res.mName, id);
+ id++;
+ }
+ }
+
+ private void dumpDefaultTexts(final PrintStream out) {
+ final StringResourceMap defaultResMap = mResourcesMap.get(DEFAUT_LANGUAGE_NAME);
+ dumpTextsInternal(out, defaultResMap, defaultResMap);
+ }
+
+ private void dumpTexts(final PrintStream out) {
+ final StringResourceMap defaultResMap = mResourcesMap.get(DEFAUT_LANGUAGE_NAME);
+ final ArrayList<String> allLanguages = new ArrayList<String>();
+ allLanguages.addAll(mResourcesMap.keySet());
+ Collections.sort(allLanguages);
+ for (final String language : allLanguages) {
+ if (language.equals(DEFAUT_LANGUAGE_NAME)) {
+ continue;
+ }
+ out.format(" /* Language %s: %s */\n", language, getLanguageDisplayName(language));
+ out.format(" private static final String[] " + ARRAY_NAME_FOR_LANGUAGE + " = {\n",
+ language);
+ final StringResourceMap resMap = mResourcesMap.get(language);
+ for (final StringResource res : resMap.getResources()) {
+ if (!defaultResMap.contains(res.mName)) {
+ throw new RuntimeException(res.mName + " in " + language
+ + " doesn't have default resource");
+ }
+ }
+ dumpTextsInternal(out, resMap, defaultResMap);
+ out.format(" };\n\n");
+ }
+ }
+
+ private void dumpLanguageMap(final PrintStream out) {
+ final ArrayList<String> allLanguages = new ArrayList<String>();
+ allLanguages.addAll(mResourcesMap.keySet());
+ Collections.sort(allLanguages);
+ for (final String language : allLanguages) {
+ out.format(" \"%s\", " + ARRAY_NAME_FOR_LANGUAGE + ", /* %s */\n",
+ language, language, getLanguageDisplayName(language));
+ }
+ }
+
+ private static String getLanguageDisplayName(final String language) {
+ if (language.equals(NO_LANGUAGE_CODE)) {
+ return NO_LANGUAGE_DISPLAY_NAME;
+ } else {
+ return new Locale(language).getDisplayLanguage();
+ }
+ }
+
+ private static void dumpTextsInternal(final PrintStream out, final StringResourceMap resMap,
+ final StringResourceMap defaultResMap) {
+ final ArrayInitializerFormatter formatter =
+ new ArrayInitializerFormatter(out, 100, " ");
+ boolean successiveNull = false;
+ for (final StringResource defaultRes : defaultResMap.getResources()) {
+ if (resMap.contains(defaultRes.mName)) {
+ final StringResource res = resMap.get(defaultRes.mName);
+ if (res.mComment != null) {
+ formatter.outCommentLines(addPrefix(" // ", res. mComment));
+ }
+ final String escaped = escapeNonAscii(res.mValue);
+ if (escaped.length() == 0) {
+ formatter.outElement(EMPTY_STRING_VAR + ",");
+ } else {
+ formatter.outElement(String.format("\"%s\",", escaped));
+ }
+ successiveNull = false;
+ } else {
+ formatter.outElement("null,");
+ successiveNull = true;
+ }
+ }
+ if (!successiveNull) {
+ formatter.flush();
+ }
+ }
+
+ private static String addPrefix(final String prefix, final String lines) {
+ final StringBuilder sb = new StringBuilder();
+ for (final String line : lines.split("\n")) {
+ sb.append(prefix + line.trim() + "\n");
+ }
+ return sb.toString();
+ }
+
+ private static String escapeNonAscii(final String text) {
+ final StringBuilder sb = new StringBuilder();
+ final int length = text.length();
+ for (int i = 0; i < length; i++) {
+ final char c = text.charAt(i);
+ if (c >= ' ' && c < 0x7f) {
+ sb.append(c);
+ } else {
+ sb.append(String.format("\\u%04X", (int)c));
+ }
+ }
+ return replaceIncompatibleEscape(sb.toString());
+ }
+
+ private static String replaceIncompatibleEscape(final String text) {
+ String t = text;
+ t = replaceAll(t, "\\?", "?");
+ t = replaceAll(t, "\\@", "@");
+ t = replaceAll(t, "@string/", "!text/");
+ return t;
+ }
+
+ private static String replaceAll(final String text, final String target, final String replace) {
+ String t = text;
+ while (t.indexOf(target) >= 0) {
+ t = t.replace(target, replace);
+ }
+ return t;
+ }
+
+ private static void close(Closeable stream) {
+ try {
+ if (stream != null) {
+ stream.close();
+ }
+ } catch (IOException e) {
+ }
+ }
+}
diff --git a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResource.java b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResource.java
new file mode 100644
index 000000000..a49b8fe70
--- /dev/null
+++ b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResource.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.inputmethod.keyboard.tools;
+
+public class StringResource {
+ public final String mName;
+ public final String mValue;
+ public final String mComment;
+
+ public StringResource(final String name, final String value, final String comment) {
+ mName = name;
+ mValue = value;
+ mComment = comment;
+ }
+}
diff --git a/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java
new file mode 100644
index 000000000..cc7ff6a9c
--- /dev/null
+++ b/tools/make-keyboard-text/src/com/android/inputmethod/keyboard/tools/StringResourceMap.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright (C) 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.
+ */
+
+package com.android.inputmethod.keyboard.tools;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.ext.DefaultHandler2;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+public class StringResourceMap {
+ // String resource list.
+ private final List<StringResource> mResources;
+ // Name to string resource map.
+ private final Map<String, StringResource> mResourcesMap;
+
+ public StringResourceMap(final InputStream is) {
+ final StringResourceHandler handler = new StringResourceHandler();
+ final SAXParserFactory factory = SAXParserFactory.newInstance();
+ factory.setNamespaceAware(true);
+ try {
+ final SAXParser parser = factory.newSAXParser();
+ // In order to get comment tag.
+ parser.setProperty("http://xml.org/sax/properties/lexical-handler", handler);
+ parser.parse(is, handler);
+ } catch (ParserConfigurationException e) {
+ } catch (SAXParseException e) {
+ throw new RuntimeException(e.getMessage() + " at line " + e.getLineNumber()
+ + ", column " + e.getColumnNumber());
+ } catch (SAXException e) {
+ throw new RuntimeException(e.getMessage());
+ } catch (IOException e) {
+ }
+
+ mResources = Collections.unmodifiableList(handler.mResources);
+ final HashMap<String,StringResource> map = new HashMap<String,StringResource>();
+ for (final StringResource res : mResources) {
+ map.put(res.mName, res);
+ }
+ mResourcesMap = map;
+ }
+
+ public List<StringResource> getResources() {
+ return mResources;
+ }
+
+ public boolean contains(final String name) {
+ return mResourcesMap.containsKey(name);
+ }
+
+ public StringResource get(final String name) {
+ return mResourcesMap.get(name);
+ }
+
+ static class StringResourceHandler extends DefaultHandler2 {
+ private static final String TAG_RESOURCES = "resources";
+ private static final String TAG_STRING = "string";
+ private static final String ATTR_NAME = "name";
+
+ final ArrayList<StringResource> mResources = new ArrayList<StringResource>();
+
+ private String mName;
+ private final StringBuilder mValue = new StringBuilder();
+ private final StringBuilder mComment = new StringBuilder();
+
+ private void init() {
+ mName = null;
+ mComment.setLength(0);
+ }
+
+ @Override
+ public void comment(char[] ch, int start, int length) {
+ mComment.append(ch, start, length);
+ if (ch[start + length - 1] != '\n') {
+ mComment.append('\n');
+ }
+ }
+
+ @Override
+ public void startElement(String uri, String localName, String qName, Attributes attr) {
+ if (TAG_RESOURCES.equals(localName)) {
+ init();
+ } else if (TAG_STRING.equals(localName)) {
+ mName = attr.getValue(ATTR_NAME);
+ mValue.setLength(0);
+ }
+ }
+
+ @Override
+ public void characters(char[] ch, int start, int length) {
+ mValue.append(ch, start, length);
+ }
+
+ @Override
+ public void endElement(String uri, String localName, String qName) throws SAXException {
+ if (TAG_STRING.equals(localName)) {
+ if (mName == null)
+ throw new SAXException(TAG_STRING + " doesn't have name");
+ final String comment = mComment.length() > 0 ? mComment.toString() : null;
+ String value = mValue.toString();
+ if (value.startsWith("\"") && value.endsWith("\"")) {
+ // Trim surroundings double quote.
+ value = value.substring(1, value.length() - 1);
+ }
+ mResources.add(new StringResource(mName, value, comment));
+ init();
+ }
+ }
+ }
+}