Merge change 1823 into donut

* changes:
  Add the backup data file writer C++ class.
diff --git a/NOTICE b/NOTICE
index 267a6aa..bb9c5f2 100644
--- a/NOTICE
+++ b/NOTICE
@@ -220,3 +220,54 @@
 
    END OF TERMS AND CONDITIONS
 
+
+
+UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
+
+Unicode Data Files include all data files under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/,
+and http://www.unicode.org/cldr/data/ . Unicode Software includes any
+source code published in the Unicode Standard or under the directories
+http://www.unicode.org/Public/, http://www.unicode.org/reports/, and
+http://www.unicode.org/cldr/data/.
+
+NOTICE TO USER: Carefully read the following legal agreement. BY
+DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA
+FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY
+ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF
+THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY,
+DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright © 1991-2008 Unicode, Inc. All rights reserved. Distributed
+under the Terms of Use in http://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation (the
+"Data Files") or Unicode software and any associated documentation (the
+"Software") to deal in the Data Files or Software without restriction,
+including without limitation the rights to use, copy, modify, merge,
+publish, distribute, and/or sell copies of the Data Files or Software,
+and to permit persons to whom the Data Files or Software are furnished to
+do so, provided that (a) the above copyright notice(s) and this permission
+notice appear with all copies of the Data Files or Software, (b) both the
+above copyright notice(s) and this permission notice appear in associated
+documentation, and (c) there is clear notice in each modified Data File
+or in the Software as well as in the documentation associated with the
+Data File(s) or Software that the data or software has been modified.
+
+THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS
+INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT
+OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
+OR PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in these Data Files or Software without prior written
+authorization of the copyright holder.
diff --git a/cmds/am/am b/cmds/am/am
index a5b13f9..c823634 100755
--- a/cmds/am/am
+++ b/cmds/am/am
@@ -3,5 +3,5 @@
 #
 base=/system
 export CLASSPATH=$base/framework/am.jar
-exec app_process $base/bin com.android.commands.am.Am $*
+exec app_process $base/bin com.android.commands.am.Am "$@"
 
diff --git a/core/java/android/app/DatePickerDialog.java b/core/java/android/app/DatePickerDialog.java
index 863cbcc..78bbb4f 100644
--- a/core/java/android/app/DatePickerDialog.java
+++ b/core/java/android/app/DatePickerDialog.java
@@ -46,7 +46,6 @@
     private final DatePicker mDatePicker;
     private final OnDateSetListener mCallBack;
     private final Calendar mCalendar;
-    private final java.text.DateFormat mDateFormat;
     private final java.text.DateFormat mTitleDateFormat;
     private final String[] mWeekDays;
 
@@ -108,7 +107,6 @@
         DateFormatSymbols symbols = new DateFormatSymbols();
         mWeekDays = symbols.getShortWeekdays();
         
-        mDateFormat = DateFormat.getMediumDateFormat(context);
         mTitleDateFormat = java.text.DateFormat.
                                 getDateInstance(java.text.DateFormat.FULL);
         mCalendar = Calendar.getInstance();
diff --git a/core/java/android/pim/EventRecurrence.java b/core/java/android/pim/EventRecurrence.java
index edf69ee..3ea9b4a 100644
--- a/core/java/android/pim/EventRecurrence.java
+++ b/core/java/android/pim/EventRecurrence.java
@@ -408,13 +408,13 @@
     
     private String dayToString(Resources r, int day) {
         switch (day) {
-        case SU: return r.getString(com.android.internal.R.string.sunday);
-        case MO: return r.getString(com.android.internal.R.string.monday);
-        case TU: return r.getString(com.android.internal.R.string.tuesday);
-        case WE: return r.getString(com.android.internal.R.string.wednesday);
-        case TH: return r.getString(com.android.internal.R.string.thursday);
-        case FR: return r.getString(com.android.internal.R.string.friday);
-        case SA: return r.getString(com.android.internal.R.string.saturday);
+        case SU: return r.getString(com.android.internal.R.string.day_of_week_long_sunday);
+        case MO: return r.getString(com.android.internal.R.string.day_of_week_long_monday);
+        case TU: return r.getString(com.android.internal.R.string.day_of_week_long_tuesday);
+        case WE: return r.getString(com.android.internal.R.string.day_of_week_long_wednesday);
+        case TH: return r.getString(com.android.internal.R.string.day_of_week_long_thursday);
+        case FR: return r.getString(com.android.internal.R.string.day_of_week_long_friday);
+        case SA: return r.getString(com.android.internal.R.string.day_of_week_long_saturday);
         default: throw new IllegalArgumentException("bad day argument: " + day);
         }
     }
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 14ef810..ed5520d 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -2171,6 +2171,13 @@
         public static final String CHANGED_ACTION =
             "com.google.gservices.intent.action.GSERVICES_CHANGED";
 
+        /**
+         * Intent action to override Gservices for testing.  (Requires WRITE_GSERVICES permission.)
+         */
+        @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
+        public static final String OVERRIDE_ACTION =
+            "com.google.gservices.intent.action.GSERVICES_OVERRIDE";
+
         private static volatile NameValueCache mNameValueCache = null;
         private static final Object mNameValueCacheLock = new Object();
 
@@ -3258,4 +3265,3 @@
         return "android-" + Long.toHexString(androidId);
     }
 }
-
diff --git a/core/java/android/text/format/DateFormat.java b/core/java/android/text/format/DateFormat.java
index 0dc96c3..3156d8b 100644
--- a/core/java/android/text/format/DateFormat.java
+++ b/core/java/android/text/format/DateFormat.java
@@ -242,64 +242,48 @@
 
     /**
      * Returns a {@link java.text.DateFormat} object that can format the time according
-     * to the current user preference. 
+     * to the current locale. 
      * @param context the application context
      * @return the {@link java.text.DateFormat} object that properly formats the time.
      */
     public static final java.text.DateFormat getTimeFormat(Context context) {
-        boolean b24 = is24HourFormat(context);
-        int res;
-
-        if (b24) {
-            res = R.string.twenty_four_hour_time_format;
-        } else {
-            res = R.string.twelve_hour_time_format;
-        }
-
-        return new java.text.SimpleDateFormat(context.getString(res));
+        return java.text.DateFormat.getTimeInstance(java.text.DateFormat.SHORT);
     }
 
     /**
-     * Returns a {@link java.text.DateFormat} object that can format the date according
-     * to the current user preference.
+     * Returns a {@link java.text.DateFormat} object that can format the date 
+     * in short form (such as 12/31/1999) according
+     * to the current locale.
      * @param context the application context
      * @return the {@link java.text.DateFormat} object that properly formats the date.
      */
     public static final java.text.DateFormat getDateFormat(Context context) {
-        String value = getDateFormatString(context);
+        /*
+         * We use a resource string here instead of just DateFormat.SHORT
+         * so that we get a four-digit year instead a two-digit year.
+         */
+        String value = context.getString(R.string.numeric_date_format);
         return new java.text.SimpleDateFormat(value);
     }
     
     /**
      * Returns a {@link java.text.DateFormat} object that can format the date
-     * in long form (such as December 31, 1999) based on user preference.
+     * in long form (such as December 31, 1999) for the current locale.
      * @param context the application context
      * @return the {@link java.text.DateFormat} object that formats the date in long form.
      */
     public static final java.text.DateFormat getLongDateFormat(Context context) {
-        String value = getDateFormatString(context);
-        if (value.indexOf('M') < value.indexOf('d')) {
-            value = context.getString(R.string.full_date_month_first);
-        } else {
-            value = context.getString(R.string.full_date_day_first);
-        }
-        return new java.text.SimpleDateFormat(value);
+        return java.text.DateFormat.getDateInstance(java.text.DateFormat.LONG);
     }
 
     /**
      * Returns a {@link java.text.DateFormat} object that can format the date
-     * in medium form (such as Dec. 31, 1999) based on user preference.
+     * in medium form (such as Dec. 31, 1999) for the current locale.
      * @param context the application context
      * @return the {@link java.text.DateFormat} object that formats the date in long form.
      */
     public static final java.text.DateFormat getMediumDateFormat(Context context) {
-        String value = getDateFormatString(context);
-        if (value.indexOf('M') < value.indexOf('d')) {
-            value = context.getString(R.string.medium_date_month_first);
-        } else {
-            value = context.getString(R.string.medium_date_day_first);
-        }
-        return new java.text.SimpleDateFormat(value);
+        return java.text.DateFormat.getDateInstance(java.text.DateFormat.MEDIUM);
     }
 
     /**
@@ -338,6 +322,12 @@
     }
     
     private static String getDateFormatString(Context context) {
+        java.text.DateFormat df;
+        df = java.text.DateFormat.getDateInstance(java.text.DateFormat.SHORT);
+        if (df instanceof SimpleDateFormat) {
+            return ((SimpleDateFormat) df).toPattern();
+        }
+
         String value = Settings.System.getString(context.getContentResolver(),
                 Settings.System.DATE_FORMAT);
         if (value == null || value.length() < 6) {
diff --git a/core/java/android/text/format/DateUtils.java b/core/java/android/text/format/DateUtils.java
index 8a7cdd9..9073d82 100644
--- a/core/java/android/text/format/DateUtils.java
+++ b/core/java/android/text/format/DateUtils.java
@@ -62,15 +62,6 @@
             com.android.internal.R.string.day_of_week_short_friday,
             com.android.internal.R.string.day_of_week_short_saturday,
         };
-    private static final int[] sDaysShorter = new int[] {
-            com.android.internal.R.string.day_of_week_shorter_sunday,
-            com.android.internal.R.string.day_of_week_shorter_monday,
-            com.android.internal.R.string.day_of_week_shorter_tuesday,
-            com.android.internal.R.string.day_of_week_shorter_wednesday,
-            com.android.internal.R.string.day_of_week_shorter_thursday,
-            com.android.internal.R.string.day_of_week_shorter_friday,
-            com.android.internal.R.string.day_of_week_shorter_saturday,
-        };
     private static final int[] sDaysShortest = new int[] {
             com.android.internal.R.string.day_of_week_shortest_sunday,
             com.android.internal.R.string.day_of_week_shortest_monday,
@@ -80,6 +71,20 @@
             com.android.internal.R.string.day_of_week_shortest_friday,
             com.android.internal.R.string.day_of_week_shortest_saturday,
         };
+    private static final int[] sMonthsStandaloneLong = new int [] {
+            com.android.internal.R.string.month_long_standalone_january,
+            com.android.internal.R.string.month_long_standalone_february,
+            com.android.internal.R.string.month_long_standalone_march,
+            com.android.internal.R.string.month_long_standalone_april,
+            com.android.internal.R.string.month_long_standalone_may,
+            com.android.internal.R.string.month_long_standalone_june,
+            com.android.internal.R.string.month_long_standalone_july,
+            com.android.internal.R.string.month_long_standalone_august,
+            com.android.internal.R.string.month_long_standalone_september,
+            com.android.internal.R.string.month_long_standalone_october,
+            com.android.internal.R.string.month_long_standalone_november,
+            com.android.internal.R.string.month_long_standalone_december,
+        };
     private static final int[] sMonthsLong = new int [] {
             com.android.internal.R.string.month_long_january,
             com.android.internal.R.string.month_long_february,
@@ -127,7 +132,7 @@
             com.android.internal.R.string.pm,
         };
     private static Configuration sLastConfig;
-    private static String sStatusTimeFormat;
+    private static java.text.DateFormat sStatusTimeFormat;
     private static String sElapsedFormatMMSS;
     private static String sElapsedFormatHMMSS;
     
@@ -255,18 +260,15 @@
      * For use with the 'abbrev' parameter of {@link #getDayOfWeekString} and {@link #getMonthString}.
      * @more
      * <p>e.g. "Su" or "Jan"
-     * <p>In some languages, the results returned for LENGTH_SHORT may be the same as
-     * return for {@link #LENGTH_MEDIUM}.
+     * <p>In most languages, the results returned for LENGTH_SHORT will be the same as
+     * the results returned for {@link #LENGTH_MEDIUM}.
      */
     public static final int LENGTH_SHORT = 30;
 
     /**
      * Request an even shorter abbreviated version of the name.
-     * For use with the 'abbrev' parameter of {@link #getDayOfWeekString} and {@link #getMonthString}.
-     * @more
-     * <p>e.g. "M", "Tu", "Th" or "J"
-     * <p>In some languages, the results returned for LENGTH_SHORTEST may be the same as
-     * return for {@link #LENGTH_SHORTER}.
+     * Do not use this.  Currently this will always return the same result
+     * as {@link #LENGTH_SHORT}.
      */
     public static final int LENGTH_SHORTER = 40;
 
@@ -275,8 +277,8 @@
      * For use with the 'abbrev' parameter of {@link #getDayOfWeekString} and {@link #getMonthString}.
      * @more
      * <p>e.g. "S", "T", "T" or "J"
-     * <p>In some languages, the results returned for LENGTH_SHORTEST may be the same as
-     * return for {@link #LENGTH_SHORTER}.
+     * <p>In some languages, the results returned for LENGTH_SHORTEST will be the same as
+     * the results returned for {@link #LENGTH_SHORT}.
      */
     public static final int LENGTH_SHORTEST = 50;
 
@@ -284,9 +286,12 @@
      * Return a string for the day of the week.
      * @param dayOfWeek One of {@link Calendar#SUNDAY Calendar.SUNDAY},
      *               {@link Calendar#MONDAY Calendar.MONDAY}, etc.
-     * @param abbrev One of {@link #LENGTH_LONG}, {@link #LENGTH_SHORT}, {@link #LENGTH_SHORTER}
-     *               or {@link #LENGTH_SHORTEST}.  For forward compatibility, anything else
-     *               will return the same as {#LENGTH_MEDIUM}.
+     * @param abbrev One of {@link #LENGTH_LONG}, {@link #LENGTH_SHORT},
+     *               {@link #LENGTH_MEDIUM}, or {@link #LENGTH_SHORTEST}.
+     *               Note that in most languages, {@link #LENGTH_SHORT}
+     *               will return the same as {@link #LENGTH_MEDIUM}.
+     *               Undefined lengths will return {@link #LENGTH_MEDIUM}
+     *               but may return something different in the future.
      * @throws IndexOutOfBoundsException if the dayOfWeek is out of bounds.
      */
     public static String getDayOfWeekString(int dayOfWeek, int abbrev) {
@@ -295,7 +300,7 @@
             case LENGTH_LONG:       list = sDaysLong;       break;
             case LENGTH_MEDIUM:     list = sDaysMedium;     break;
             case LENGTH_SHORT:      list = sDaysShort;      break;
-            case LENGTH_SHORTER:    list = sDaysShorter;    break;
+            case LENGTH_SHORTER:    list = sDaysShort;      break;
             case LENGTH_SHORTEST:   list = sDaysShortest;   break;
             default:                list = sDaysMedium;     break;
         }
@@ -316,13 +321,14 @@
     }
 
     /**
-     * Return a localized string for the day of the week.
+     * Return a localized string for the month of the year.
      * @param month One of {@link Calendar#JANUARY Calendar.JANUARY},
      *               {@link Calendar#FEBRUARY Calendar.FEBRUARY}, etc.
-     * @param abbrev One of {@link #LENGTH_LONG}, {@link #LENGTH_SHORT}, {@link #LENGTH_SHORTER}
-     *               or {@link #LENGTH_SHORTEST}.  For forward compatibility, anything else
-     *               will return the same as {#LENGTH_MEDIUM}.
-     * @return Localized day of the week.
+     * @param abbrev One of {@link #LENGTH_LONG}, {@link #LENGTH_MEDIUM},
+     *               or {@link #LENGTH_SHORTEST}.
+     *               Undefined lengths will return {@link #LENGTH_MEDIUM}
+     *               but may return something different in the future.
+     * @return Localized month of the year.
      */
     public static String getMonthString(int month, int abbrev) {
         // Note that here we use sMonthsMedium for MEDIUM, SHORT and SHORTER. 
@@ -344,6 +350,40 @@
     }
 
     /**
+     * Return a localized string for the month of the year, for
+     * contexts where the month is not formatted together with
+     * a day of the month.
+     *
+     * @param month One of {@link Calendar#JANUARY Calendar.JANUARY},
+     *               {@link Calendar#FEBRUARY Calendar.FEBRUARY}, etc.
+     * @param abbrev One of {@link #LENGTH_LONG}, {@link #LENGTH_MEDIUM},
+     *               or {@link #LENGTH_SHORTEST}.
+     *               Undefined lengths will return {@link #LENGTH_MEDIUM}
+     *               but may return something different in the future.
+     * @return Localized month of the year.
+     * @hide Pending API council approval
+     */
+    public static String getStandaloneMonthString(int month, int abbrev) {
+        // Note that here we use sMonthsMedium for MEDIUM, SHORT and SHORTER. 
+        // This is a shortcut to not spam the translators with too many variations
+        // of the same string.  If we find that in a language the distinction
+        // is necessary, we can can add more without changing this API.
+        int[] list;
+        switch (abbrev) {
+            case LENGTH_LONG:       list = sMonthsStandaloneLong;
+                                                            break;
+            case LENGTH_MEDIUM:     list = sMonthsMedium;   break;
+            case LENGTH_SHORT:      list = sMonthsMedium;   break;
+            case LENGTH_SHORTER:    list = sMonthsMedium;   break;
+            case LENGTH_SHORTEST:   list = sMonthsShortest; break;
+            default:                list = sMonthsMedium;   break;
+        }
+
+        Resources r = Resources.getSystem();
+        return r.getString(list[month - Calendar.JANUARY]);
+    }
+
+    /**
      * Returns a string describing the elapsed time since startTime.
      * @param startTime some time in the past.
      * @return a String object containing the elapsed time.
@@ -572,7 +612,7 @@
             Configuration cfg = r.getConfiguration();
             if (sLastConfig == null || !sLastConfig.equals(cfg)) {
                 sLastConfig = cfg;
-                sStatusTimeFormat = r.getString(com.android.internal.R.string.status_bar_time_format);
+                sStatusTimeFormat = java.text.DateFormat.getTimeInstance(java.text.DateFormat.SHORT);
                 sElapsedFormatMMSS = r.getString(com.android.internal.R.string.elapsed_time_short_format_mm_ss);
                 sElapsedFormatHMMSS = r.getString(com.android.internal.R.string.elapsed_time_short_format_h_mm_ss);
             }
@@ -586,7 +626,7 @@
      */
     public static final CharSequence timeString(long millis) {
         initFormatStrings();
-        return DateFormat.format(sStatusTimeFormat, millis);
+        return sStatusTimeFormat.format(millis);
     }
 
     /**
diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java
index 8f12355..8eae111 100644
--- a/core/java/android/text/format/Time.java
+++ b/core/java/android/text/format/Time.java
@@ -135,6 +135,7 @@
     private static Locale sLocale;
     private static String[] sShortMonths;
     private static String[] sLongMonths;
+    private static String[] sLongStandaloneMonths;
     private static String[] sShortWeekdays;
     private static String[] sLongWeekdays;
     private static String sTimeOnlyFormat;
@@ -321,6 +322,20 @@
                     r.getString(com.android.internal.R.string.month_long_november),
                     r.getString(com.android.internal.R.string.month_long_december),
                 };
+                sLongStandaloneMonths = new String[] {
+                    r.getString(com.android.internal.R.string.month_long_standalone_january),
+                    r.getString(com.android.internal.R.string.month_long_standalone_february),
+                    r.getString(com.android.internal.R.string.month_long_standalone_march),
+                    r.getString(com.android.internal.R.string.month_long_standalone_april),
+                    r.getString(com.android.internal.R.string.month_long_standalone_may),
+                    r.getString(com.android.internal.R.string.month_long_standalone_june),
+                    r.getString(com.android.internal.R.string.month_long_standalone_july),
+                    r.getString(com.android.internal.R.string.month_long_standalone_august),
+                    r.getString(com.android.internal.R.string.month_long_standalone_september),
+                    r.getString(com.android.internal.R.string.month_long_standalone_october),
+                    r.getString(com.android.internal.R.string.month_long_standalone_november),
+                    r.getString(com.android.internal.R.string.month_long_standalone_december),
+                };
                 sShortWeekdays = new String[] {
                     r.getString(com.android.internal.R.string.day_of_week_medium_sunday),
                     r.getString(com.android.internal.R.string.day_of_week_medium_monday),
diff --git a/core/jni/android_text_format_Time.cpp b/core/jni/android_text_format_Time.cpp
index 923e1aa..7c208e9 100644
--- a/core/jni/android_text_format_Time.cpp
+++ b/core/jni/android_text_format_Time.cpp
@@ -44,6 +44,7 @@
 
 static jfieldID g_shortMonthsField = 0;
 static jfieldID g_longMonthsField = 0;
+static jfieldID g_longStandaloneMonthsField = 0;
 static jfieldID g_shortWeekdaysField = 0;
 static jfieldID g_longWeekdaysField = 0;
 static jfieldID g_timeOnlyFormatField = 0;
@@ -193,6 +194,7 @@
     static jobject js_locale_previous = NULL;
     static struct strftime_locale locale;
     static jstring js_mon[12], js_month[12], js_wday[7], js_weekday[7];
+    static jstring js_standalone_month[12];
     static jstring js_X_fmt, js_x_fmt, js_c_fmt, js_am, js_pm, js_date_fmt;
 
     Time t;
@@ -206,8 +208,10 @@
             for (int i = 0; i < 12; i++) {
                 env->ReleaseStringUTFChars(js_mon[i], locale.mon[i]);
                 env->ReleaseStringUTFChars(js_month[i], locale.month[i]);
+                env->ReleaseStringUTFChars(js_standalone_month[i], locale.standalone_month[i]);
                 env->DeleteGlobalRef(js_mon[i]);
                 env->DeleteGlobalRef(js_month[i]);
+                env->DeleteGlobalRef(js_standalone_month[i]);
             }
 
             for (int i = 0; i < 7; i++) {
@@ -245,6 +249,12 @@
             locale.month[i] = env->GetStringUTFChars(js_month[i], NULL);
         }
 
+        ja = (jobjectArray) env->GetStaticObjectField(timeClass, g_longStandaloneMonthsField);
+        for (int i = 0; i < 12; i++) {
+            js_standalone_month[i] = (jstring) env->NewGlobalRef(env->GetObjectArrayElement(ja, i));
+            locale.standalone_month[i] = env->GetStringUTFChars(js_standalone_month[i], NULL);
+        }
+
         ja = (jobjectArray) env->GetStaticObjectField(timeClass, g_shortWeekdaysField);
         for (int i = 0; i < 7; i++) {
             js_wday[i] = (jstring) env->NewGlobalRef(env->GetObjectArrayElement(ja, i));
@@ -639,6 +649,7 @@
 
     g_shortMonthsField = env->GetStaticFieldID(timeClass, "sShortMonths", "[Ljava/lang/String;");
     g_longMonthsField = env->GetStaticFieldID(timeClass, "sLongMonths", "[Ljava/lang/String;");
+    g_longStandaloneMonthsField = env->GetStaticFieldID(timeClass, "sLongStandaloneMonths", "[Ljava/lang/String;");
     g_shortWeekdaysField = env->GetStaticFieldID(timeClass, "sShortWeekdays", "[Ljava/lang/String;");
     g_longWeekdaysField = env->GetStaticFieldID(timeClass, "sLongWeekdays", "[Ljava/lang/String;");
     g_timeOnlyFormatField = env->GetStaticFieldID(timeClass, "sTimeOnlyFormat", "Ljava/lang/String;");
diff --git a/core/res/res/values-ar-rEG/donottranslate-cldr.xml b/core/res/res/values-ar-rEG/donottranslate-cldr.xml
new file mode 100644
index 0000000..1bbbdca
--- /dev/null
+++ b/core/res/res/values-ar-rEG/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">يناير</string>
+    <string name="month_long_standalone_february">فبراير</string>
+    <string name="month_long_standalone_march">مارس</string>
+    <string name="month_long_standalone_april">أبريل</string>
+    <string name="month_long_standalone_may">مايو</string>
+    <string name="month_long_standalone_june">يونيو</string>
+    <string name="month_long_standalone_july">يوليو</string>
+    <string name="month_long_standalone_august">أغسطس</string>
+    <string name="month_long_standalone_september">سبتمبر</string>
+    <string name="month_long_standalone_october">أكتوبر</string>
+    <string name="month_long_standalone_november">نوفمبر</string>
+    <string name="month_long_standalone_december">ديسمبر</string>
+
+    <string name="month_long_january">يناير</string>
+    <string name="month_long_february">فبراير</string>
+    <string name="month_long_march">مارس</string>
+    <string name="month_long_april">أبريل</string>
+    <string name="month_long_may">مايو</string>
+    <string name="month_long_june">يونيو</string>
+    <string name="month_long_july">يوليو</string>
+    <string name="month_long_august">أغسطس</string>
+    <string name="month_long_september">سبتمبر</string>
+    <string name="month_long_october">أكتوبر</string>
+    <string name="month_long_november">نوفمبر</string>
+    <string name="month_long_december">ديسمبر</string>
+
+    <string name="month_medium_january">يناير</string>
+    <string name="month_medium_february">فبراير</string>
+    <string name="month_medium_march">مارس</string>
+    <string name="month_medium_april">أبريل</string>
+    <string name="month_medium_may">مايو</string>
+    <string name="month_medium_june">يونيو</string>
+    <string name="month_medium_july">يوليو</string>
+    <string name="month_medium_august">أغسطس</string>
+    <string name="month_medium_september">سبتمبر</string>
+    <string name="month_medium_october">أكتوبر</string>
+    <string name="month_medium_november">نوفمبر</string>
+    <string name="month_medium_december">ديسمبر</string>
+
+    <string name="month_shortest_january">ي</string>
+    <string name="month_shortest_february">ف</string>
+    <string name="month_shortest_march">م</string>
+    <string name="month_shortest_april">أ</string>
+    <string name="month_shortest_may">و</string>
+    <string name="month_shortest_june">ن</string>
+    <string name="month_shortest_july">ل</string>
+    <string name="month_shortest_august">غ</string>
+    <string name="month_shortest_september">س</string>
+    <string name="month_shortest_october">ك</string>
+    <string name="month_shortest_november">ب</string>
+    <string name="month_shortest_december">د</string>
+
+    <string name="day_of_week_long_sunday">الأحد</string>
+    <string name="day_of_week_long_monday">الإثنين</string>
+    <string name="day_of_week_long_tuesday">الثلاثاء</string>
+    <string name="day_of_week_long_wednesday">الأربعاء</string>
+    <string name="day_of_week_long_thursday">الخميس</string>
+    <string name="day_of_week_long_friday">الجمعة</string>
+    <string name="day_of_week_long_saturday">السبت</string>
+
+    <string name="day_of_week_medium_sunday">أحد</string>
+    <string name="day_of_week_medium_monday">إثنين</string>
+    <string name="day_of_week_medium_tuesday">ثلاثاء</string>
+    <string name="day_of_week_medium_wednesday">أربعاء</string>
+    <string name="day_of_week_medium_thursday">خميس</string>
+    <string name="day_of_week_medium_friday">جمعة</string>
+    <string name="day_of_week_medium_saturday">سبت</string>
+
+    <string name="day_of_week_short_sunday">أحد</string>
+    <string name="day_of_week_short_monday">إثنين</string>
+    <string name="day_of_week_short_tuesday">ثلاثاء</string>
+    <string name="day_of_week_short_wednesday">أربعاء</string>
+    <string name="day_of_week_short_thursday">خميس</string>
+    <string name="day_of_week_short_friday">جمعة</string>
+    <string name="day_of_week_short_saturday">سبت</string>
+
+    <string name="day_of_week_shortest_sunday">ح</string>
+    <string name="day_of_week_shortest_monday">ن</string>
+    <string name="day_of_week_shortest_tuesday">ث</string>
+    <string name="day_of_week_shortest_wednesday">ر</string>
+    <string name="day_of_week_shortest_thursday">خ</string>
+    <string name="day_of_week_shortest_friday">ج</string>
+    <string name="day_of_week_shortest_saturday">س</string>
+
+    <string name="am">ص</string>
+    <string name="pm">م</string>
+    <string name="yesterday">أمس</string>
+    <string name="today">اليوم</string>
+    <string name="tomorrow">غدًا</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%-e‏/%-m‏/%Y</string>
+    <string name="numeric_date_format">d‏/M‏/yyyy</string>
+    <string name="month_day_year">%-e %B، %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %d‏/%m‏/%Y</string>
+    <string name="abbrev_month_day_year">%d‏/%m‏/%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-bg-rBG/donottranslate-cldr.xml b/core/res/res/values-bg-rBG/donottranslate-cldr.xml
new file mode 100644
index 0000000..608b3a7
--- /dev/null
+++ b/core/res/res/values-bg-rBG/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">януари</string>
+    <string name="month_long_standalone_february">февруари</string>
+    <string name="month_long_standalone_march">март</string>
+    <string name="month_long_standalone_april">април</string>
+    <string name="month_long_standalone_may">май</string>
+    <string name="month_long_standalone_june">юни</string>
+    <string name="month_long_standalone_july">юли</string>
+    <string name="month_long_standalone_august">август</string>
+    <string name="month_long_standalone_september">септември</string>
+    <string name="month_long_standalone_october">октомври</string>
+    <string name="month_long_standalone_november">ноември</string>
+    <string name="month_long_standalone_december">декември</string>
+
+    <string name="month_long_january">януари</string>
+    <string name="month_long_february">февруари</string>
+    <string name="month_long_march">март</string>
+    <string name="month_long_april">април</string>
+    <string name="month_long_may">май</string>
+    <string name="month_long_june">юни</string>
+    <string name="month_long_july">юли</string>
+    <string name="month_long_august">август</string>
+    <string name="month_long_september">септември</string>
+    <string name="month_long_october">октомври</string>
+    <string name="month_long_november">ноември</string>
+    <string name="month_long_december">декември</string>
+
+    <string name="month_medium_january">ян.</string>
+    <string name="month_medium_february">февр.</string>
+    <string name="month_medium_march">март</string>
+    <string name="month_medium_april">апр.</string>
+    <string name="month_medium_may">май</string>
+    <string name="month_medium_june">юни</string>
+    <string name="month_medium_july">юли</string>
+    <string name="month_medium_august">авг.</string>
+    <string name="month_medium_september">септ.</string>
+    <string name="month_medium_october">окт.</string>
+    <string name="month_medium_november">ноем.</string>
+    <string name="month_medium_december">дек.</string>
+
+    <string name="month_shortest_january">я</string>
+    <string name="month_shortest_february">ф</string>
+    <string name="month_shortest_march">м</string>
+    <string name="month_shortest_april">а</string>
+    <string name="month_shortest_may">м</string>
+    <string name="month_shortest_june">ю</string>
+    <string name="month_shortest_july">ю</string>
+    <string name="month_shortest_august">а</string>
+    <string name="month_shortest_september">с</string>
+    <string name="month_shortest_october">о</string>
+    <string name="month_shortest_november">н</string>
+    <string name="month_shortest_december">д</string>
+
+    <string name="day_of_week_long_sunday">неделя</string>
+    <string name="day_of_week_long_monday">понеделник</string>
+    <string name="day_of_week_long_tuesday">вторник</string>
+    <string name="day_of_week_long_wednesday">сряда</string>
+    <string name="day_of_week_long_thursday">четвъртък</string>
+    <string name="day_of_week_long_friday">петък</string>
+    <string name="day_of_week_long_saturday">събота</string>
+
+    <string name="day_of_week_medium_sunday">нд</string>
+    <string name="day_of_week_medium_monday">пн</string>
+    <string name="day_of_week_medium_tuesday">вт</string>
+    <string name="day_of_week_medium_wednesday">ср</string>
+    <string name="day_of_week_medium_thursday">чт</string>
+    <string name="day_of_week_medium_friday">пт</string>
+    <string name="day_of_week_medium_saturday">сб</string>
+
+    <string name="day_of_week_short_sunday">нд</string>
+    <string name="day_of_week_short_monday">пн</string>
+    <string name="day_of_week_short_tuesday">вт</string>
+    <string name="day_of_week_short_wednesday">ср</string>
+    <string name="day_of_week_short_thursday">чт</string>
+    <string name="day_of_week_short_friday">пт</string>
+    <string name="day_of_week_short_saturday">сб</string>
+
+    <string name="day_of_week_shortest_sunday">н</string>
+    <string name="day_of_week_shortest_monday">п</string>
+    <string name="day_of_week_shortest_tuesday">в</string>
+    <string name="day_of_week_shortest_wednesday">с</string>
+    <string name="day_of_week_shortest_thursday">ч</string>
+    <string name="day_of_week_shortest_friday">п</string>
+    <string name="day_of_week_shortest_saturday">с</string>
+
+    <string name="am">пр. об.</string>
+    <string name="pm">сл. об.</string>
+    <string name="yesterday">Вчера</string>
+    <string name="today">Днес</string>
+    <string name="tomorrow">Утре</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%d %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d.%m.%Y</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-ca-rES/donottranslate-cldr.xml b/core/res/res/values-ca-rES/donottranslate-cldr.xml
new file mode 100644
index 0000000..6ed2a88
--- /dev/null
+++ b/core/res/res/values-ca-rES/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">gener</string>
+    <string name="month_long_standalone_february">febrer</string>
+    <string name="month_long_standalone_march">març</string>
+    <string name="month_long_standalone_april">abril</string>
+    <string name="month_long_standalone_may">maig</string>
+    <string name="month_long_standalone_june">juny</string>
+    <string name="month_long_standalone_july">juliol</string>
+    <string name="month_long_standalone_august">agost</string>
+    <string name="month_long_standalone_september">setembre</string>
+    <string name="month_long_standalone_october">octubre</string>
+    <string name="month_long_standalone_november">novembre</string>
+    <string name="month_long_standalone_december">desembre</string>
+
+    <string name="month_long_january">gener</string>
+    <string name="month_long_february">febrer</string>
+    <string name="month_long_march">març</string>
+    <string name="month_long_april">abril</string>
+    <string name="month_long_may">maig</string>
+    <string name="month_long_june">juny</string>
+    <string name="month_long_july">juliol</string>
+    <string name="month_long_august">agost</string>
+    <string name="month_long_september">setembre</string>
+    <string name="month_long_october">octubre</string>
+    <string name="month_long_november">novembre</string>
+    <string name="month_long_december">desembre</string>
+
+    <string name="month_medium_january">gen.</string>
+    <string name="month_medium_february">febr.</string>
+    <string name="month_medium_march">març</string>
+    <string name="month_medium_april">abr.</string>
+    <string name="month_medium_may">maig</string>
+    <string name="month_medium_june">juny</string>
+    <string name="month_medium_july">jul.</string>
+    <string name="month_medium_august">ag.</string>
+    <string name="month_medium_september">set.</string>
+    <string name="month_medium_october">oct.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">des.</string>
+
+    <string name="month_shortest_january">g</string>
+    <string name="month_shortest_february">f</string>
+    <string name="month_shortest_march">m</string>
+    <string name="month_shortest_april">a</string>
+    <string name="month_shortest_may">m</string>
+    <string name="month_shortest_june">j</string>
+    <string name="month_shortest_july">j</string>
+    <string name="month_shortest_august">a</string>
+    <string name="month_shortest_september">s</string>
+    <string name="month_shortest_october">o</string>
+    <string name="month_shortest_november">n</string>
+    <string name="month_shortest_december">d</string>
+
+    <string name="day_of_week_long_sunday">diumenge</string>
+    <string name="day_of_week_long_monday">dilluns</string>
+    <string name="day_of_week_long_tuesday">dimarts</string>
+    <string name="day_of_week_long_wednesday">dimecres</string>
+    <string name="day_of_week_long_thursday">dijous</string>
+    <string name="day_of_week_long_friday">divendres</string>
+    <string name="day_of_week_long_saturday">dissabte</string>
+
+    <string name="day_of_week_medium_sunday">dg.</string>
+    <string name="day_of_week_medium_monday">dl.</string>
+    <string name="day_of_week_medium_tuesday">dt.</string>
+    <string name="day_of_week_medium_wednesday">dc.</string>
+    <string name="day_of_week_medium_thursday">dj.</string>
+    <string name="day_of_week_medium_friday">dv.</string>
+    <string name="day_of_week_medium_saturday">ds.</string>
+
+    <string name="day_of_week_short_sunday">dg.</string>
+    <string name="day_of_week_short_monday">dl.</string>
+    <string name="day_of_week_short_tuesday">dt.</string>
+    <string name="day_of_week_short_wednesday">dc.</string>
+    <string name="day_of_week_short_thursday">dj.</string>
+    <string name="day_of_week_short_friday">dv.</string>
+    <string name="day_of_week_short_saturday">ds.</string>
+
+    <string name="day_of_week_shortest_sunday">g</string>
+    <string name="day_of_week_shortest_monday">l</string>
+    <string name="day_of_week_shortest_tuesday">t</string>
+    <string name="day_of_week_shortest_wednesday">c</string>
+    <string name="day_of_week_shortest_thursday">j</string>
+    <string name="day_of_week_shortest_friday">v</string>
+    <string name="day_of_week_shortest_saturday">s</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">ahir</string>
+    <string name="today">avui</string>
+    <string name="tomorrow">demà</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e de %B de %Y</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S %d/%m/%Y</string>
+    <string name="abbrev_month_day_year">%d/%m/%Y</string>
+    <string name="month_day">%-e de %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%-B del %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-cs-rCZ/donottranslate-cldr.xml b/core/res/res/values-cs-rCZ/donottranslate-cldr.xml
new file mode 100644
index 0000000..f477d56
--- /dev/null
+++ b/core/res/res/values-cs-rCZ/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">leden</string>
+    <string name="month_long_standalone_february">únor</string>
+    <string name="month_long_standalone_march">březen</string>
+    <string name="month_long_standalone_april">duben</string>
+    <string name="month_long_standalone_may">květen</string>
+    <string name="month_long_standalone_june">červen</string>
+    <string name="month_long_standalone_july">červenec</string>
+    <string name="month_long_standalone_august">srpen</string>
+    <string name="month_long_standalone_september">září</string>
+    <string name="month_long_standalone_october">říjen</string>
+    <string name="month_long_standalone_november">listopad</string>
+    <string name="month_long_standalone_december">prosinec</string>
+
+    <string name="month_long_january">ledna</string>
+    <string name="month_long_february">února</string>
+    <string name="month_long_march">března</string>
+    <string name="month_long_april">dubna</string>
+    <string name="month_long_may">května</string>
+    <string name="month_long_june">června</string>
+    <string name="month_long_july">července</string>
+    <string name="month_long_august">srpna</string>
+    <string name="month_long_september">září</string>
+    <string name="month_long_october">října</string>
+    <string name="month_long_november">listopadu</string>
+    <string name="month_long_december">prosince</string>
+
+    <string name="month_medium_january">1</string>
+    <string name="month_medium_february">2</string>
+    <string name="month_medium_march">3</string>
+    <string name="month_medium_april">4</string>
+    <string name="month_medium_may">5</string>
+    <string name="month_medium_june">6</string>
+    <string name="month_medium_july">7</string>
+    <string name="month_medium_august">8</string>
+    <string name="month_medium_september">9</string>
+    <string name="month_medium_october">10</string>
+    <string name="month_medium_november">11</string>
+    <string name="month_medium_december">12</string>
+
+    <string name="month_shortest_january">l</string>
+    <string name="month_shortest_february">ú</string>
+    <string name="month_shortest_march">b</string>
+    <string name="month_shortest_april">d</string>
+    <string name="month_shortest_may">k</string>
+    <string name="month_shortest_june">č</string>
+    <string name="month_shortest_july">č</string>
+    <string name="month_shortest_august">s</string>
+    <string name="month_shortest_september">z</string>
+    <string name="month_shortest_october">ř</string>
+    <string name="month_shortest_november">l</string>
+    <string name="month_shortest_december">p</string>
+
+    <string name="day_of_week_long_sunday">neděle</string>
+    <string name="day_of_week_long_monday">pondělí</string>
+    <string name="day_of_week_long_tuesday">úterý</string>
+    <string name="day_of_week_long_wednesday">středa</string>
+    <string name="day_of_week_long_thursday">čtvrtek</string>
+    <string name="day_of_week_long_friday">pátek</string>
+    <string name="day_of_week_long_saturday">sobota</string>
+
+    <string name="day_of_week_medium_sunday">ne</string>
+    <string name="day_of_week_medium_monday">po</string>
+    <string name="day_of_week_medium_tuesday">út</string>
+    <string name="day_of_week_medium_wednesday">st</string>
+    <string name="day_of_week_medium_thursday">čt</string>
+    <string name="day_of_week_medium_friday">pá</string>
+    <string name="day_of_week_medium_saturday">so</string>
+
+    <string name="day_of_week_short_sunday">ne</string>
+    <string name="day_of_week_short_monday">po</string>
+    <string name="day_of_week_short_tuesday">út</string>
+    <string name="day_of_week_short_wednesday">st</string>
+    <string name="day_of_week_short_thursday">čt</string>
+    <string name="day_of_week_short_friday">pá</string>
+    <string name="day_of_week_short_saturday">so</string>
+
+    <string name="day_of_week_shortest_sunday">N</string>
+    <string name="day_of_week_shortest_monday">P</string>
+    <string name="day_of_week_shortest_tuesday">Ú</string>
+    <string name="day_of_week_shortest_wednesday">S</string>
+    <string name="day_of_week_shortest_thursday">Č</string>
+    <string name="day_of_week_shortest_friday">P</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">dop.</string>
+    <string name="pm">odp.</string>
+    <string name="yesterday">Včera</string>
+    <string name="today">Dnes</string>
+    <string name="tomorrow">Zítra</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%-e.%-m.%Y</string>
+    <string name="numeric_date_format">d.M.yyyy</string>
+    <string name="month_day_year">%-e. %B %Y</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S %-e.%-m.%Y</string>
+    <string name="abbrev_month_day_year">%-e.%-m.%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-cs/donottranslate-cldr.xml b/core/res/res/values-cs/donottranslate-cldr.xml
new file mode 100644
index 0000000..f477d56
--- /dev/null
+++ b/core/res/res/values-cs/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">leden</string>
+    <string name="month_long_standalone_february">únor</string>
+    <string name="month_long_standalone_march">březen</string>
+    <string name="month_long_standalone_april">duben</string>
+    <string name="month_long_standalone_may">květen</string>
+    <string name="month_long_standalone_june">červen</string>
+    <string name="month_long_standalone_july">červenec</string>
+    <string name="month_long_standalone_august">srpen</string>
+    <string name="month_long_standalone_september">září</string>
+    <string name="month_long_standalone_october">říjen</string>
+    <string name="month_long_standalone_november">listopad</string>
+    <string name="month_long_standalone_december">prosinec</string>
+
+    <string name="month_long_january">ledna</string>
+    <string name="month_long_february">února</string>
+    <string name="month_long_march">března</string>
+    <string name="month_long_april">dubna</string>
+    <string name="month_long_may">května</string>
+    <string name="month_long_june">června</string>
+    <string name="month_long_july">července</string>
+    <string name="month_long_august">srpna</string>
+    <string name="month_long_september">září</string>
+    <string name="month_long_october">října</string>
+    <string name="month_long_november">listopadu</string>
+    <string name="month_long_december">prosince</string>
+
+    <string name="month_medium_january">1</string>
+    <string name="month_medium_february">2</string>
+    <string name="month_medium_march">3</string>
+    <string name="month_medium_april">4</string>
+    <string name="month_medium_may">5</string>
+    <string name="month_medium_june">6</string>
+    <string name="month_medium_july">7</string>
+    <string name="month_medium_august">8</string>
+    <string name="month_medium_september">9</string>
+    <string name="month_medium_october">10</string>
+    <string name="month_medium_november">11</string>
+    <string name="month_medium_december">12</string>
+
+    <string name="month_shortest_january">l</string>
+    <string name="month_shortest_february">ú</string>
+    <string name="month_shortest_march">b</string>
+    <string name="month_shortest_april">d</string>
+    <string name="month_shortest_may">k</string>
+    <string name="month_shortest_june">č</string>
+    <string name="month_shortest_july">č</string>
+    <string name="month_shortest_august">s</string>
+    <string name="month_shortest_september">z</string>
+    <string name="month_shortest_october">ř</string>
+    <string name="month_shortest_november">l</string>
+    <string name="month_shortest_december">p</string>
+
+    <string name="day_of_week_long_sunday">neděle</string>
+    <string name="day_of_week_long_monday">pondělí</string>
+    <string name="day_of_week_long_tuesday">úterý</string>
+    <string name="day_of_week_long_wednesday">středa</string>
+    <string name="day_of_week_long_thursday">čtvrtek</string>
+    <string name="day_of_week_long_friday">pátek</string>
+    <string name="day_of_week_long_saturday">sobota</string>
+
+    <string name="day_of_week_medium_sunday">ne</string>
+    <string name="day_of_week_medium_monday">po</string>
+    <string name="day_of_week_medium_tuesday">út</string>
+    <string name="day_of_week_medium_wednesday">st</string>
+    <string name="day_of_week_medium_thursday">čt</string>
+    <string name="day_of_week_medium_friday">pá</string>
+    <string name="day_of_week_medium_saturday">so</string>
+
+    <string name="day_of_week_short_sunday">ne</string>
+    <string name="day_of_week_short_monday">po</string>
+    <string name="day_of_week_short_tuesday">út</string>
+    <string name="day_of_week_short_wednesday">st</string>
+    <string name="day_of_week_short_thursday">čt</string>
+    <string name="day_of_week_short_friday">pá</string>
+    <string name="day_of_week_short_saturday">so</string>
+
+    <string name="day_of_week_shortest_sunday">N</string>
+    <string name="day_of_week_shortest_monday">P</string>
+    <string name="day_of_week_shortest_tuesday">Ú</string>
+    <string name="day_of_week_shortest_wednesday">S</string>
+    <string name="day_of_week_shortest_thursday">Č</string>
+    <string name="day_of_week_shortest_friday">P</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">dop.</string>
+    <string name="pm">odp.</string>
+    <string name="yesterday">Včera</string>
+    <string name="today">Dnes</string>
+    <string name="tomorrow">Zítra</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%-e.%-m.%Y</string>
+    <string name="numeric_date_format">d.M.yyyy</string>
+    <string name="month_day_year">%-e. %B %Y</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S %-e.%-m.%Y</string>
+    <string name="abbrev_month_day_year">%-e.%-m.%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml
index 35a3f9a..c3860d4 100644
--- a/core/res/res/values-cs/strings.xml
+++ b/core/res/res/values-cs/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"Heslo"</string>
     <string name="lockscreen_glogin_submit_button">"Přihlásit se"</string>
     <string name="lockscreen_glogin_invalid_input">"Neplatné uživatelské jméno nebo heslo."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Vymazat oznámení"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"enter"</string>
     <string name="menu_delete_shortcut_label">"smazat"</string>
     <string name="search_go">"Hledat"</string>
-    <string name="today">"Dnes"</string>
-    <string name="yesterday">"Včera"</string>
-    <string name="tomorrow">"Zítra"</string>
     <string name="oneMonthDurationPast">"před 1 měsícem"</string>
     <string name="beforeOneMonthDurationPast">"Déle než před 1 měsícem"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"týd."</string>
     <string name="year">"rokem"</string>
     <string name="years">"lety"</string>
-    <string name="sunday">"neděle"</string>
-    <string name="monday">"pondělí"</string>
-    <string name="tuesday">"úterý"</string>
-    <string name="wednesday">"středa"</string>
-    <string name="thursday">"čtvrtek"</string>
-    <string name="friday">"pátek"</string>
-    <string name="saturday">"sobota"</string>
     <string name="every_weekday">"Každý pracovní den (Po – Pá)"</string>
     <string name="daily">"Denně"</string>
     <string name="weekly">"Každý týden v <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"Omlouváme se, ale toto video nelze přenášet datovým proudem do tohoto zařízení."</string>
     <string name="VideoView_error_text_unknown">"Toto video bohužel nelze přehrát."</string>
     <string name="VideoView_error_button">"OK"</string>
-    <string name="am">"dop."</string>
-    <string name="pm">"odp."</string>
-    <string name="numeric_date">"<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>'. '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>'. '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>'. '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"poledne"</string>
     <string name="Noon">"Poledne"</string>
     <string name="midnight">"půlnoc"</string>
     <string name="Midnight">"Půlnoc"</string>
-    <string name="month_day">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="DAY">%-d</xliff:g>. <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="DAY1">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="DAY1">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g>, <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>, <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g>. <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"neděle"</string>
-    <string name="day_of_week_long_monday">"pondělí"</string>
-    <string name="day_of_week_long_tuesday">"úterý"</string>
-    <string name="day_of_week_long_wednesday">"středa"</string>
-    <string name="day_of_week_long_thursday">"čtvrtek"</string>
-    <string name="day_of_week_long_friday">"pátek"</string>
-    <string name="day_of_week_long_saturday">"sobota"</string>
-    <string name="day_of_week_medium_sunday">"Ne"</string>
-    <string name="day_of_week_medium_monday">"Po"</string>
-    <string name="day_of_week_medium_tuesday">"Út"</string>
-    <string name="day_of_week_medium_wednesday">"St"</string>
-    <string name="day_of_week_medium_thursday">"Čt"</string>
-    <string name="day_of_week_medium_friday">"Pá"</string>
-    <string name="day_of_week_medium_saturday">"So"</string>
-    <string name="day_of_week_short_sunday">"Ne"</string>
-    <string name="day_of_week_short_monday">"Po"</string>
-    <string name="day_of_week_short_tuesday">"Út"</string>
-    <string name="day_of_week_short_wednesday">"St"</string>
-    <string name="day_of_week_short_thursday">"Čt"</string>
-    <string name="day_of_week_short_friday">"Pá"</string>
-    <string name="day_of_week_short_saturday">"So"</string>
-    <string name="day_of_week_shorter_sunday">"Ne"</string>
-    <string name="day_of_week_shorter_monday">"Po"</string>
-    <string name="day_of_week_shorter_tuesday">"Út"</string>
-    <string name="day_of_week_shorter_wednesday">"St"</string>
-    <string name="day_of_week_shorter_thursday">"Čt"</string>
-    <string name="day_of_week_shorter_friday">"Pá"</string>
-    <string name="day_of_week_shorter_saturday">"So"</string>
-    <string name="day_of_week_shortest_sunday">"Ne"</string>
-    <string name="day_of_week_shortest_monday">"Po"</string>
-    <string name="day_of_week_shortest_tuesday">"Čt"</string>
-    <string name="day_of_week_shortest_wednesday">"St"</string>
-    <string name="day_of_week_shortest_thursday">"Čt"</string>
-    <string name="day_of_week_shortest_friday">"Pá"</string>
-    <string name="day_of_week_shortest_saturday">"So"</string>
-    <string name="month_long_january">"leden"</string>
-    <string name="month_long_february">"únor"</string>
-    <string name="month_long_march">"březen"</string>
-    <string name="month_long_april">"duben"</string>
-    <string name="month_long_may">"květen"</string>
-    <string name="month_long_june">"červen"</string>
-    <string name="month_long_july">"červenec"</string>
-    <string name="month_long_august">"srpen"</string>
-    <string name="month_long_september">"září"</string>
-    <string name="month_long_october">"říjen"</string>
-    <string name="month_long_november">"listopad"</string>
-    <string name="month_long_december">"prosinec"</string>
-    <string name="month_medium_january">"leden"</string>
-    <string name="month_medium_february">"únor"</string>
-    <string name="month_medium_march">"březen"</string>
-    <string name="month_medium_april">"duben"</string>
-    <string name="month_medium_may">"květen"</string>
-    <string name="month_medium_june">"červen"</string>
-    <string name="month_medium_july">"červenec"</string>
-    <string name="month_medium_august">"srpen"</string>
-    <string name="month_medium_september">"září"</string>
-    <string name="month_medium_october">"říjen"</string>
-    <string name="month_medium_november">"listopad"</string>
-    <string name="month_medium_december">"prosinec"</string>
-    <string name="month_shortest_january">"1."</string>
-    <string name="month_shortest_february">"2."</string>
-    <string name="month_shortest_march">"Po"</string>
-    <string name="month_shortest_april">"4."</string>
-    <string name="month_shortest_may">"5."</string>
-    <string name="month_shortest_june">"6."</string>
-    <string name="month_shortest_july">"7."</string>
-    <string name="month_shortest_august">"8."</string>
-    <string name="month_shortest_september">"9."</string>
-    <string name="month_shortest_october">"10."</string>
-    <string name="month_shortest_november">"11."</string>
-    <string name="month_shortest_december">"12."</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Vybrat vše"</string>
diff --git a/core/res/res/values-da-rDK/donottranslate-cldr.xml b/core/res/res/values-da-rDK/donottranslate-cldr.xml
new file mode 100644
index 0000000..38097bd
--- /dev/null
+++ b/core/res/res/values-da-rDK/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">januar</string>
+    <string name="month_long_standalone_february">februar</string>
+    <string name="month_long_standalone_march">marts</string>
+    <string name="month_long_standalone_april">april</string>
+    <string name="month_long_standalone_may">maj</string>
+    <string name="month_long_standalone_june">juni</string>
+    <string name="month_long_standalone_july">juli</string>
+    <string name="month_long_standalone_august">august</string>
+    <string name="month_long_standalone_september">september</string>
+    <string name="month_long_standalone_october">oktober</string>
+    <string name="month_long_standalone_november">november</string>
+    <string name="month_long_standalone_december">december</string>
+
+    <string name="month_long_january">januar</string>
+    <string name="month_long_february">februar</string>
+    <string name="month_long_march">marts</string>
+    <string name="month_long_april">april</string>
+    <string name="month_long_may">maj</string>
+    <string name="month_long_june">juni</string>
+    <string name="month_long_july">juli</string>
+    <string name="month_long_august">august</string>
+    <string name="month_long_september">september</string>
+    <string name="month_long_october">oktober</string>
+    <string name="month_long_november">november</string>
+    <string name="month_long_december">december</string>
+
+    <string name="month_medium_january">jan.</string>
+    <string name="month_medium_february">feb.</string>
+    <string name="month_medium_march">mar.</string>
+    <string name="month_medium_april">apr.</string>
+    <string name="month_medium_may">maj</string>
+    <string name="month_medium_june">jun.</string>
+    <string name="month_medium_july">jul.</string>
+    <string name="month_medium_august">aug.</string>
+    <string name="month_medium_september">sep.</string>
+    <string name="month_medium_october">okt.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">dec.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">søndag</string>
+    <string name="day_of_week_long_monday">mandag</string>
+    <string name="day_of_week_long_tuesday">tirsdag</string>
+    <string name="day_of_week_long_wednesday">onsdag</string>
+    <string name="day_of_week_long_thursday">torsdag</string>
+    <string name="day_of_week_long_friday">fredag</string>
+    <string name="day_of_week_long_saturday">lørdag</string>
+
+    <string name="day_of_week_medium_sunday">søn</string>
+    <string name="day_of_week_medium_monday">man</string>
+    <string name="day_of_week_medium_tuesday">tir</string>
+    <string name="day_of_week_medium_wednesday">ons</string>
+    <string name="day_of_week_medium_thursday">tor</string>
+    <string name="day_of_week_medium_friday">fre</string>
+    <string name="day_of_week_medium_saturday">lør</string>
+
+    <string name="day_of_week_short_sunday">søn</string>
+    <string name="day_of_week_short_monday">man</string>
+    <string name="day_of_week_short_tuesday">tir</string>
+    <string name="day_of_week_short_wednesday">ons</string>
+    <string name="day_of_week_short_thursday">tor</string>
+    <string name="day_of_week_short_friday">fre</string>
+    <string name="day_of_week_short_saturday">lør</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">O</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">L</string>
+
+    <string name="am">f.m.</string>
+    <string name="pm">e.m.</string>
+    <string name="yesterday">i går</string>
+    <string name="today">i dag</string>
+    <string name="tomorrow">i morgen</string>
+
+    <string name="hour_minute_ampm">%H.%M</string>
+    <string name="hour_minute_cap_ampm">%H.%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e. %b %Y</string>
+    <string name="time_of_day">%H.%M.%S</string>
+    <string name="date_and_time">%H.%M.%S %d/%m/%Y</string>
+    <string name="abbrev_month_day_year">%d/%m/%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%b</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-de-rAT/donottranslate-cldr.xml b/core/res/res/values-de-rAT/donottranslate-cldr.xml
new file mode 100644
index 0000000..ad35fee
--- /dev/null
+++ b/core/res/res/values-de-rAT/donottranslate-cldr.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Jänner</string>
+
+    <string name="month_long_january">Jänner</string>
+
+    <string name="month_medium_january">Jän</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sonntag</string>
+    <string name="day_of_week_long_monday">Montag</string>
+    <string name="day_of_week_long_tuesday">Dienstag</string>
+    <string name="day_of_week_long_wednesday">Mittwoch</string>
+    <string name="day_of_week_long_thursday">Donnerstag</string>
+    <string name="day_of_week_long_friday">Freitag</string>
+    <string name="day_of_week_long_saturday">Samstag</string>
+
+    <string name="day_of_week_medium_sunday">So.</string>
+    <string name="day_of_week_medium_monday">Mo.</string>
+    <string name="day_of_week_medium_tuesday">Di.</string>
+    <string name="day_of_week_medium_wednesday">Mi.</string>
+    <string name="day_of_week_medium_thursday">Do.</string>
+    <string name="day_of_week_medium_friday">Fr.</string>
+    <string name="day_of_week_medium_saturday">Sa.</string>
+
+    <string name="day_of_week_short_sunday">So.</string>
+    <string name="day_of_week_short_monday">Mo.</string>
+    <string name="day_of_week_short_tuesday">Di.</string>
+    <string name="day_of_week_short_wednesday">Mi.</string>
+    <string name="day_of_week_short_thursday">Do.</string>
+    <string name="day_of_week_short_friday">Fr.</string>
+    <string name="day_of_week_short_saturday">Sa.</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">D</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">D</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">vorm.</string>
+    <string name="pm">nachm.</string>
+    <string name="yesterday">Gestern</string>
+    <string name="today">Heute</string>
+    <string name="tomorrow">Morgen</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%d. %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d.%m.%Y</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-de-rCH/donottranslate-cldr.xml b/core/res/res/values-de-rCH/donottranslate-cldr.xml
new file mode 100644
index 0000000..c8e0de8
--- /dev/null
+++ b/core/res/res/values-de-rCH/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Januar</string>
+    <string name="month_long_standalone_february">Februar</string>
+    <string name="month_long_standalone_march">März</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">Mai</string>
+    <string name="month_long_standalone_june">Juni</string>
+    <string name="month_long_standalone_july">Juli</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">Oktober</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">Dezember</string>
+
+    <string name="month_long_january">Januar</string>
+    <string name="month_long_february">Februar</string>
+    <string name="month_long_march">März</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">Mai</string>
+    <string name="month_long_june">Juni</string>
+    <string name="month_long_july">Juli</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">Oktober</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">Dezember</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mär</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">Mai</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Okt</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dez</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sonntag</string>
+    <string name="day_of_week_long_monday">Montag</string>
+    <string name="day_of_week_long_tuesday">Dienstag</string>
+    <string name="day_of_week_long_wednesday">Mittwoch</string>
+    <string name="day_of_week_long_thursday">Donnerstag</string>
+    <string name="day_of_week_long_friday">Freitag</string>
+    <string name="day_of_week_long_saturday">Samstag</string>
+
+    <string name="day_of_week_medium_sunday">So.</string>
+    <string name="day_of_week_medium_monday">Mo.</string>
+    <string name="day_of_week_medium_tuesday">Di.</string>
+    <string name="day_of_week_medium_wednesday">Mi.</string>
+    <string name="day_of_week_medium_thursday">Do.</string>
+    <string name="day_of_week_medium_friday">Fr.</string>
+    <string name="day_of_week_medium_saturday">Sa.</string>
+
+    <string name="day_of_week_short_sunday">So.</string>
+    <string name="day_of_week_short_monday">Mo.</string>
+    <string name="day_of_week_short_tuesday">Di.</string>
+    <string name="day_of_week_short_wednesday">Mi.</string>
+    <string name="day_of_week_short_thursday">Do.</string>
+    <string name="day_of_week_short_friday">Fr.</string>
+    <string name="day_of_week_short_saturday">Sa.</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">D</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">D</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">vorm.</string>
+    <string name="pm">nachm.</string>
+    <string name="yesterday">Gestern</string>
+    <string name="today">Heute</string>
+    <string name="tomorrow">Morgen</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e. %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d.%m.%Y</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-de-rDE/donottranslate-cldr.xml b/core/res/res/values-de-rDE/donottranslate-cldr.xml
new file mode 100644
index 0000000..c8e0de8
--- /dev/null
+++ b/core/res/res/values-de-rDE/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Januar</string>
+    <string name="month_long_standalone_february">Februar</string>
+    <string name="month_long_standalone_march">März</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">Mai</string>
+    <string name="month_long_standalone_june">Juni</string>
+    <string name="month_long_standalone_july">Juli</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">Oktober</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">Dezember</string>
+
+    <string name="month_long_january">Januar</string>
+    <string name="month_long_february">Februar</string>
+    <string name="month_long_march">März</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">Mai</string>
+    <string name="month_long_june">Juni</string>
+    <string name="month_long_july">Juli</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">Oktober</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">Dezember</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mär</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">Mai</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Okt</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dez</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sonntag</string>
+    <string name="day_of_week_long_monday">Montag</string>
+    <string name="day_of_week_long_tuesday">Dienstag</string>
+    <string name="day_of_week_long_wednesday">Mittwoch</string>
+    <string name="day_of_week_long_thursday">Donnerstag</string>
+    <string name="day_of_week_long_friday">Freitag</string>
+    <string name="day_of_week_long_saturday">Samstag</string>
+
+    <string name="day_of_week_medium_sunday">So.</string>
+    <string name="day_of_week_medium_monday">Mo.</string>
+    <string name="day_of_week_medium_tuesday">Di.</string>
+    <string name="day_of_week_medium_wednesday">Mi.</string>
+    <string name="day_of_week_medium_thursday">Do.</string>
+    <string name="day_of_week_medium_friday">Fr.</string>
+    <string name="day_of_week_medium_saturday">Sa.</string>
+
+    <string name="day_of_week_short_sunday">So.</string>
+    <string name="day_of_week_short_monday">Mo.</string>
+    <string name="day_of_week_short_tuesday">Di.</string>
+    <string name="day_of_week_short_wednesday">Mi.</string>
+    <string name="day_of_week_short_thursday">Do.</string>
+    <string name="day_of_week_short_friday">Fr.</string>
+    <string name="day_of_week_short_saturday">Sa.</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">D</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">D</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">vorm.</string>
+    <string name="pm">nachm.</string>
+    <string name="yesterday">Gestern</string>
+    <string name="today">Heute</string>
+    <string name="tomorrow">Morgen</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e. %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d.%m.%Y</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-de-rLI/donottranslate-cldr.xml b/core/res/res/values-de-rLI/donottranslate-cldr.xml
new file mode 100644
index 0000000..c8e0de8
--- /dev/null
+++ b/core/res/res/values-de-rLI/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Januar</string>
+    <string name="month_long_standalone_february">Februar</string>
+    <string name="month_long_standalone_march">März</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">Mai</string>
+    <string name="month_long_standalone_june">Juni</string>
+    <string name="month_long_standalone_july">Juli</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">Oktober</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">Dezember</string>
+
+    <string name="month_long_january">Januar</string>
+    <string name="month_long_february">Februar</string>
+    <string name="month_long_march">März</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">Mai</string>
+    <string name="month_long_june">Juni</string>
+    <string name="month_long_july">Juli</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">Oktober</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">Dezember</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mär</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">Mai</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Okt</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dez</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sonntag</string>
+    <string name="day_of_week_long_monday">Montag</string>
+    <string name="day_of_week_long_tuesday">Dienstag</string>
+    <string name="day_of_week_long_wednesday">Mittwoch</string>
+    <string name="day_of_week_long_thursday">Donnerstag</string>
+    <string name="day_of_week_long_friday">Freitag</string>
+    <string name="day_of_week_long_saturday">Samstag</string>
+
+    <string name="day_of_week_medium_sunday">So.</string>
+    <string name="day_of_week_medium_monday">Mo.</string>
+    <string name="day_of_week_medium_tuesday">Di.</string>
+    <string name="day_of_week_medium_wednesday">Mi.</string>
+    <string name="day_of_week_medium_thursday">Do.</string>
+    <string name="day_of_week_medium_friday">Fr.</string>
+    <string name="day_of_week_medium_saturday">Sa.</string>
+
+    <string name="day_of_week_short_sunday">So.</string>
+    <string name="day_of_week_short_monday">Mo.</string>
+    <string name="day_of_week_short_tuesday">Di.</string>
+    <string name="day_of_week_short_wednesday">Mi.</string>
+    <string name="day_of_week_short_thursday">Do.</string>
+    <string name="day_of_week_short_friday">Fr.</string>
+    <string name="day_of_week_short_saturday">Sa.</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">D</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">D</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">vorm.</string>
+    <string name="pm">nachm.</string>
+    <string name="yesterday">Gestern</string>
+    <string name="today">Heute</string>
+    <string name="tomorrow">Morgen</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e. %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d.%m.%Y</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-de/donottranslate-cldr.xml b/core/res/res/values-de/donottranslate-cldr.xml
new file mode 100644
index 0000000..c8e0de8
--- /dev/null
+++ b/core/res/res/values-de/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Januar</string>
+    <string name="month_long_standalone_february">Februar</string>
+    <string name="month_long_standalone_march">März</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">Mai</string>
+    <string name="month_long_standalone_june">Juni</string>
+    <string name="month_long_standalone_july">Juli</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">Oktober</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">Dezember</string>
+
+    <string name="month_long_january">Januar</string>
+    <string name="month_long_february">Februar</string>
+    <string name="month_long_march">März</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">Mai</string>
+    <string name="month_long_june">Juni</string>
+    <string name="month_long_july">Juli</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">Oktober</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">Dezember</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mär</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">Mai</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Okt</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dez</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sonntag</string>
+    <string name="day_of_week_long_monday">Montag</string>
+    <string name="day_of_week_long_tuesday">Dienstag</string>
+    <string name="day_of_week_long_wednesday">Mittwoch</string>
+    <string name="day_of_week_long_thursday">Donnerstag</string>
+    <string name="day_of_week_long_friday">Freitag</string>
+    <string name="day_of_week_long_saturday">Samstag</string>
+
+    <string name="day_of_week_medium_sunday">So.</string>
+    <string name="day_of_week_medium_monday">Mo.</string>
+    <string name="day_of_week_medium_tuesday">Di.</string>
+    <string name="day_of_week_medium_wednesday">Mi.</string>
+    <string name="day_of_week_medium_thursday">Do.</string>
+    <string name="day_of_week_medium_friday">Fr.</string>
+    <string name="day_of_week_medium_saturday">Sa.</string>
+
+    <string name="day_of_week_short_sunday">So.</string>
+    <string name="day_of_week_short_monday">Mo.</string>
+    <string name="day_of_week_short_tuesday">Di.</string>
+    <string name="day_of_week_short_wednesday">Mi.</string>
+    <string name="day_of_week_short_thursday">Do.</string>
+    <string name="day_of_week_short_friday">Fr.</string>
+    <string name="day_of_week_short_saturday">Sa.</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">D</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">D</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">vorm.</string>
+    <string name="pm">nachm.</string>
+    <string name="yesterday">Gestern</string>
+    <string name="today">Heute</string>
+    <string name="tomorrow">Morgen</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e. %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d.%m.%Y</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml
index 674c64b..d121801 100644
--- a/core/res/res/values-de/strings.xml
+++ b/core/res/res/values-de/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"Passwort"</string>
     <string name="lockscreen_glogin_submit_button">"Anmelden"</string>
     <string name="lockscreen_glogin_invalid_input">"Ungültiger  Nutzername oder ungültiges Passwort."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Benachrichtigungen löschen"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"Enter"</string>
     <string name="menu_delete_shortcut_label">"löschen"</string>
     <string name="search_go">"Suche"</string>
-    <string name="today">"Heute"</string>
-    <string name="yesterday">"Gestern"</string>
-    <string name="tomorrow">"Morgen"</string>
     <string name="oneMonthDurationPast">"Vor 1 Monat"</string>
     <string name="beforeOneMonthDurationPast">"Vor mehr als 1 Monat"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"Wochen"</string>
     <string name="year">"Jahr"</string>
     <string name="years">"Jahre"</string>
-    <string name="sunday">"Sonntag"</string>
-    <string name="monday">"Montag"</string>
-    <string name="tuesday">"Dienstag"</string>
-    <string name="wednesday">"Mittwoch"</string>
-    <string name="thursday">"Donnerstag"</string>
-    <string name="friday">"Freitag"</string>
-    <string name="saturday">"Samstag"</string>
     <string name="every_weekday">"Jeden Wochentag (Mo-Fr)"</string>
     <string name="daily">"Täglich"</string>
     <string name="weekly">"Jede Woche am <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"Leider ist dieses Video nicht für Streaming auf diesem Gerät gültig."</string>
     <string name="VideoView_error_text_unknown">"Dieses Video kann leider nicht abgespielt werden."</string>
     <string name="VideoView_error_button">"OK"</string>
-    <string name="am">"AM"</string>
-    <string name="pm">".."</string>
-    <string name="numeric_date">"<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>'. '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>'. '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>'. '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>'. '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"Mittag"</string>
     <string name="Noon">"Mittag"</string>
     <string name="midnight">"Mitternacht"</string>
     <string name="Midnight">"Mitternacht"</string>
-    <string name="month_day">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="DAY">%-d</xliff:g>. <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="DAY">%-d</xliff:g>. <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="DAY1">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> –  <xliff:g id="DAY2">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>,  <xliff:g id="DAY1_0">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="DAY1">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="DAY1">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g>. <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"Sonntag"</string>
-    <string name="day_of_week_long_monday">"Montag"</string>
-    <string name="day_of_week_long_tuesday">"Dienstag"</string>
-    <string name="day_of_week_long_wednesday">"Mittwoch"</string>
-    <string name="day_of_week_long_thursday">"Donnerstag"</string>
-    <string name="day_of_week_long_friday">"Freitag"</string>
-    <string name="day_of_week_long_saturday">"Samstag"</string>
-    <string name="day_of_week_medium_sunday">"So"</string>
-    <string name="day_of_week_medium_monday">"Mo"</string>
-    <string name="day_of_week_medium_tuesday">"Di"</string>
-    <string name="day_of_week_medium_wednesday">"Mi"</string>
-    <string name="day_of_week_medium_thursday">"Do"</string>
-    <string name="day_of_week_medium_friday">"Fr"</string>
-    <string name="day_of_week_medium_saturday">"Sa"</string>
-    <string name="day_of_week_short_sunday">"So"</string>
-    <string name="day_of_week_short_monday">"Mo"</string>
-    <string name="day_of_week_short_tuesday">"Di"</string>
-    <string name="day_of_week_short_wednesday">"Mi"</string>
-    <string name="day_of_week_short_thursday">"Do"</string>
-    <string name="day_of_week_short_friday">"Fr"</string>
-    <string name="day_of_week_short_saturday">"Sa"</string>
-    <string name="day_of_week_shorter_sunday">"So"</string>
-    <string name="day_of_week_shorter_monday">"März"</string>
-    <string name="day_of_week_shorter_tuesday">"Di"</string>
-    <string name="day_of_week_shorter_wednesday">"Mi"</string>
-    <string name="day_of_week_shorter_thursday">"Do"</string>
-    <string name="day_of_week_shorter_friday">"Fr"</string>
-    <string name="day_of_week_shorter_saturday">"Sa"</string>
-    <string name="day_of_week_shortest_sunday">"Sep"</string>
-    <string name="day_of_week_shortest_monday">"Mo"</string>
-    <string name="day_of_week_shortest_tuesday">"Do"</string>
-    <string name="day_of_week_shortest_wednesday">"Mi"</string>
-    <string name="day_of_week_shortest_thursday">"Do"</string>
-    <string name="day_of_week_shortest_friday">"Fr"</string>
-    <string name="day_of_week_shortest_saturday">"Sa"</string>
-    <string name="month_long_january">"Januar"</string>
-    <string name="month_long_february">"Februar"</string>
-    <string name="month_long_march">"März"</string>
-    <string name="month_long_april">"April"</string>
-    <string name="month_long_may">"Mai"</string>
-    <string name="month_long_june">"Juni"</string>
-    <string name="month_long_july">"Juli"</string>
-    <string name="month_long_august">"August"</string>
-    <string name="month_long_september">"September"</string>
-    <string name="month_long_october">"Oktober"</string>
-    <string name="month_long_november">"November"</string>
-    <string name="month_long_december">"Dezember"</string>
-    <string name="month_medium_january">"Jan."</string>
-    <string name="month_medium_february">"Feb."</string>
-    <string name="month_medium_march">"März"</string>
-    <string name="month_medium_april">"Apr."</string>
-    <string name="month_medium_may">"Mai"</string>
-    <string name="month_medium_june">"Juni"</string>
-    <string name="month_medium_july">"Juli"</string>
-    <string name="month_medium_august">"Aug"</string>
-    <string name="month_medium_september">"Sep."</string>
-    <string name="month_medium_october">"Okt."</string>
-    <string name="month_medium_november">"Nov."</string>
-    <string name="month_medium_december">"Dez."</string>
-    <string name="month_shortest_january">"Juli"</string>
-    <string name="month_shortest_february">"Fr"</string>
-    <string name="month_shortest_march">"März"</string>
-    <string name="month_shortest_april">"Apr"</string>
-    <string name="month_shortest_may">"Mo"</string>
-    <string name="month_shortest_june">"Juni"</string>
-    <string name="month_shortest_july">"Juli"</string>
-    <string name="month_shortest_august">"Aug."</string>
-    <string name="month_shortest_september">"Sep"</string>
-    <string name="month_shortest_october">"Okt."</string>
-    <string name="month_shortest_november">"No"</string>
-    <string name="month_shortest_december">"Dez."</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Alles auswählen"</string>
diff --git a/core/res/res/values-el-rGR/donottranslate-cldr.xml b/core/res/res/values-el-rGR/donottranslate-cldr.xml
new file mode 100644
index 0000000..9d2a0aa
--- /dev/null
+++ b/core/res/res/values-el-rGR/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Ιανουάριος</string>
+    <string name="month_long_standalone_february">Φεβρουάριος</string>
+    <string name="month_long_standalone_march">Μάρτιος</string>
+    <string name="month_long_standalone_april">Απρίλιος</string>
+    <string name="month_long_standalone_may">Μάιος</string>
+    <string name="month_long_standalone_june">Ιούνιος</string>
+    <string name="month_long_standalone_july">Ιούλιος</string>
+    <string name="month_long_standalone_august">Αύγουστος</string>
+    <string name="month_long_standalone_september">Σεπτέμβριος</string>
+    <string name="month_long_standalone_october">Οκτώβριος</string>
+    <string name="month_long_standalone_november">Νοέμβριος</string>
+    <string name="month_long_standalone_december">Δεκέμβριος</string>
+
+    <string name="month_long_january">Ιανουαρίου</string>
+    <string name="month_long_february">Φεβρουαρίου</string>
+    <string name="month_long_march">Μαρτίου</string>
+    <string name="month_long_april">Απριλίου</string>
+    <string name="month_long_may">Μαΐου</string>
+    <string name="month_long_june">Ιουνίου</string>
+    <string name="month_long_july">Ιουλίου</string>
+    <string name="month_long_august">Αυγούστου</string>
+    <string name="month_long_september">Σεπτεμβρίου</string>
+    <string name="month_long_october">Οκτωβρίου</string>
+    <string name="month_long_november">Νοεμβρίου</string>
+    <string name="month_long_december">Δεκεμβρίου</string>
+
+    <string name="month_medium_january">Ιαν</string>
+    <string name="month_medium_february">Φεβ</string>
+    <string name="month_medium_march">Μαρ</string>
+    <string name="month_medium_april">Απρ</string>
+    <string name="month_medium_may">Μαϊ</string>
+    <string name="month_medium_june">Ιουν</string>
+    <string name="month_medium_july">Ιουλ</string>
+    <string name="month_medium_august">Αυγ</string>
+    <string name="month_medium_september">Σεπ</string>
+    <string name="month_medium_october">Οκτ</string>
+    <string name="month_medium_november">Νοε</string>
+    <string name="month_medium_december">Δεκ</string>
+
+    <string name="month_shortest_january">Ι</string>
+    <string name="month_shortest_february">Φ</string>
+    <string name="month_shortest_march">Μ</string>
+    <string name="month_shortest_april">Α</string>
+    <string name="month_shortest_may">Μ</string>
+    <string name="month_shortest_june">Ι</string>
+    <string name="month_shortest_july">Ι</string>
+    <string name="month_shortest_august">Α</string>
+    <string name="month_shortest_september">Σ</string>
+    <string name="month_shortest_october">Ο</string>
+    <string name="month_shortest_november">Ν</string>
+    <string name="month_shortest_december">Δ</string>
+
+    <string name="day_of_week_long_sunday">Κυριακή</string>
+    <string name="day_of_week_long_monday">Δευτέρα</string>
+    <string name="day_of_week_long_tuesday">Τρίτη</string>
+    <string name="day_of_week_long_wednesday">Τετάρτη</string>
+    <string name="day_of_week_long_thursday">Πέμπτη</string>
+    <string name="day_of_week_long_friday">Παρασκευή</string>
+    <string name="day_of_week_long_saturday">Σάββατο</string>
+
+    <string name="day_of_week_medium_sunday">Κυρ</string>
+    <string name="day_of_week_medium_monday">Δευ</string>
+    <string name="day_of_week_medium_tuesday">Τρι</string>
+    <string name="day_of_week_medium_wednesday">Τετ</string>
+    <string name="day_of_week_medium_thursday">Πεμ</string>
+    <string name="day_of_week_medium_friday">Παρ</string>
+    <string name="day_of_week_medium_saturday">Σαβ</string>
+
+    <string name="day_of_week_short_sunday">Κυρ</string>
+    <string name="day_of_week_short_monday">Δευ</string>
+    <string name="day_of_week_short_tuesday">Τρι</string>
+    <string name="day_of_week_short_wednesday">Τετ</string>
+    <string name="day_of_week_short_thursday">Πεμ</string>
+    <string name="day_of_week_short_friday">Παρ</string>
+    <string name="day_of_week_short_saturday">Σαβ</string>
+
+    <string name="day_of_week_shortest_sunday">Κ</string>
+    <string name="day_of_week_shortest_monday">Δ</string>
+    <string name="day_of_week_shortest_tuesday">Τ</string>
+    <string name="day_of_week_shortest_wednesday">Τ</string>
+    <string name="day_of_week_shortest_thursday">Π</string>
+    <string name="day_of_week_shortest_friday">Π</string>
+    <string name="day_of_week_shortest_saturday">Σ</string>
+
+    <string name="am">π.μ.</string>
+    <string name="pm">μ.μ.</string>
+    <string name="yesterday">Χτες</string>
+    <string name="today">Σήμερα</string>
+    <string name="tomorrow">Αύριο</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%d %B %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %d %b %Y</string>
+    <string name="abbrev_month_day_year">%d %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%-B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-en-rAU/donottranslate-cldr.xml b/core/res/res/values-en-rAU/donottranslate-cldr.xml
new file mode 100644
index 0000000..7ed029c
--- /dev/null
+++ b/core/res/res/values-en-rAU/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%-e/%m/%Y</string>
+    <string name="numeric_date_format">d/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %d/%m/%Y</string>
+    <string name="abbrev_month_day_year">%d/%m/%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml
index 9da879b..d482222 100644
--- a/core/res/res/values-en-rAU/strings.xml
+++ b/core/res/res/values-en-rAU/strings.xml
@@ -710,7 +710,6 @@
     <!-- no translation found for lockscreen_glogin_invalid_input (4881057177478491580) -->
     <skip />
     <!-- no translation found for status_bar_time_format (2168573805413119180) -->
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
     <!-- no translation found for hour_minute_ampm (1850330605794978742) -->
     <skip />
     <!-- no translation found for hour_minute_cap_ampm (1122840227537374196) -->
@@ -864,7 +863,6 @@
     <!-- from values-de/strings.xml and removal of all the german craziyness-->
     <skip />
     <!-- no translation found for numeric_date (5120078478872821100) -->
-    <string name="numeric_date">"<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <!-- no translation found for wday1_date1_time1_wday2_date2_time2 (7066878981949584861) -->
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <!-- no translation found for wday1_date1_wday2_date2 (8671068747172261907) -->
@@ -888,11 +886,9 @@
     <!-- no translation found for full_date_month_first (6011143962222283357) -->
     <skip />
     <!-- no translation found for full_date_day_first (8621594762705478189) -->
-    <string name="full_date_day_first">"<xliff:g id="DAY">dd</xliff:g> <xliff:g id="MONTH">MMMM</xliff:g> <xliff:g id="YEAR">yyyy</xliff:g>"</string>
     <!-- no translation found for medium_date_month_first (48990963718825728) -->
     <skip />
     <!-- no translation found for medium_date_day_first (2898992016440387123) -->
-    <string name="medium_date_day_first">"<xliff:g id="DAY">dd</xliff:g>  <xliff:g id="MONTH">MMM</xliff:g> <xliff:g id="YEAR">yyyy</xliff:g>"</string>
     <!-- no translation found for twelve_hour_time_format (6015557937879492156) -->
     <skip />
     <!-- no translation found for twenty_four_hour_time_format (5176807998669709535) -->
@@ -906,15 +902,12 @@
     <!-- no translation found for Midnight (1260172107848123187) -->
     <skip />
     <!-- no translation found for month_day (3356633704511426364) -->
-    <string name="month_day">"<xliff:g id="day" example="9">%-d</xliff:g> <xliff:g id="month" example="October">%B</xliff:g>"</string>
     <!-- no translation found for month (3017405760734206414) -->
     <skip />
     <!-- no translation found for month_day_year (2435948225709176752) -->
-    <string name="month_day_year">"<xliff:g id="DAY">%-d</xliff:g>  <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <!-- no translation found for month_year (6228414124777343135) -->
     <skip />
     <!-- no translation found for time_of_day (8375993139317154157) -->
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
     <!-- no translation found for date_and_time (9197690194373107109) -->
     <skip />
     <!-- no translation found for same_year_md1_md2 (9199324363135981317) -->
@@ -922,7 +915,6 @@
     <!-- no translation found for same_year_wday1_md1_wday2_md2 (6006392413355305178) -->
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>,  <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
      <!-- no translation found for date_and_time (353898423108629694) -->
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <!-- no translation found for same_year_mdy1_mdy2 (1576657593937827090) -->
     <string name="same_year_mdy1_mdy2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR">%9$s</xliff:g>"</string>
     <!-- no translation found for same_year_wday1_mdy1_wday2_mdy2 (9135935796468891580) -->
@@ -968,11 +960,9 @@
     <!-- no translation found for same_month_wday1_mdy1_time1_wday2_mdy2_time2 (1332950588774239228) -->
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g>  <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g>  <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <!-- no translation found for abbrev_month_day_year (5767271534015320250) -->
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g>  <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <!-- no translation found for abbrev_month_year (8058929633673942490) -->
     <skip />
     <!-- no translation found for abbrev_month_day (458867920693482757) -->
-    <string name="abbrev_month_day">"<xliff:g id="day" example="31">%-d</xliff:g>  <xliff:g id="month" example="Oct">%b</xliff:g>"</string>
     <!-- no translation found for abbrev_month (1674509986330181349) -->
     <skip />
     <!-- no translation found for day_of_week_long_sunday (9057662850446501884) -->
diff --git a/core/res/res/values-en-rCA/donottranslate-cldr.xml b/core/res/res/values-en-rCA/donottranslate-cldr.xml
new file mode 100644
index 0000000..2fb3ef6
--- /dev/null
+++ b/core/res/res/values-en-rCA/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%Y-%m-%d</string>
+    <string name="numeric_date_format">yyyy-MM-dd</string>
+    <string name="month_day_year">%B %-e, %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %Y-%m-%d</string>
+    <string name="abbrev_month_day_year">%Y-%m-%d</string>
+    <string name="month_day">%B %-e</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-en-rGB/donottranslate-cldr.xml b/core/res/res/values-en-rGB/donottranslate-cldr.xml
new file mode 100644
index 0000000..0c544af
--- /dev/null
+++ b/core/res/res/values-en-rGB/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-en-rIE/donottranslate-cldr.xml b/core/res/res/values-en-rIE/donottranslate-cldr.xml
new file mode 100644
index 0000000..0c544af
--- /dev/null
+++ b/core/res/res/values-en-rIE/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-en-rIN/donottranslate-cldr.xml b/core/res/res/values-en-rIN/donottranslate-cldr.xml
new file mode 100644
index 0000000..823c3c1
--- /dev/null
+++ b/core/res/res/values-en-rIN/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %d-%b-%Y</string>
+    <string name="abbrev_month_day_year">%d-%b-%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-en-rNZ/donottranslate-cldr.xml b/core/res/res/values-en-rNZ/donottranslate-cldr.xml
new file mode 100644
index 0000000..bcd976c
--- /dev/null
+++ b/core/res/res/values-en-rNZ/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%-e/%m/%Y</string>
+    <string name="numeric_date_format">d/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %-e/%m/%Y</string>
+    <string name="abbrev_month_day_year">%-e/%m/%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-en-rSG/donottranslate-cldr.xml b/core/res/res/values-en-rSG/donottranslate-cldr.xml
new file mode 100644
index 0000000..f305948
--- /dev/null
+++ b/core/res/res/values-en-rSG/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%-m/%-e/%Y</string>
+    <string name="numeric_date_format">M/d/yyyy</string>
+    <string name="month_day_year">%B %-e, %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %b %-e, %Y</string>
+    <string name="abbrev_month_day_year">%b %-e, %Y</string>
+    <string name="month_day">%B %-e</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-en-rSG/strings.xml b/core/res/res/values-en-rSG/strings.xml
index 6850a5d..1c6eda2 100644
--- a/core/res/res/values-en-rSG/strings.xml
+++ b/core/res/res/values-en-rSG/strings.xml
@@ -710,7 +710,6 @@
     <!-- no translation found for lockscreen_glogin_invalid_input (4881057177478491580) -->
     <skip />
     <!-- no translation found for status_bar_time_format (2168573805413119180) -->
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
     <!-- no translation found for hour_minute_ampm (1850330605794978742) -->
     <skip />
     <!-- no translation found for hour_minute_cap_ampm (1122840227537374196) -->
@@ -867,7 +866,6 @@
     <!-- no translation found for wday1_date1_wday2_date2 (8671068747172261907) -->
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <!-- no translation found for numeric_date (5537215108967329745) -->
-    <string name="numeric_date">"<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <!-- no translation found for date1_time1_date2_time2 (3645498975775629615) -->
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <!-- no translation found for date1_date2 (377057563556488062) -->
@@ -885,11 +883,9 @@
     <!-- no translation found for full_date_month_first (6011143962222283357) -->
     <skip />
     <!-- no translation found for full_date_day_first (8621594762705478189) -->
-    <string name="full_date_day_first">"<xliff:g id="DAY">dd</xliff:g>  <xliff:g id="MONTH">MMMM</xliff:g> <xliff:g id="YEAR">yyyy</xliff:g>"</string>
     <!-- no translation found for medium_date_month_first (48990963718825728) -->
     <skip />
     <!-- no translation found for medium_date_day_first (2898992016440387123) -->
-    <string name="medium_date_day_first">"<xliff:g id="DAY">dd</xliff:g>  <xliff:g id="MONTH">MMM</xliff:g> <xliff:g id="YEAR">yyyy</xliff:g>"</string>
     <!-- no translation found for twelve_hour_time_format (6015557937879492156) -->
     <skip />
     <!-- no translation found for twenty_four_hour_time_format (5176807998669709535) -->
@@ -903,17 +899,13 @@
     <!-- no translation found for Midnight (1260172107848123187) -->
     <skip />
     <!-- no translation found for month_day (3356633704511426364) -->
-    <string name="month_day">"<xliff:g id="day" example="9">%-d</xliff:g>  <xliff:g id="month" example="October">%B</xliff:g>"</string>
     <!-- no translation found for month (3017405760734206414) -->
     <skip />
     <!-- no translation found for month_day_year (2435948225709176752) -->
-    <string name="month_day_year">"<xliff:g id="DAY">%-d</xliff:g>  <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <!-- no translation found for month_year (6228414124777343135) -->
     <skip />
     <!-- no translation found for time_of_day (8375993139317154157) -->
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
     <!-- no translation found for date_and_time (9197690194373107109) -->
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="DAY">%-d</xliff:g>  <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <!-- no translation found for same_year_md1_md2 (9199324363135981317) -->
     <string name="same_year_md1_md2">"<xliff:g id="DAY1">%3$s</xliff:g>  <xliff:g id="MONTH1">%2$s</xliff:g> –  <xliff:g id="DAY2">%8$s</xliff:g>  <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <!-- no translation found for same_year_wday1_md1_wday2_md2 (6006392413355305178) -->
@@ -963,11 +955,9 @@
     <!-- no translation found for same_month_wday1_mdy1_time1_wday2_mdy2_time2 (1332950588774239228) -->
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g>  <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g>  <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <!-- no translation found for abbrev_month_day_year (5767271534015320250) -->
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g>  <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <!-- no translation found for abbrev_month_year (8058929633673942490) -->
     <skip />
     <!-- no translation found for abbrev_month_day (458867920693482757) -->
-    <string name="abbrev_month_day">"<xliff:g id="day" example="31">%-d</xliff:g>  <xliff:g id="month" example="Oct">%b</xliff:g>"</string>
     <!-- no translation found for abbrev_month (1674509986330181349) -->
     <skip />
     <!-- no translation found for day_of_week_long_sunday (9057662850446501884) -->
diff --git a/core/res/res/values-en-rUS/donottranslate-cldr.xml b/core/res/res/values-en-rUS/donottranslate-cldr.xml
new file mode 100644
index 0000000..f305948
--- /dev/null
+++ b/core/res/res/values-en-rUS/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%-m/%-e/%Y</string>
+    <string name="numeric_date_format">M/d/yyyy</string>
+    <string name="month_day_year">%B %-e, %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %b %-e, %Y</string>
+    <string name="abbrev_month_day_year">%b %-e, %Y</string>
+    <string name="month_day">%B %-e</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-en-rZA/donottranslate-cldr.xml b/core/res/res/values-en-rZA/donottranslate-cldr.xml
new file mode 100644
index 0000000..633c761
--- /dev/null
+++ b/core/res/res/values-en-rZA/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%Y/%m/%d</string>
+    <string name="numeric_date_format">yyyy/MM/dd</string>
+    <string name="month_day_year">%d %B %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %d %b %Y</string>
+    <string name="abbrev_month_day_year">%d %b %Y</string>
+    <string name="month_day">%B %-e</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-es-rES/donottranslate-cldr.xml b/core/res/res/values-es-rES/donottranslate-cldr.xml
new file mode 100644
index 0000000..967a639
--- /dev/null
+++ b/core/res/res/values-es-rES/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">enero</string>
+    <string name="month_long_standalone_february">febrero</string>
+    <string name="month_long_standalone_march">marzo</string>
+    <string name="month_long_standalone_april">abril</string>
+    <string name="month_long_standalone_may">mayo</string>
+    <string name="month_long_standalone_june">junio</string>
+    <string name="month_long_standalone_july">julio</string>
+    <string name="month_long_standalone_august">agosto</string>
+    <string name="month_long_standalone_september">septiembre</string>
+    <string name="month_long_standalone_october">octubre</string>
+    <string name="month_long_standalone_november">noviembre</string>
+    <string name="month_long_standalone_december">diciembre</string>
+
+    <string name="month_long_january">enero</string>
+    <string name="month_long_february">febrero</string>
+    <string name="month_long_march">marzo</string>
+    <string name="month_long_april">abril</string>
+    <string name="month_long_may">mayo</string>
+    <string name="month_long_june">junio</string>
+    <string name="month_long_july">julio</string>
+    <string name="month_long_august">agosto</string>
+    <string name="month_long_september">septiembre</string>
+    <string name="month_long_october">octubre</string>
+    <string name="month_long_november">noviembre</string>
+    <string name="month_long_december">diciembre</string>
+
+    <string name="month_medium_january">ene</string>
+    <string name="month_medium_february">feb</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">abr</string>
+    <string name="month_medium_may">may</string>
+    <string name="month_medium_june">jun</string>
+    <string name="month_medium_july">jul</string>
+    <string name="month_medium_august">ago</string>
+    <string name="month_medium_september">sep</string>
+    <string name="month_medium_october">oct</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dic</string>
+
+    <string name="month_shortest_january">E</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">domingo</string>
+    <string name="day_of_week_long_monday">lunes</string>
+    <string name="day_of_week_long_tuesday">martes</string>
+    <string name="day_of_week_long_wednesday">miércoles</string>
+    <string name="day_of_week_long_thursday">jueves</string>
+    <string name="day_of_week_long_friday">viernes</string>
+    <string name="day_of_week_long_saturday">sábado</string>
+
+    <string name="day_of_week_medium_sunday">dom</string>
+    <string name="day_of_week_medium_monday">lun</string>
+    <string name="day_of_week_medium_tuesday">mar</string>
+    <string name="day_of_week_medium_wednesday">mié</string>
+    <string name="day_of_week_medium_thursday">jue</string>
+    <string name="day_of_week_medium_friday">vie</string>
+    <string name="day_of_week_medium_saturday">sáb</string>
+
+    <string name="day_of_week_short_sunday">dom</string>
+    <string name="day_of_week_short_monday">lun</string>
+    <string name="day_of_week_short_tuesday">mar</string>
+    <string name="day_of_week_short_wednesday">mié</string>
+    <string name="day_of_week_short_thursday">jue</string>
+    <string name="day_of_week_short_friday">vie</string>
+    <string name="day_of_week_short_saturday">sáb</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">J</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">ayer</string>
+    <string name="today">hoy</string>
+    <string name="tomorrow">mañana</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e de %B de %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d/%m/%Y</string>
+    <string name="abbrev_month_day_year">%d/%m/%Y</string>
+    <string name="month_day">%-e de %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B de %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-es-rUS/donottranslate-cldr.xml b/core/res/res/values-es-rUS/donottranslate-cldr.xml
new file mode 100644
index 0000000..8668fda
--- /dev/null
+++ b/core/res/res/values-es-rUS/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">enero</string>
+    <string name="month_long_standalone_february">febrero</string>
+    <string name="month_long_standalone_march">marzo</string>
+    <string name="month_long_standalone_april">abril</string>
+    <string name="month_long_standalone_may">mayo</string>
+    <string name="month_long_standalone_june">junio</string>
+    <string name="month_long_standalone_july">julio</string>
+    <string name="month_long_standalone_august">agosto</string>
+    <string name="month_long_standalone_september">septiembre</string>
+    <string name="month_long_standalone_october">octubre</string>
+    <string name="month_long_standalone_november">noviembre</string>
+    <string name="month_long_standalone_december">diciembre</string>
+
+    <string name="month_long_january">enero</string>
+    <string name="month_long_february">febrero</string>
+    <string name="month_long_march">marzo</string>
+    <string name="month_long_april">abril</string>
+    <string name="month_long_may">mayo</string>
+    <string name="month_long_june">junio</string>
+    <string name="month_long_july">julio</string>
+    <string name="month_long_august">agosto</string>
+    <string name="month_long_september">septiembre</string>
+    <string name="month_long_october">octubre</string>
+    <string name="month_long_november">noviembre</string>
+    <string name="month_long_december">diciembre</string>
+
+    <string name="month_medium_january">ene</string>
+    <string name="month_medium_february">feb</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">abr</string>
+    <string name="month_medium_may">may</string>
+    <string name="month_medium_june">jun</string>
+    <string name="month_medium_july">jul</string>
+    <string name="month_medium_august">ago</string>
+    <string name="month_medium_september">sep</string>
+    <string name="month_medium_october">oct</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dic</string>
+
+    <string name="month_shortest_january">E</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">domingo</string>
+    <string name="day_of_week_long_monday">lunes</string>
+    <string name="day_of_week_long_tuesday">martes</string>
+    <string name="day_of_week_long_wednesday">miércoles</string>
+    <string name="day_of_week_long_thursday">jueves</string>
+    <string name="day_of_week_long_friday">viernes</string>
+    <string name="day_of_week_long_saturday">sábado</string>
+
+    <string name="day_of_week_medium_sunday">dom</string>
+    <string name="day_of_week_medium_monday">lun</string>
+    <string name="day_of_week_medium_tuesday">mar</string>
+    <string name="day_of_week_medium_wednesday">mié</string>
+    <string name="day_of_week_medium_thursday">jue</string>
+    <string name="day_of_week_medium_friday">vie</string>
+    <string name="day_of_week_medium_saturday">sáb</string>
+
+    <string name="day_of_week_short_sunday">dom</string>
+    <string name="day_of_week_short_monday">lun</string>
+    <string name="day_of_week_short_tuesday">mar</string>
+    <string name="day_of_week_short_wednesday">mié</string>
+    <string name="day_of_week_short_thursday">jue</string>
+    <string name="day_of_week_short_friday">vie</string>
+    <string name="day_of_week_short_saturday">sáb</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">J</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">ayer</string>
+    <string name="today">hoy</string>
+    <string name="tomorrow">mañana</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%-m/%-e/%Y</string>
+    <string name="numeric_date_format">M/d/yyyy</string>
+    <string name="month_day_year">%-e de %B de %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %b %-e, %Y</string>
+    <string name="abbrev_month_day_year">%b %-e, %Y</string>
+    <string name="month_day">%-e de %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B de %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml
index 7b60a39..6032321 100644
--- a/core/res/res/values-es-rUS/strings.xml
+++ b/core/res/res/values-es-rUS/strings.xml
@@ -436,9 +436,6 @@
     <string name="lockscreen_glogin_password_hint">"Contraseña"</string>
     <string name="lockscreen_glogin_submit_button">"Inicia sesión"</string>
     <string name="lockscreen_glogin_invalid_input">"Nombre de usuario o contraseña incorrecta."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Borrar notificaciones"</string>
@@ -470,9 +467,6 @@
     <string name="menu_enter_shortcut_label">"ingresar"</string>
     <string name="menu_delete_shortcut_label">"borrar"</string>
     <string name="search_go">"Buscar"</string>
-    <string name="today">"Hoy"</string>
-    <string name="yesterday">"Ayer"</string>
-    <string name="tomorrow">"Mañana"</string>
     <string name="oneMonthDurationPast">"hace 1 mes"</string>
     <string name="beforeOneMonthDurationPast">"Anterior a 1 mes atrás"</string>
   <plurals name="num_seconds_ago">
@@ -554,13 +548,6 @@
     <string name="weeks">"semanas"</string>
     <string name="year">"año"</string>
     <string name="years">"años"</string>
-    <string name="sunday">"Domingo"</string>
-    <string name="monday">"Lunes"</string>
-    <string name="tuesday">"Martes"</string>
-    <string name="wednesday">"Miércoles"</string>
-    <string name="thursday">"Jueves"</string>
-    <string name="friday">"Viernes"</string>
-    <string name="saturday">"Sábado"</string>
     <string name="every_weekday">"Los días de semana (lunes a viernes)"</string>
     <string name="daily">"Diariamente"</string>
     <string name="weekly">"Semanalmente el día <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -570,9 +557,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"Lo sentimos, este video no es válido para las transmisiones a este dispositivo."</string>
     <string name="VideoView_error_text_unknown">"Lo sentimos, no se puede reproducir este video."</string>
     <string name="VideoView_error_button">"Aceptar"</string>
-    <string name="am">"AM"</string>
-    <string name="pm">"PM"</string>
-    <string name="numeric_date">"<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -584,23 +568,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"mediodía"</string>
     <string name="Noon">"Mediodía"</string>
     <string name="midnight">"medianoche"</string>
     <string name="Midnight">"Medianoche"</string>
-    <string name="month_day">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>, <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -625,82 +598,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g>, <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>, <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>, <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>, <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"Domingo"</string>
-    <string name="day_of_week_long_monday">"Lunes"</string>
-    <string name="day_of_week_long_tuesday">"Martes"</string>
-    <string name="day_of_week_long_wednesday">"Miércoles"</string>
-    <string name="day_of_week_long_thursday">"Jueves"</string>
-    <string name="day_of_week_long_friday">"Viernes"</string>
-    <string name="day_of_week_long_saturday">"Sábado"</string>
-    <string name="day_of_week_medium_sunday">"Dom."</string>
-    <string name="day_of_week_medium_monday">"Lun."</string>
-    <string name="day_of_week_medium_tuesday">"Mar."</string>
-    <string name="day_of_week_medium_wednesday">"Mié."</string>
-    <string name="day_of_week_medium_thursday">"Jue."</string>
-    <string name="day_of_week_medium_friday">"Vie."</string>
-    <string name="day_of_week_medium_saturday">"Sáb."</string>
-    <string name="day_of_week_short_sunday">"Dom."</string>
-    <string name="day_of_week_short_monday">"Lun."</string>
-    <string name="day_of_week_short_tuesday">"Mar."</string>
-    <string name="day_of_week_short_wednesday">"Nosotros"</string>
-    <string name="day_of_week_short_thursday">"Jue."</string>
-    <string name="day_of_week_short_friday">"V"</string>
-    <string name="day_of_week_short_saturday">"Sáb."</string>
-    <string name="day_of_week_shorter_sunday">"Dom."</string>
-    <string name="day_of_week_shorter_monday">"L"</string>
-    <string name="day_of_week_shorter_tuesday">"Mar."</string>
-    <string name="day_of_week_shorter_wednesday">"M"</string>
-    <string name="day_of_week_shorter_thursday">"Jue."</string>
-    <string name="day_of_week_shorter_friday">"V"</string>
-    <string name="day_of_week_shorter_saturday">"Sáb."</string>
-    <string name="day_of_week_shortest_sunday">"D"</string>
-    <string name="day_of_week_shortest_monday">"L"</string>
-    <string name="day_of_week_shortest_tuesday">"Mar."</string>
-    <string name="day_of_week_shortest_wednesday">"M"</string>
-    <string name="day_of_week_shortest_thursday">"Jue."</string>
-    <string name="day_of_week_shortest_friday">"V"</string>
-    <string name="day_of_week_shortest_saturday">"D"</string>
-    <string name="month_long_january">"Enero"</string>
-    <string name="month_long_february">"Febrero"</string>
-    <string name="month_long_march">"Marzo"</string>
-    <string name="month_long_april">"Abril"</string>
-    <string name="month_long_may">"Mayo"</string>
-    <string name="month_long_june">"Junio"</string>
-    <string name="month_long_july">"Julio"</string>
-    <string name="month_long_august">"Agosto"</string>
-    <string name="month_long_september">"Septiembre"</string>
-    <string name="month_long_october">"Octubre"</string>
-    <string name="month_long_november">"Noviembre"</string>
-    <string name="month_long_december">"Diciembre"</string>
-    <string name="month_medium_january">"Ene."</string>
-    <string name="month_medium_february">"Feb."</string>
-    <string name="month_medium_march">"Mar."</string>
-    <string name="month_medium_april">"Abr."</string>
-    <string name="month_medium_may">"Mayo"</string>
-    <string name="month_medium_june">"Jun."</string>
-    <string name="month_medium_july">"Jul."</string>
-    <string name="month_medium_august">"Ago."</string>
-    <string name="month_medium_september">"Sep."</string>
-    <string name="month_medium_october">"Oct."</string>
-    <string name="month_medium_november">"Nov."</string>
-    <string name="month_medium_december">"Dic."</string>
-    <string name="month_shortest_january">"E"</string>
-    <string name="month_shortest_february">"V"</string>
-    <string name="month_shortest_march">"M"</string>
-    <string name="month_shortest_april">"A"</string>
-    <string name="month_shortest_may">"M"</string>
-    <string name="month_shortest_june">"E"</string>
-    <string name="month_shortest_july">"J"</string>
-    <string name="month_shortest_august">"Ago."</string>
-    <string name="month_shortest_september">"D"</string>
-    <string name="month_shortest_october">"O"</string>
-    <string name="month_shortest_november">"N"</string>
-    <string name="month_shortest_december">"Dic."</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Seleccionar todos"</string>
diff --git a/core/res/res/values-es/donottranslate-cldr.xml b/core/res/res/values-es/donottranslate-cldr.xml
new file mode 100644
index 0000000..967a639
--- /dev/null
+++ b/core/res/res/values-es/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">enero</string>
+    <string name="month_long_standalone_february">febrero</string>
+    <string name="month_long_standalone_march">marzo</string>
+    <string name="month_long_standalone_april">abril</string>
+    <string name="month_long_standalone_may">mayo</string>
+    <string name="month_long_standalone_june">junio</string>
+    <string name="month_long_standalone_july">julio</string>
+    <string name="month_long_standalone_august">agosto</string>
+    <string name="month_long_standalone_september">septiembre</string>
+    <string name="month_long_standalone_october">octubre</string>
+    <string name="month_long_standalone_november">noviembre</string>
+    <string name="month_long_standalone_december">diciembre</string>
+
+    <string name="month_long_january">enero</string>
+    <string name="month_long_february">febrero</string>
+    <string name="month_long_march">marzo</string>
+    <string name="month_long_april">abril</string>
+    <string name="month_long_may">mayo</string>
+    <string name="month_long_june">junio</string>
+    <string name="month_long_july">julio</string>
+    <string name="month_long_august">agosto</string>
+    <string name="month_long_september">septiembre</string>
+    <string name="month_long_october">octubre</string>
+    <string name="month_long_november">noviembre</string>
+    <string name="month_long_december">diciembre</string>
+
+    <string name="month_medium_january">ene</string>
+    <string name="month_medium_february">feb</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">abr</string>
+    <string name="month_medium_may">may</string>
+    <string name="month_medium_june">jun</string>
+    <string name="month_medium_july">jul</string>
+    <string name="month_medium_august">ago</string>
+    <string name="month_medium_september">sep</string>
+    <string name="month_medium_october">oct</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dic</string>
+
+    <string name="month_shortest_january">E</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">domingo</string>
+    <string name="day_of_week_long_monday">lunes</string>
+    <string name="day_of_week_long_tuesday">martes</string>
+    <string name="day_of_week_long_wednesday">miércoles</string>
+    <string name="day_of_week_long_thursday">jueves</string>
+    <string name="day_of_week_long_friday">viernes</string>
+    <string name="day_of_week_long_saturday">sábado</string>
+
+    <string name="day_of_week_medium_sunday">dom</string>
+    <string name="day_of_week_medium_monday">lun</string>
+    <string name="day_of_week_medium_tuesday">mar</string>
+    <string name="day_of_week_medium_wednesday">mié</string>
+    <string name="day_of_week_medium_thursday">jue</string>
+    <string name="day_of_week_medium_friday">vie</string>
+    <string name="day_of_week_medium_saturday">sáb</string>
+
+    <string name="day_of_week_short_sunday">dom</string>
+    <string name="day_of_week_short_monday">lun</string>
+    <string name="day_of_week_short_tuesday">mar</string>
+    <string name="day_of_week_short_wednesday">mié</string>
+    <string name="day_of_week_short_thursday">jue</string>
+    <string name="day_of_week_short_friday">vie</string>
+    <string name="day_of_week_short_saturday">sáb</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">J</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">ayer</string>
+    <string name="today">hoy</string>
+    <string name="tomorrow">mañana</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e de %B de %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d/%m/%Y</string>
+    <string name="abbrev_month_day_year">%d/%m/%Y</string>
+    <string name="month_day">%-e de %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B de %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml
index a9f267a..c55e0ed 100644
--- a/core/res/res/values-es/strings.xml
+++ b/core/res/res/values-es/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"Contraseña"</string>
     <string name="lockscreen_glogin_submit_button">"Acceder"</string>
     <string name="lockscreen_glogin_invalid_input">"Nombre de usuario o contraseña no válido"</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Cerrar notificaciones"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"intro"</string>
     <string name="menu_delete_shortcut_label">"suprimir"</string>
     <string name="search_go">"Buscar"</string>
-    <string name="today">"Hoy"</string>
-    <string name="yesterday">"Ayer"</string>
-    <string name="tomorrow">"Mañana"</string>
     <string name="oneMonthDurationPast">"Hace un mes"</string>
     <string name="beforeOneMonthDurationPast">"Hace más de un mes"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"semanas"</string>
     <string name="year">"año"</string>
     <string name="years">"años"</string>
-    <string name="sunday">"Domingo"</string>
-    <string name="monday">"Lunes"</string>
-    <string name="tuesday">"Martes"</string>
-    <string name="wednesday">"Miércoles"</string>
-    <string name="thursday">"Jueves"</string>
-    <string name="friday">"Viernes"</string>
-    <string name="saturday">"Sábado"</string>
     <string name="every_weekday">"Todos los días laborables (Lun-Vie)"</string>
     <string name="daily">"Diariamente"</string>
     <string name="weekly">"Semanalmente, el <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"Este vídeo no se puede transmitir al dispositivo."</string>
     <string name="VideoView_error_text_unknown">"Este vídeo no se puede reproducir."</string>
     <string name="VideoView_error_button">"Aceptar"</string>
-    <string name="am">"a.m."</string>
-    <string name="pm">"p.m."</string>
-    <string name="numeric_date">"<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>' de '<xliff:g id="MONTH">MMMM</xliff:g>' de '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' de '<xliff:g id="MONTH">MMMM</xliff:g>' de '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>' de '<xliff:g id="MONTH">MMM</xliff:g>' de '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"mediodía"</string>
     <string name="Noon">"Mediodía"</string>
     <string name="midnight">"medianoche"</string>
     <string name="Midnight">"Medianoche"</string>
-    <string name="month_day">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>, <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g>, <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>, <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>, <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>, <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g> de <xliff:g id="MONTH">%b</xliff:g> de <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"Domingo"</string>
-    <string name="day_of_week_long_monday">"Lunes"</string>
-    <string name="day_of_week_long_tuesday">"Martes"</string>
-    <string name="day_of_week_long_wednesday">"Miércoles"</string>
-    <string name="day_of_week_long_thursday">"Jueves"</string>
-    <string name="day_of_week_long_friday">"Viernes"</string>
-    <string name="day_of_week_long_saturday">"Sábado"</string>
-    <string name="day_of_week_medium_sunday">"Dom"</string>
-    <string name="day_of_week_medium_monday">"Lun"</string>
-    <string name="day_of_week_medium_tuesday">"Mar"</string>
-    <string name="day_of_week_medium_wednesday">"Mié"</string>
-    <string name="day_of_week_medium_thursday">"Jue"</string>
-    <string name="day_of_week_medium_friday">"Vie"</string>
-    <string name="day_of_week_medium_saturday">"Sáb"</string>
-    <string name="day_of_week_short_sunday">"Do"</string>
-    <string name="day_of_week_short_monday">"Lu"</string>
-    <string name="day_of_week_short_tuesday">"Ma"</string>
-    <string name="day_of_week_short_wednesday">"Mi"</string>
-    <string name="day_of_week_short_thursday">"Ju"</string>
-    <string name="day_of_week_short_friday">"Vi"</string>
-    <string name="day_of_week_short_saturday">"Sá"</string>
-    <string name="day_of_week_shorter_sunday">"Do"</string>
-    <string name="day_of_week_shorter_monday">"L"</string>
-    <string name="day_of_week_shorter_tuesday">"Ma"</string>
-    <string name="day_of_week_shorter_wednesday">"Mi"</string>
-    <string name="day_of_week_shorter_thursday">"Ju"</string>
-    <string name="day_of_week_shorter_friday">"V"</string>
-    <string name="day_of_week_shorter_saturday">"S"</string>
-    <string name="day_of_week_shortest_sunday">"D"</string>
-    <string name="day_of_week_shortest_monday">"Mz"</string>
-    <string name="day_of_week_shortest_tuesday">"M"</string>
-    <string name="day_of_week_shortest_wednesday">"Mi"</string>
-    <string name="day_of_week_shortest_thursday">"M"</string>
-    <string name="day_of_week_shortest_friday">"V"</string>
-    <string name="day_of_week_shortest_saturday">"D"</string>
-    <string name="month_long_january">"Enero"</string>
-    <string name="month_long_february">"Febrero"</string>
-    <string name="month_long_march">"Marzo"</string>
-    <string name="month_long_april">"Abril"</string>
-    <string name="month_long_may">"Mayo"</string>
-    <string name="month_long_june">"Junio"</string>
-    <string name="month_long_july">"Julio"</string>
-    <string name="month_long_august">"Agosto"</string>
-    <string name="month_long_september">"Septiembre"</string>
-    <string name="month_long_october">"Octubre"</string>
-    <string name="month_long_november">"Noviembre"</string>
-    <string name="month_long_december">"Diciembre"</string>
-    <string name="month_medium_january">"Ene"</string>
-    <string name="month_medium_february">"Feb"</string>
-    <string name="month_medium_march">"Mar"</string>
-    <string name="month_medium_april">"Abr"</string>
-    <string name="month_medium_may">"May"</string>
-    <string name="month_medium_june">"Jun"</string>
-    <string name="month_medium_july">"Jul"</string>
-    <string name="month_medium_august">"Ago"</string>
-    <string name="month_medium_september">"Sep"</string>
-    <string name="month_medium_october">"Oct"</string>
-    <string name="month_medium_november">"Nov"</string>
-    <string name="month_medium_december">"Dic"</string>
-    <string name="month_shortest_january">"E"</string>
-    <string name="month_shortest_february">"V"</string>
-    <string name="month_shortest_march">"Mz"</string>
-    <string name="month_shortest_april">"A"</string>
-    <string name="month_shortest_may">"My"</string>
-    <string name="month_shortest_june">"J"</string>
-    <string name="month_shortest_july">"E"</string>
-    <string name="month_shortest_august">"Ag"</string>
-    <string name="month_shortest_september">"S"</string>
-    <string name="month_shortest_october">"O"</string>
-    <string name="month_shortest_november">"N"</string>
-    <string name="month_shortest_december">"D"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Seleccionar todo"</string>
diff --git a/core/res/res/values-fi-rFI/donottranslate-cldr.xml b/core/res/res/values-fi-rFI/donottranslate-cldr.xml
new file mode 100644
index 0000000..ae28635
--- /dev/null
+++ b/core/res/res/values-fi-rFI/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">tammikuu</string>
+    <string name="month_long_standalone_february">helmikuu</string>
+    <string name="month_long_standalone_march">maaliskuu</string>
+    <string name="month_long_standalone_april">huhtikuu</string>
+    <string name="month_long_standalone_may">toukokuu</string>
+    <string name="month_long_standalone_june">kesäkuu</string>
+    <string name="month_long_standalone_july">heinäkuu</string>
+    <string name="month_long_standalone_august">elokuu</string>
+    <string name="month_long_standalone_september">syyskuu</string>
+    <string name="month_long_standalone_october">lokakuu</string>
+    <string name="month_long_standalone_november">marraskuu</string>
+    <string name="month_long_standalone_december">joulukuu</string>
+
+    <string name="month_long_january">tammikuuta</string>
+    <string name="month_long_february">helmikuuta</string>
+    <string name="month_long_march">maaliskuuta</string>
+    <string name="month_long_april">huhtikuuta</string>
+    <string name="month_long_may">toukokuuta</string>
+    <string name="month_long_june">kesäkuuta</string>
+    <string name="month_long_july">heinäkuuta</string>
+    <string name="month_long_august">elokuuta</string>
+    <string name="month_long_september">syyskuuta</string>
+    <string name="month_long_october">lokakuuta</string>
+    <string name="month_long_november">marraskuuta</string>
+    <string name="month_long_december">joulukuuta</string>
+
+    <string name="month_medium_january">tammikuuta</string>
+    <string name="month_medium_february">helmikuuta</string>
+    <string name="month_medium_march">maaliskuuta</string>
+    <string name="month_medium_april">huhtikuuta</string>
+    <string name="month_medium_may">toukokuuta</string>
+    <string name="month_medium_june">kesäkuuta</string>
+    <string name="month_medium_july">heinäkuuta</string>
+    <string name="month_medium_august">elokuuta</string>
+    <string name="month_medium_september">syyskuuta</string>
+    <string name="month_medium_october">lokakuuta</string>
+    <string name="month_medium_november">marraskuuta</string>
+    <string name="month_medium_december">joulukuuta</string>
+
+    <string name="month_shortest_january">T</string>
+    <string name="month_shortest_february">H</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">H</string>
+    <string name="month_shortest_may">T</string>
+    <string name="month_shortest_june">K</string>
+    <string name="month_shortest_july">H</string>
+    <string name="month_shortest_august">E</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">L</string>
+    <string name="month_shortest_november">M</string>
+    <string name="month_shortest_december">J</string>
+
+    <string name="day_of_week_long_sunday">sunnuntaina</string>
+    <string name="day_of_week_long_monday">maanantaina</string>
+    <string name="day_of_week_long_tuesday">tiistaina</string>
+    <string name="day_of_week_long_wednesday">keskiviikkona</string>
+    <string name="day_of_week_long_thursday">torstaina</string>
+    <string name="day_of_week_long_friday">perjantaina</string>
+    <string name="day_of_week_long_saturday">lauantaina</string>
+
+    <string name="day_of_week_medium_sunday">su</string>
+    <string name="day_of_week_medium_monday">ma</string>
+    <string name="day_of_week_medium_tuesday">ti</string>
+    <string name="day_of_week_medium_wednesday">ke</string>
+    <string name="day_of_week_medium_thursday">to</string>
+    <string name="day_of_week_medium_friday">pe</string>
+    <string name="day_of_week_medium_saturday">la</string>
+
+    <string name="day_of_week_short_sunday">su</string>
+    <string name="day_of_week_short_monday">ma</string>
+    <string name="day_of_week_short_tuesday">ti</string>
+    <string name="day_of_week_short_wednesday">ke</string>
+    <string name="day_of_week_short_thursday">to</string>
+    <string name="day_of_week_short_friday">pe</string>
+    <string name="day_of_week_short_saturday">la</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">K</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">P</string>
+    <string name="day_of_week_shortest_saturday">L</string>
+
+    <string name="am">ap.</string>
+    <string name="pm">ip.</string>
+    <string name="yesterday">eilen</string>
+    <string name="today">tänään</string>
+    <string name="tomorrow">huomenna</string>
+
+    <string name="hour_minute_ampm">%-k.%M</string>
+    <string name="hour_minute_cap_ampm">%-k.%M</string>
+    <string name="numeric_date">%-e.%-m.%Y</string>
+    <string name="numeric_date_format">d.M.yyyy</string>
+    <string name="month_day_year">%-e. %B %Y</string>
+    <string name="time_of_day">%-k.%M.%S</string>
+    <string name="date_and_time">%-k.%M.%S %-e.%-m.%Y</string>
+    <string name="abbrev_month_day_year">%-e.%-m.%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%-B %Y</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%-b %Y</string>
+</resources>
diff --git a/core/res/res/values-fr-rBE/donottranslate-cldr.xml b/core/res/res/values-fr-rBE/donottranslate-cldr.xml
new file mode 100644
index 0000000..b540336
--- /dev/null
+++ b/core/res/res/values-fr-rBE/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">janvier</string>
+    <string name="month_long_standalone_february">février</string>
+    <string name="month_long_standalone_march">mars</string>
+    <string name="month_long_standalone_april">avril</string>
+    <string name="month_long_standalone_may">mai</string>
+    <string name="month_long_standalone_june">juin</string>
+    <string name="month_long_standalone_july">juillet</string>
+    <string name="month_long_standalone_august">août</string>
+    <string name="month_long_standalone_september">septembre</string>
+    <string name="month_long_standalone_october">octobre</string>
+    <string name="month_long_standalone_november">novembre</string>
+    <string name="month_long_standalone_december">décembre</string>
+
+    <string name="month_long_january">janvier</string>
+    <string name="month_long_february">février</string>
+    <string name="month_long_march">mars</string>
+    <string name="month_long_april">avril</string>
+    <string name="month_long_may">mai</string>
+    <string name="month_long_june">juin</string>
+    <string name="month_long_july">juillet</string>
+    <string name="month_long_august">août</string>
+    <string name="month_long_september">septembre</string>
+    <string name="month_long_october">octobre</string>
+    <string name="month_long_november">novembre</string>
+    <string name="month_long_december">décembre</string>
+
+    <string name="month_medium_january">janv.</string>
+    <string name="month_medium_february">févr.</string>
+    <string name="month_medium_march">mars</string>
+    <string name="month_medium_april">avr.</string>
+    <string name="month_medium_may">mai</string>
+    <string name="month_medium_june">juin</string>
+    <string name="month_medium_july">juil.</string>
+    <string name="month_medium_august">août</string>
+    <string name="month_medium_september">sept.</string>
+    <string name="month_medium_october">oct.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">déc.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">dimanche</string>
+    <string name="day_of_week_long_monday">lundi</string>
+    <string name="day_of_week_long_tuesday">mardi</string>
+    <string name="day_of_week_long_wednesday">mercredi</string>
+    <string name="day_of_week_long_thursday">jeudi</string>
+    <string name="day_of_week_long_friday">vendredi</string>
+    <string name="day_of_week_long_saturday">samedi</string>
+
+    <string name="day_of_week_medium_sunday">dim.</string>
+    <string name="day_of_week_medium_monday">lun.</string>
+    <string name="day_of_week_medium_tuesday">mar.</string>
+    <string name="day_of_week_medium_wednesday">mer.</string>
+    <string name="day_of_week_medium_thursday">jeu.</string>
+    <string name="day_of_week_medium_friday">ven.</string>
+    <string name="day_of_week_medium_saturday">sam.</string>
+
+    <string name="day_of_week_short_sunday">dim.</string>
+    <string name="day_of_week_short_monday">lun.</string>
+    <string name="day_of_week_short_tuesday">mar.</string>
+    <string name="day_of_week_short_wednesday">mer.</string>
+    <string name="day_of_week_short_thursday">jeu.</string>
+    <string name="day_of_week_short_friday">ven.</string>
+    <string name="day_of_week_short_saturday">sam.</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">J</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">matin</string>
+    <string name="pm">soir</string>
+    <string name="yesterday">hier</string>
+    <string name="today">aujourd’hui</string>
+    <string name="tomorrow">demain</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%-e/%m/%Y</string>
+    <string name="numeric_date_format">d/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-fr-rCA/donottranslate-cldr.xml b/core/res/res/values-fr-rCA/donottranslate-cldr.xml
new file mode 100644
index 0000000..5fa5d54
--- /dev/null
+++ b/core/res/res/values-fr-rCA/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">janvier</string>
+    <string name="month_long_standalone_february">février</string>
+    <string name="month_long_standalone_march">mars</string>
+    <string name="month_long_standalone_april">avril</string>
+    <string name="month_long_standalone_may">mai</string>
+    <string name="month_long_standalone_june">juin</string>
+    <string name="month_long_standalone_july">juillet</string>
+    <string name="month_long_standalone_august">août</string>
+    <string name="month_long_standalone_september">septembre</string>
+    <string name="month_long_standalone_october">octobre</string>
+    <string name="month_long_standalone_november">novembre</string>
+    <string name="month_long_standalone_december">décembre</string>
+
+    <string name="month_long_january">janvier</string>
+    <string name="month_long_february">février</string>
+    <string name="month_long_march">mars</string>
+    <string name="month_long_april">avril</string>
+    <string name="month_long_may">mai</string>
+    <string name="month_long_june">juin</string>
+    <string name="month_long_july">juillet</string>
+    <string name="month_long_august">août</string>
+    <string name="month_long_september">septembre</string>
+    <string name="month_long_october">octobre</string>
+    <string name="month_long_november">novembre</string>
+    <string name="month_long_december">décembre</string>
+
+    <string name="month_medium_january">janv.</string>
+    <string name="month_medium_february">févr.</string>
+    <string name="month_medium_march">mars</string>
+    <string name="month_medium_april">avr.</string>
+    <string name="month_medium_may">mai</string>
+    <string name="month_medium_june">juin</string>
+    <string name="month_medium_july">juil.</string>
+    <string name="month_medium_august">août</string>
+    <string name="month_medium_september">sept.</string>
+    <string name="month_medium_october">oct.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">déc.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">dimanche</string>
+    <string name="day_of_week_long_monday">lundi</string>
+    <string name="day_of_week_long_tuesday">mardi</string>
+    <string name="day_of_week_long_wednesday">mercredi</string>
+    <string name="day_of_week_long_thursday">jeudi</string>
+    <string name="day_of_week_long_friday">vendredi</string>
+    <string name="day_of_week_long_saturday">samedi</string>
+
+    <string name="day_of_week_medium_sunday">dim.</string>
+    <string name="day_of_week_medium_monday">lun.</string>
+    <string name="day_of_week_medium_tuesday">mar.</string>
+    <string name="day_of_week_medium_wednesday">mer.</string>
+    <string name="day_of_week_medium_thursday">jeu.</string>
+    <string name="day_of_week_medium_friday">ven.</string>
+    <string name="day_of_week_medium_saturday">sam.</string>
+
+    <string name="day_of_week_short_sunday">dim.</string>
+    <string name="day_of_week_short_monday">lun.</string>
+    <string name="day_of_week_short_tuesday">mar.</string>
+    <string name="day_of_week_short_wednesday">mer.</string>
+    <string name="day_of_week_short_thursday">jeu.</string>
+    <string name="day_of_week_short_friday">ven.</string>
+    <string name="day_of_week_short_saturday">sam.</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">J</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">matin</string>
+    <string name="pm">soir</string>
+    <string name="yesterday">hier</string>
+    <string name="today">aujourd’hui</string>
+    <string name="tomorrow">demain</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%Y-%m-%d</string>
+    <string name="numeric_date_format">yyyy-MM-dd</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %Y-%m-%d</string>
+    <string name="abbrev_month_day_year">%Y-%m-%d</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-fr-rCH/donottranslate-cldr.xml b/core/res/res/values-fr-rCH/donottranslate-cldr.xml
new file mode 100644
index 0000000..589c801
--- /dev/null
+++ b/core/res/res/values-fr-rCH/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">janvier</string>
+    <string name="month_long_standalone_february">février</string>
+    <string name="month_long_standalone_march">mars</string>
+    <string name="month_long_standalone_april">avril</string>
+    <string name="month_long_standalone_may">mai</string>
+    <string name="month_long_standalone_june">juin</string>
+    <string name="month_long_standalone_july">juillet</string>
+    <string name="month_long_standalone_august">août</string>
+    <string name="month_long_standalone_september">septembre</string>
+    <string name="month_long_standalone_october">octobre</string>
+    <string name="month_long_standalone_november">novembre</string>
+    <string name="month_long_standalone_december">décembre</string>
+
+    <string name="month_long_january">janvier</string>
+    <string name="month_long_february">février</string>
+    <string name="month_long_march">mars</string>
+    <string name="month_long_april">avril</string>
+    <string name="month_long_may">mai</string>
+    <string name="month_long_june">juin</string>
+    <string name="month_long_july">juillet</string>
+    <string name="month_long_august">août</string>
+    <string name="month_long_september">septembre</string>
+    <string name="month_long_october">octobre</string>
+    <string name="month_long_november">novembre</string>
+    <string name="month_long_december">décembre</string>
+
+    <string name="month_medium_january">janv.</string>
+    <string name="month_medium_february">févr.</string>
+    <string name="month_medium_march">mars</string>
+    <string name="month_medium_april">avr.</string>
+    <string name="month_medium_may">mai</string>
+    <string name="month_medium_june">juin</string>
+    <string name="month_medium_july">juil.</string>
+    <string name="month_medium_august">août</string>
+    <string name="month_medium_september">sept.</string>
+    <string name="month_medium_october">oct.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">déc.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">dimanche</string>
+    <string name="day_of_week_long_monday">lundi</string>
+    <string name="day_of_week_long_tuesday">mardi</string>
+    <string name="day_of_week_long_wednesday">mercredi</string>
+    <string name="day_of_week_long_thursday">jeudi</string>
+    <string name="day_of_week_long_friday">vendredi</string>
+    <string name="day_of_week_long_saturday">samedi</string>
+
+    <string name="day_of_week_medium_sunday">dim.</string>
+    <string name="day_of_week_medium_monday">lun.</string>
+    <string name="day_of_week_medium_tuesday">mar.</string>
+    <string name="day_of_week_medium_wednesday">mer.</string>
+    <string name="day_of_week_medium_thursday">jeu.</string>
+    <string name="day_of_week_medium_friday">ven.</string>
+    <string name="day_of_week_medium_saturday">sam.</string>
+
+    <string name="day_of_week_short_sunday">dim.</string>
+    <string name="day_of_week_short_monday">lun.</string>
+    <string name="day_of_week_short_tuesday">mar.</string>
+    <string name="day_of_week_short_wednesday">mer.</string>
+    <string name="day_of_week_short_thursday">jeu.</string>
+    <string name="day_of_week_short_friday">ven.</string>
+    <string name="day_of_week_short_saturday">sam.</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">J</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">matin</string>
+    <string name="pm">soir</string>
+    <string name="yesterday">hier</string>
+    <string name="today">aujourd’hui</string>
+    <string name="tomorrow">demain</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-fr-rFR/donottranslate-cldr.xml b/core/res/res/values-fr-rFR/donottranslate-cldr.xml
new file mode 100644
index 0000000..1213ed8
--- /dev/null
+++ b/core/res/res/values-fr-rFR/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">janvier</string>
+    <string name="month_long_standalone_february">février</string>
+    <string name="month_long_standalone_march">mars</string>
+    <string name="month_long_standalone_april">avril</string>
+    <string name="month_long_standalone_may">mai</string>
+    <string name="month_long_standalone_june">juin</string>
+    <string name="month_long_standalone_july">juillet</string>
+    <string name="month_long_standalone_august">août</string>
+    <string name="month_long_standalone_september">septembre</string>
+    <string name="month_long_standalone_october">octobre</string>
+    <string name="month_long_standalone_november">novembre</string>
+    <string name="month_long_standalone_december">décembre</string>
+
+    <string name="month_long_january">janvier</string>
+    <string name="month_long_february">février</string>
+    <string name="month_long_march">mars</string>
+    <string name="month_long_april">avril</string>
+    <string name="month_long_may">mai</string>
+    <string name="month_long_june">juin</string>
+    <string name="month_long_july">juillet</string>
+    <string name="month_long_august">août</string>
+    <string name="month_long_september">septembre</string>
+    <string name="month_long_october">octobre</string>
+    <string name="month_long_november">novembre</string>
+    <string name="month_long_december">décembre</string>
+
+    <string name="month_medium_january">janv.</string>
+    <string name="month_medium_february">févr.</string>
+    <string name="month_medium_march">mars</string>
+    <string name="month_medium_april">avr.</string>
+    <string name="month_medium_may">mai</string>
+    <string name="month_medium_june">juin</string>
+    <string name="month_medium_july">juil.</string>
+    <string name="month_medium_august">août</string>
+    <string name="month_medium_september">sept.</string>
+    <string name="month_medium_october">oct.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">déc.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">dimanche</string>
+    <string name="day_of_week_long_monday">lundi</string>
+    <string name="day_of_week_long_tuesday">mardi</string>
+    <string name="day_of_week_long_wednesday">mercredi</string>
+    <string name="day_of_week_long_thursday">jeudi</string>
+    <string name="day_of_week_long_friday">vendredi</string>
+    <string name="day_of_week_long_saturday">samedi</string>
+
+    <string name="day_of_week_medium_sunday">dim.</string>
+    <string name="day_of_week_medium_monday">lun.</string>
+    <string name="day_of_week_medium_tuesday">mar.</string>
+    <string name="day_of_week_medium_wednesday">mer.</string>
+    <string name="day_of_week_medium_thursday">jeu.</string>
+    <string name="day_of_week_medium_friday">ven.</string>
+    <string name="day_of_week_medium_saturday">sam.</string>
+
+    <string name="day_of_week_short_sunday">dim.</string>
+    <string name="day_of_week_short_monday">lun.</string>
+    <string name="day_of_week_short_tuesday">mar.</string>
+    <string name="day_of_week_short_wednesday">mer.</string>
+    <string name="day_of_week_short_thursday">jeu.</string>
+    <string name="day_of_week_short_friday">ven.</string>
+    <string name="day_of_week_short_saturday">sam.</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">J</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">matin</string>
+    <string name="pm">soir</string>
+    <string name="yesterday">hier</string>
+    <string name="today">aujourd’hui</string>
+    <string name="tomorrow">demain</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-fr/donottranslate-cldr.xml b/core/res/res/values-fr/donottranslate-cldr.xml
new file mode 100644
index 0000000..1213ed8
--- /dev/null
+++ b/core/res/res/values-fr/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">janvier</string>
+    <string name="month_long_standalone_february">février</string>
+    <string name="month_long_standalone_march">mars</string>
+    <string name="month_long_standalone_april">avril</string>
+    <string name="month_long_standalone_may">mai</string>
+    <string name="month_long_standalone_june">juin</string>
+    <string name="month_long_standalone_july">juillet</string>
+    <string name="month_long_standalone_august">août</string>
+    <string name="month_long_standalone_september">septembre</string>
+    <string name="month_long_standalone_october">octobre</string>
+    <string name="month_long_standalone_november">novembre</string>
+    <string name="month_long_standalone_december">décembre</string>
+
+    <string name="month_long_january">janvier</string>
+    <string name="month_long_february">février</string>
+    <string name="month_long_march">mars</string>
+    <string name="month_long_april">avril</string>
+    <string name="month_long_may">mai</string>
+    <string name="month_long_june">juin</string>
+    <string name="month_long_july">juillet</string>
+    <string name="month_long_august">août</string>
+    <string name="month_long_september">septembre</string>
+    <string name="month_long_october">octobre</string>
+    <string name="month_long_november">novembre</string>
+    <string name="month_long_december">décembre</string>
+
+    <string name="month_medium_january">janv.</string>
+    <string name="month_medium_february">févr.</string>
+    <string name="month_medium_march">mars</string>
+    <string name="month_medium_april">avr.</string>
+    <string name="month_medium_may">mai</string>
+    <string name="month_medium_june">juin</string>
+    <string name="month_medium_july">juil.</string>
+    <string name="month_medium_august">août</string>
+    <string name="month_medium_september">sept.</string>
+    <string name="month_medium_october">oct.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">déc.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">dimanche</string>
+    <string name="day_of_week_long_monday">lundi</string>
+    <string name="day_of_week_long_tuesday">mardi</string>
+    <string name="day_of_week_long_wednesday">mercredi</string>
+    <string name="day_of_week_long_thursday">jeudi</string>
+    <string name="day_of_week_long_friday">vendredi</string>
+    <string name="day_of_week_long_saturday">samedi</string>
+
+    <string name="day_of_week_medium_sunday">dim.</string>
+    <string name="day_of_week_medium_monday">lun.</string>
+    <string name="day_of_week_medium_tuesday">mar.</string>
+    <string name="day_of_week_medium_wednesday">mer.</string>
+    <string name="day_of_week_medium_thursday">jeu.</string>
+    <string name="day_of_week_medium_friday">ven.</string>
+    <string name="day_of_week_medium_saturday">sam.</string>
+
+    <string name="day_of_week_short_sunday">dim.</string>
+    <string name="day_of_week_short_monday">lun.</string>
+    <string name="day_of_week_short_tuesday">mar.</string>
+    <string name="day_of_week_short_wednesday">mer.</string>
+    <string name="day_of_week_short_thursday">jeu.</string>
+    <string name="day_of_week_short_friday">ven.</string>
+    <string name="day_of_week_short_saturday">sam.</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">J</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">matin</string>
+    <string name="pm">soir</string>
+    <string name="yesterday">hier</string>
+    <string name="today">aujourd’hui</string>
+    <string name="tomorrow">demain</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml
index c664d1a..736caf7 100644
--- a/core/res/res/values-fr/strings.xml
+++ b/core/res/res/values-fr/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"Mot de passe"</string>
     <string name="lockscreen_glogin_submit_button">"Se connecter"</string>
     <string name="lockscreen_glogin_invalid_input">"Nom d\'utilisateur ou mot de passe incorrect."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Effacer les notifications"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"entrée"</string>
     <string name="menu_delete_shortcut_label">"supprimer"</string>
     <string name="search_go">"Rechercher"</string>
-    <string name="today">"Aujourd\'hui"</string>
-    <string name="yesterday">"Hier"</string>
-    <string name="tomorrow">"Demain"</string>
     <string name="oneMonthDurationPast">"Il y a 1 mois"</string>
     <string name="beforeOneMonthDurationPast">"Il y a plus d\'un mois"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"semaines"</string>
     <string name="year">"année"</string>
     <string name="years">"années"</string>
-    <string name="sunday">"dimanche"</string>
-    <string name="monday">"lundi"</string>
-    <string name="tuesday">"mardi"</string>
-    <string name="wednesday">"mercredi"</string>
-    <string name="thursday">"jeudi"</string>
-    <string name="friday">"vendredi"</string>
-    <string name="saturday">"samedi"</string>
     <string name="every_weekday">"Tous les jours ouvrés (lun.- ven.)"</string>
     <string name="daily">"Tous les jours"</string>
     <string name="weekly">"Toutes les semaines le <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"Désolé, cette vidéo ne peut être lue sur cet appareil."</string>
     <string name="VideoView_error_text_unknown">"Désolé, impossible de lire cette vidéo."</string>
     <string name="VideoView_error_button">"OK"</string>
-    <string name="am">"AM"</string>
-    <string name="pm">"PM"</string>
-    <string name="numeric_date">"<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g> <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"midi"</string>
     <string name="Noon">"Midi"</string>
     <string name="midnight">"minuit"</string>
     <string name="Midnight">"Minuit"</string>
-    <string name="month_day">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"dimanche"</string>
-    <string name="day_of_week_long_monday">"lundi"</string>
-    <string name="day_of_week_long_tuesday">"mardi"</string>
-    <string name="day_of_week_long_wednesday">"mercredi"</string>
-    <string name="day_of_week_long_thursday">"jeudi"</string>
-    <string name="day_of_week_long_friday">"vendredi"</string>
-    <string name="day_of_week_long_saturday">"samedi"</string>
-    <string name="day_of_week_medium_sunday">"dim."</string>
-    <string name="day_of_week_medium_monday">"Lun"</string>
-    <string name="day_of_week_medium_tuesday">"Mar"</string>
-    <string name="day_of_week_medium_wednesday">"Mer"</string>
-    <string name="day_of_week_medium_thursday">"Jeu"</string>
-    <string name="day_of_week_medium_friday">"Ven"</string>
-    <string name="day_of_week_medium_saturday">"Sam"</string>
-    <string name="day_of_week_short_sunday">"Dim"</string>
-    <string name="day_of_week_short_monday">"Lun"</string>
-    <string name="day_of_week_short_tuesday">"Mar"</string>
-    <string name="day_of_week_short_wednesday">"Mer"</string>
-    <string name="day_of_week_short_thursday">"Jeu"</string>
-    <string name="day_of_week_short_friday">"Ven"</string>
-    <string name="day_of_week_short_saturday">"Sam"</string>
-    <string name="day_of_week_shorter_sunday">"Dim"</string>
-    <string name="day_of_week_shorter_monday">"Lun"</string>
-    <string name="day_of_week_shorter_tuesday">"Mar"</string>
-    <string name="day_of_week_shorter_wednesday">"Mer"</string>
-    <string name="day_of_week_shorter_thursday">"Jeu"</string>
-    <string name="day_of_week_shorter_friday">"Ven"</string>
-    <string name="day_of_week_shorter_saturday">"sam."</string>
-    <string name="day_of_week_shortest_sunday">"Dim"</string>
-    <string name="day_of_week_shortest_monday">"Lun"</string>
-    <string name="day_of_week_shortest_tuesday">"Mar"</string>
-    <string name="day_of_week_shortest_wednesday">"Mer"</string>
-    <string name="day_of_week_shortest_thursday">"Jeu"</string>
-    <string name="day_of_week_shortest_friday">"Ven"</string>
-    <string name="day_of_week_shortest_saturday">"Sam"</string>
-    <string name="month_long_january">"janvier"</string>
-    <string name="month_long_february">"février"</string>
-    <string name="month_long_march">"mars"</string>
-    <string name="month_long_april">"avril"</string>
-    <string name="month_long_may">"mai"</string>
-    <string name="month_long_june">"juin"</string>
-    <string name="month_long_july">"juillet"</string>
-    <string name="month_long_august">"août"</string>
-    <string name="month_long_september">"septembre"</string>
-    <string name="month_long_october">"octobre"</string>
-    <string name="month_long_november">"novembre"</string>
-    <string name="month_long_december">"décembre"</string>
-    <string name="month_medium_january">"janv."</string>
-    <string name="month_medium_february">"févr."</string>
-    <string name="month_medium_march">"mars"</string>
-    <string name="month_medium_april">"avr."</string>
-    <string name="month_medium_may">"mai"</string>
-    <string name="month_medium_june">"juin"</string>
-    <string name="month_medium_july">"juil."</string>
-    <string name="month_medium_august">"août"</string>
-    <string name="month_medium_september">"sept."</string>
-    <string name="month_medium_october">"oct."</string>
-    <string name="month_medium_november">"nov."</string>
-    <string name="month_medium_december">"déc."</string>
-    <string name="month_shortest_january">"jan."</string>
-    <string name="month_shortest_february">"Ven"</string>
-    <string name="month_shortest_march">"mars"</string>
-    <string name="month_shortest_april">"avr."</string>
-    <string name="month_shortest_may">"mai"</string>
-    <string name="month_shortest_june">"juin"</string>
-    <string name="month_shortest_july">"juil."</string>
-    <string name="month_shortest_august">"août"</string>
-    <string name="month_shortest_september">"sept."</string>
-    <string name="month_shortest_october">"oct."</string>
-    <string name="month_shortest_november">"nov."</string>
-    <string name="month_shortest_december">"déc."</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Tout sélectionner"</string>
diff --git a/core/res/res/values-he-rIL/donottranslate-cldr.xml b/core/res/res/values-he-rIL/donottranslate-cldr.xml
new file mode 100644
index 0000000..1b1aafa
--- /dev/null
+++ b/core/res/res/values-he-rIL/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">ינואר</string>
+    <string name="month_long_standalone_february">פברואר</string>
+    <string name="month_long_standalone_march">מרס</string>
+    <string name="month_long_standalone_april">אפריל</string>
+    <string name="month_long_standalone_may">מאי</string>
+    <string name="month_long_standalone_june">יוני</string>
+    <string name="month_long_standalone_july">יולי</string>
+    <string name="month_long_standalone_august">אוגוסט</string>
+    <string name="month_long_standalone_september">ספטמבר</string>
+    <string name="month_long_standalone_october">אוקטובר</string>
+    <string name="month_long_standalone_november">נובמבר</string>
+    <string name="month_long_standalone_december">דצמבר</string>
+
+    <string name="month_long_january">ינואר</string>
+    <string name="month_long_february">פברואר</string>
+    <string name="month_long_march">מרס</string>
+    <string name="month_long_april">אפריל</string>
+    <string name="month_long_may">מאי</string>
+    <string name="month_long_june">יוני</string>
+    <string name="month_long_july">יולי</string>
+    <string name="month_long_august">אוגוסט</string>
+    <string name="month_long_september">ספטמבר</string>
+    <string name="month_long_october">אוקטובר</string>
+    <string name="month_long_november">נובמבר</string>
+    <string name="month_long_december">דצמבר</string>
+
+    <string name="month_medium_january">ינו</string>
+    <string name="month_medium_february">פבר</string>
+    <string name="month_medium_march">מרס</string>
+    <string name="month_medium_april">אפר</string>
+    <string name="month_medium_may">מאי</string>
+    <string name="month_medium_june">יונ</string>
+    <string name="month_medium_july">יול</string>
+    <string name="month_medium_august">אוג</string>
+    <string name="month_medium_september">ספט</string>
+    <string name="month_medium_october">אוק</string>
+    <string name="month_medium_november">נוב</string>
+    <string name="month_medium_december">דצמ</string>
+
+    <string name="month_shortest_january">1</string>
+    <string name="month_shortest_february">2</string>
+    <string name="month_shortest_march">3</string>
+    <string name="month_shortest_april">4</string>
+    <string name="month_shortest_may">5</string>
+    <string name="month_shortest_june">6</string>
+    <string name="month_shortest_july">7</string>
+    <string name="month_shortest_august">8</string>
+    <string name="month_shortest_september">9</string>
+    <string name="month_shortest_october">10</string>
+    <string name="month_shortest_november">11</string>
+    <string name="month_shortest_december">12</string>
+
+    <string name="day_of_week_long_sunday">יום ראשון</string>
+    <string name="day_of_week_long_monday">יום שני</string>
+    <string name="day_of_week_long_tuesday">יום שלישי</string>
+    <string name="day_of_week_long_wednesday">יום רביעי</string>
+    <string name="day_of_week_long_thursday">יום חמישי</string>
+    <string name="day_of_week_long_friday">יום שישי</string>
+    <string name="day_of_week_long_saturday">יום שבת</string>
+
+    <string name="day_of_week_medium_sunday">יום א'</string>
+    <string name="day_of_week_medium_monday">יום ב'</string>
+    <string name="day_of_week_medium_tuesday">יום ג'</string>
+    <string name="day_of_week_medium_wednesday">יום ד'</string>
+    <string name="day_of_week_medium_thursday">יום ה'</string>
+    <string name="day_of_week_medium_friday">יום ו'</string>
+    <string name="day_of_week_medium_saturday">שבת</string>
+
+    <string name="day_of_week_short_sunday">יום א'</string>
+    <string name="day_of_week_short_monday">יום ב'</string>
+    <string name="day_of_week_short_tuesday">יום ג'</string>
+    <string name="day_of_week_short_wednesday">יום ד'</string>
+    <string name="day_of_week_short_thursday">יום ה'</string>
+    <string name="day_of_week_short_friday">יום ו'</string>
+    <string name="day_of_week_short_saturday">שבת</string>
+
+    <string name="day_of_week_shortest_sunday">א</string>
+    <string name="day_of_week_shortest_monday">ב</string>
+    <string name="day_of_week_shortest_tuesday">ג</string>
+    <string name="day_of_week_shortest_wednesday">ד</string>
+    <string name="day_of_week_shortest_thursday">ה</string>
+    <string name="day_of_week_shortest_friday">ו</string>
+    <string name="day_of_week_shortest_saturday">ש</string>
+
+    <string name="am">לפנה"צ</string>
+    <string name="pm">אחה"צ</string>
+    <string name="yesterday">אתמול</string>
+    <string name="today">היום</string>
+    <string name="tomorrow">מחר</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e ב%B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e.%-m.%Y</string>
+    <string name="abbrev_month_day_year">%-e.%-m.%Y</string>
+    <string name="month_day">%-e ב%B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-hi-rIN/donottranslate-cldr.xml b/core/res/res/values-hi-rIN/donottranslate-cldr.xml
new file mode 100644
index 0000000..8c6a34f7
--- /dev/null
+++ b/core/res/res/values-hi-rIN/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">जनवरी</string>
+    <string name="month_long_standalone_february">फरवरी</string>
+    <string name="month_long_standalone_march">मार्च</string>
+    <string name="month_long_standalone_april">अप्रैल</string>
+    <string name="month_long_standalone_may">मई</string>
+    <string name="month_long_standalone_june">जून</string>
+    <string name="month_long_standalone_july">जुलाई</string>
+    <string name="month_long_standalone_august">अगस्त</string>
+    <string name="month_long_standalone_september">सितम्बर</string>
+    <string name="month_long_standalone_october">अक्तूबर</string>
+    <string name="month_long_standalone_november">नवम्बर</string>
+    <string name="month_long_standalone_december">दिसम्बर</string>
+
+    <string name="month_long_january">जनवरी</string>
+    <string name="month_long_february">फरवरी</string>
+    <string name="month_long_march">मार्च</string>
+    <string name="month_long_april">अप्रैल</string>
+    <string name="month_long_may">मई</string>
+    <string name="month_long_june">जून</string>
+    <string name="month_long_july">जुलाई</string>
+    <string name="month_long_august">अगस्त</string>
+    <string name="month_long_september">सितम्बर</string>
+    <string name="month_long_october">अक्तूबर</string>
+    <string name="month_long_november">नवम्बर</string>
+    <string name="month_long_december">दिसम्बर</string>
+
+    <string name="month_medium_january">जनवरी</string>
+    <string name="month_medium_february">फरवरी</string>
+    <string name="month_medium_march">मार्च</string>
+    <string name="month_medium_april">अप्रैल</string>
+    <string name="month_medium_may">मई</string>
+    <string name="month_medium_june">जून</string>
+    <string name="month_medium_july">जुलाई</string>
+    <string name="month_medium_august">अगस्त</string>
+    <string name="month_medium_september">सितम्बर</string>
+    <string name="month_medium_october">अक्तूबर</string>
+    <string name="month_medium_november">नवम्बर</string>
+    <string name="month_medium_december">दिसम्बर</string>
+
+    <string name="month_shortest_january">ज</string>
+    <string name="month_shortest_february">फ़</string>
+    <string name="month_shortest_march">मा</string>
+    <string name="month_shortest_april">अ</string>
+    <string name="month_shortest_may">म</string>
+    <string name="month_shortest_june">जू</string>
+    <string name="month_shortest_july">जु</string>
+    <string name="month_shortest_august">अ</string>
+    <string name="month_shortest_september">सि</string>
+    <string name="month_shortest_october">अ</string>
+    <string name="month_shortest_november">न</string>
+    <string name="month_shortest_december">दि</string>
+
+    <string name="day_of_week_long_sunday">रविवार</string>
+    <string name="day_of_week_long_monday">सोमवार</string>
+    <string name="day_of_week_long_tuesday">मंगलवार</string>
+    <string name="day_of_week_long_wednesday">बुधवार</string>
+    <string name="day_of_week_long_thursday">गुरुवार</string>
+    <string name="day_of_week_long_friday">शुक्रवार</string>
+    <string name="day_of_week_long_saturday">शनिवार</string>
+
+    <string name="day_of_week_medium_sunday">रवि</string>
+    <string name="day_of_week_medium_monday">सोम</string>
+    <string name="day_of_week_medium_tuesday">मंगल</string>
+    <string name="day_of_week_medium_wednesday">बुध</string>
+    <string name="day_of_week_medium_thursday">गुरु</string>
+    <string name="day_of_week_medium_friday">शुक्र</string>
+    <string name="day_of_week_medium_saturday">शनि</string>
+
+    <string name="day_of_week_short_sunday">रवि</string>
+    <string name="day_of_week_short_monday">सोम</string>
+    <string name="day_of_week_short_tuesday">मंगल</string>
+    <string name="day_of_week_short_wednesday">बुध</string>
+    <string name="day_of_week_short_thursday">गुरु</string>
+    <string name="day_of_week_short_friday">शुक्र</string>
+    <string name="day_of_week_short_saturday">शनि</string>
+
+    <string name="day_of_week_shortest_sunday">र</string>
+    <string name="day_of_week_shortest_monday">सो</string>
+    <string name="day_of_week_shortest_tuesday">मं</string>
+    <string name="day_of_week_shortest_wednesday">बु</string>
+    <string name="day_of_week_shortest_thursday">गु</string>
+    <string name="day_of_week_shortest_friday">शु</string>
+    <string name="day_of_week_shortest_saturday">श</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%-e-%-m-%Y</string>
+    <string name="numeric_date_format">d-M-yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %d-%m-%Y</string>
+    <string name="abbrev_month_day_year">%d-%m-%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-hu-rHU/donottranslate-cldr.xml b/core/res/res/values-hu-rHU/donottranslate-cldr.xml
new file mode 100644
index 0000000..6085c6f
--- /dev/null
+++ b/core/res/res/values-hu-rHU/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">január</string>
+    <string name="month_long_standalone_february">február</string>
+    <string name="month_long_standalone_march">március</string>
+    <string name="month_long_standalone_april">április</string>
+    <string name="month_long_standalone_may">május</string>
+    <string name="month_long_standalone_june">június</string>
+    <string name="month_long_standalone_july">július</string>
+    <string name="month_long_standalone_august">augusztus</string>
+    <string name="month_long_standalone_september">szeptember</string>
+    <string name="month_long_standalone_october">október</string>
+    <string name="month_long_standalone_november">november</string>
+    <string name="month_long_standalone_december">december</string>
+
+    <string name="month_long_january">január</string>
+    <string name="month_long_february">február</string>
+    <string name="month_long_march">március</string>
+    <string name="month_long_april">április</string>
+    <string name="month_long_may">május</string>
+    <string name="month_long_june">június</string>
+    <string name="month_long_july">július</string>
+    <string name="month_long_august">augusztus</string>
+    <string name="month_long_september">szeptember</string>
+    <string name="month_long_october">október</string>
+    <string name="month_long_november">november</string>
+    <string name="month_long_december">december</string>
+
+    <string name="month_medium_january">jan.</string>
+    <string name="month_medium_february">febr.</string>
+    <string name="month_medium_march">márc.</string>
+    <string name="month_medium_april">ápr.</string>
+    <string name="month_medium_may">máj.</string>
+    <string name="month_medium_june">jún.</string>
+    <string name="month_medium_july">júl.</string>
+    <string name="month_medium_august">aug.</string>
+    <string name="month_medium_september">szept.</string>
+    <string name="month_medium_october">okt.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">dec.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">Á</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">vasárnap</string>
+    <string name="day_of_week_long_monday">hétfő</string>
+    <string name="day_of_week_long_tuesday">kedd</string>
+    <string name="day_of_week_long_wednesday">szerda</string>
+    <string name="day_of_week_long_thursday">csütörtök</string>
+    <string name="day_of_week_long_friday">péntek</string>
+    <string name="day_of_week_long_saturday">szombat</string>
+
+    <string name="day_of_week_medium_sunday">V</string>
+    <string name="day_of_week_medium_monday">H</string>
+    <string name="day_of_week_medium_tuesday">K</string>
+    <string name="day_of_week_medium_wednesday">Sze</string>
+    <string name="day_of_week_medium_thursday">Cs</string>
+    <string name="day_of_week_medium_friday">P</string>
+    <string name="day_of_week_medium_saturday">Szo</string>
+
+    <string name="day_of_week_short_sunday">V</string>
+    <string name="day_of_week_short_monday">H</string>
+    <string name="day_of_week_short_tuesday">K</string>
+    <string name="day_of_week_short_wednesday">Sze</string>
+    <string name="day_of_week_short_thursday">Cs</string>
+    <string name="day_of_week_short_friday">P</string>
+    <string name="day_of_week_short_saturday">Szo</string>
+
+    <string name="day_of_week_shortest_sunday">V</string>
+    <string name="day_of_week_shortest_monday">H</string>
+    <string name="day_of_week_shortest_tuesday">K</string>
+    <string name="day_of_week_shortest_wednesday">S</string>
+    <string name="day_of_week_shortest_thursday">C</string>
+    <string name="day_of_week_shortest_friday">P</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">de.</string>
+    <string name="pm">du.</string>
+    <string name="yesterday">tegnap</string>
+    <string name="today">ma</string>
+    <string name="tomorrow">holnap</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%Y.%m.%d.</string>
+    <string name="numeric_date_format">yyyy.MM.dd.</string>
+    <string name="month_day_year">%Y. %B %-e.</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S %Y.%m.%d.</string>
+    <string name="abbrev_month_day_year">%Y.%m.%d.</string>
+    <string name="month_day">%B %-e.</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%b %-e.</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-id-rID/donottranslate-cldr.xml b/core/res/res/values-id-rID/donottranslate-cldr.xml
new file mode 100644
index 0000000..0a15fed
--- /dev/null
+++ b/core/res/res/values-id-rID/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Januari</string>
+    <string name="month_long_standalone_february">Februari</string>
+    <string name="month_long_standalone_march">Maret</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">Mei</string>
+    <string name="month_long_standalone_june">Juni</string>
+    <string name="month_long_standalone_july">Juli</string>
+    <string name="month_long_standalone_august">Agustus</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">Oktober</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">Desember</string>
+
+    <string name="month_long_january">Januari</string>
+    <string name="month_long_february">Februari</string>
+    <string name="month_long_march">Maret</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">Mei</string>
+    <string name="month_long_june">Juni</string>
+    <string name="month_long_july">Juli</string>
+    <string name="month_long_august">Agustus</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">Oktober</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">Desember</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">Mei</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Agu</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Okt</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Des</string>
+
+    <string name="month_shortest_january">1</string>
+    <string name="month_shortest_february">2</string>
+    <string name="month_shortest_march">3</string>
+    <string name="month_shortest_april">4</string>
+    <string name="month_shortest_may">5</string>
+    <string name="month_shortest_june">6</string>
+    <string name="month_shortest_july">7</string>
+    <string name="month_shortest_august">8</string>
+    <string name="month_shortest_september">9</string>
+    <string name="month_shortest_october">10</string>
+    <string name="month_shortest_november">11</string>
+    <string name="month_shortest_december">12</string>
+
+    <string name="day_of_week_long_sunday">Minggu</string>
+    <string name="day_of_week_long_monday">Senin</string>
+    <string name="day_of_week_long_tuesday">Selasa</string>
+    <string name="day_of_week_long_wednesday">Rabu</string>
+    <string name="day_of_week_long_thursday">Kamis</string>
+    <string name="day_of_week_long_friday">Jumat</string>
+    <string name="day_of_week_long_saturday">Sabtu</string>
+
+    <string name="day_of_week_medium_sunday">Min</string>
+    <string name="day_of_week_medium_monday">Sen</string>
+    <string name="day_of_week_medium_tuesday">Sel</string>
+    <string name="day_of_week_medium_wednesday">Rab</string>
+    <string name="day_of_week_medium_thursday">Kam</string>
+    <string name="day_of_week_medium_friday">Jum</string>
+    <string name="day_of_week_medium_saturday">Sab</string>
+
+    <string name="day_of_week_short_sunday">Min</string>
+    <string name="day_of_week_short_monday">Sen</string>
+    <string name="day_of_week_short_tuesday">Sel</string>
+    <string name="day_of_week_short_wednesday">Rab</string>
+    <string name="day_of_week_short_thursday">Kam</string>
+    <string name="day_of_week_short_friday">Jum</string>
+    <string name="day_of_week_short_saturday">Sab</string>
+
+    <string name="day_of_week_shortest_sunday">1</string>
+    <string name="day_of_week_shortest_monday">2</string>
+    <string name="day_of_week_shortest_tuesday">3</string>
+    <string name="day_of_week_shortest_wednesday">4</string>
+    <string name="day_of_week_shortest_thursday">5</string>
+    <string name="day_of_week_shortest_friday">6</string>
+    <string name="day_of_week_shortest_saturday">7</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%B %-e</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-it-rCH/donottranslate-cldr.xml b/core/res/res/values-it-rCH/donottranslate-cldr.xml
new file mode 100644
index 0000000..4129d6c
--- /dev/null
+++ b/core/res/res/values-it-rCH/donottranslate-cldr.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Gennaio</string>
+    <string name="month_long_standalone_february">Febbraio</string>
+    <string name="month_long_standalone_march">Marzo</string>
+    <string name="month_long_standalone_april">Aprile</string>
+    <string name="month_long_standalone_may">Maggio</string>
+    <string name="month_long_standalone_june">Giugno</string>
+    <string name="month_long_standalone_july">Luglio</string>
+
+    <string name="month_long_january">gennaio</string>
+    <string name="month_long_february">febbraio</string>
+    <string name="month_long_march">marzo</string>
+    <string name="month_long_april">aprile</string>
+    <string name="month_long_may">maggio</string>
+    <string name="month_long_june">giugno</string>
+    <string name="month_long_july">Luglio</string>
+    <string name="month_long_august">agosto</string>
+    <string name="month_long_september">settembre</string>
+    <string name="month_long_october">ottobre</string>
+    <string name="month_long_november">novembre</string>
+    <string name="month_long_december">dicembre</string>
+
+    <string name="month_medium_january">gen</string>
+    <string name="month_medium_february">feb</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">apr</string>
+    <string name="month_medium_may">mag</string>
+    <string name="month_medium_june">giu</string>
+    <string name="month_medium_july">lug</string>
+    <string name="month_medium_august">ago</string>
+    <string name="month_medium_september">set</string>
+    <string name="month_medium_october">ott</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dic</string>
+
+    <string name="month_shortest_january">G</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">G</string>
+    <string name="month_shortest_july">L</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">domenica</string>
+    <string name="day_of_week_long_monday">lunedì</string>
+    <string name="day_of_week_long_tuesday">martedì</string>
+    <string name="day_of_week_long_wednesday">mercoledì</string>
+    <string name="day_of_week_long_thursday">giovedì</string>
+    <string name="day_of_week_long_friday">venerdì</string>
+    <string name="day_of_week_long_saturday">sabato</string>
+
+    <string name="day_of_week_medium_sunday">dom</string>
+    <string name="day_of_week_medium_monday">lun</string>
+    <string name="day_of_week_medium_tuesday">mar</string>
+    <string name="day_of_week_medium_wednesday">mer</string>
+    <string name="day_of_week_medium_thursday">gio</string>
+    <string name="day_of_week_medium_friday">ven</string>
+    <string name="day_of_week_medium_saturday">sab</string>
+
+    <string name="day_of_week_short_sunday">dom</string>
+    <string name="day_of_week_short_monday">lun</string>
+    <string name="day_of_week_short_tuesday">mar</string>
+    <string name="day_of_week_short_wednesday">mer</string>
+    <string name="day_of_week_short_thursday">gio</string>
+    <string name="day_of_week_short_friday">ven</string>
+    <string name="day_of_week_short_saturday">sab</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">G</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">m.</string>
+    <string name="pm">p.</string>
+    <string name="yesterday">ieri</string>
+    <string name="today">oggi</string>
+    <string name="tomorrow">domani</string>
+
+    <string name="hour_minute_ampm">%H.%M</string>
+    <string name="hour_minute_cap_ampm">%H.%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H.%M.%S</string>
+    <string name="date_and_time">%H.%M.%S %-e-%b-%Y</string>
+    <string name="abbrev_month_day_year">%-e-%b-%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-it-rIT/donottranslate-cldr.xml b/core/res/res/values-it-rIT/donottranslate-cldr.xml
new file mode 100644
index 0000000..e3dd747
--- /dev/null
+++ b/core/res/res/values-it-rIT/donottranslate-cldr.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Gennaio</string>
+    <string name="month_long_standalone_february">Febbraio</string>
+    <string name="month_long_standalone_march">Marzo</string>
+    <string name="month_long_standalone_april">Aprile</string>
+    <string name="month_long_standalone_may">Maggio</string>
+    <string name="month_long_standalone_june">Giugno</string>
+    <string name="month_long_standalone_july">Luglio</string>
+
+    <string name="month_long_january">gennaio</string>
+    <string name="month_long_february">febbraio</string>
+    <string name="month_long_march">marzo</string>
+    <string name="month_long_april">aprile</string>
+    <string name="month_long_may">maggio</string>
+    <string name="month_long_june">giugno</string>
+    <string name="month_long_july">Luglio</string>
+    <string name="month_long_august">agosto</string>
+    <string name="month_long_september">settembre</string>
+    <string name="month_long_october">ottobre</string>
+    <string name="month_long_november">novembre</string>
+    <string name="month_long_december">dicembre</string>
+
+    <string name="month_medium_january">gen</string>
+    <string name="month_medium_february">feb</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">apr</string>
+    <string name="month_medium_may">mag</string>
+    <string name="month_medium_june">giu</string>
+    <string name="month_medium_july">lug</string>
+    <string name="month_medium_august">ago</string>
+    <string name="month_medium_september">set</string>
+    <string name="month_medium_october">ott</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dic</string>
+
+    <string name="month_shortest_january">G</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">G</string>
+    <string name="month_shortest_july">L</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">domenica</string>
+    <string name="day_of_week_long_monday">lunedì</string>
+    <string name="day_of_week_long_tuesday">martedì</string>
+    <string name="day_of_week_long_wednesday">mercoledì</string>
+    <string name="day_of_week_long_thursday">giovedì</string>
+    <string name="day_of_week_long_friday">venerdì</string>
+    <string name="day_of_week_long_saturday">sabato</string>
+
+    <string name="day_of_week_medium_sunday">dom</string>
+    <string name="day_of_week_medium_monday">lun</string>
+    <string name="day_of_week_medium_tuesday">mar</string>
+    <string name="day_of_week_medium_wednesday">mer</string>
+    <string name="day_of_week_medium_thursday">gio</string>
+    <string name="day_of_week_medium_friday">ven</string>
+    <string name="day_of_week_medium_saturday">sab</string>
+
+    <string name="day_of_week_short_sunday">dom</string>
+    <string name="day_of_week_short_monday">lun</string>
+    <string name="day_of_week_short_tuesday">mar</string>
+    <string name="day_of_week_short_wednesday">mer</string>
+    <string name="day_of_week_short_thursday">gio</string>
+    <string name="day_of_week_short_friday">ven</string>
+    <string name="day_of_week_short_saturday">sab</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">G</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">m.</string>
+    <string name="pm">p.</string>
+    <string name="yesterday">ieri</string>
+    <string name="today">oggi</string>
+    <string name="tomorrow">domani</string>
+
+    <string name="hour_minute_ampm">%H.%M</string>
+    <string name="hour_minute_cap_ampm">%H.%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%d %B %Y</string>
+    <string name="time_of_day">%H.%M.%S</string>
+    <string name="date_and_time">%H.%M.%S %d/%b/%Y</string>
+    <string name="abbrev_month_day_year">%d/%b/%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-it/donottranslate-cldr.xml b/core/res/res/values-it/donottranslate-cldr.xml
new file mode 100644
index 0000000..e3dd747
--- /dev/null
+++ b/core/res/res/values-it/donottranslate-cldr.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Gennaio</string>
+    <string name="month_long_standalone_february">Febbraio</string>
+    <string name="month_long_standalone_march">Marzo</string>
+    <string name="month_long_standalone_april">Aprile</string>
+    <string name="month_long_standalone_may">Maggio</string>
+    <string name="month_long_standalone_june">Giugno</string>
+    <string name="month_long_standalone_july">Luglio</string>
+
+    <string name="month_long_january">gennaio</string>
+    <string name="month_long_february">febbraio</string>
+    <string name="month_long_march">marzo</string>
+    <string name="month_long_april">aprile</string>
+    <string name="month_long_may">maggio</string>
+    <string name="month_long_june">giugno</string>
+    <string name="month_long_july">Luglio</string>
+    <string name="month_long_august">agosto</string>
+    <string name="month_long_september">settembre</string>
+    <string name="month_long_october">ottobre</string>
+    <string name="month_long_november">novembre</string>
+    <string name="month_long_december">dicembre</string>
+
+    <string name="month_medium_january">gen</string>
+    <string name="month_medium_february">feb</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">apr</string>
+    <string name="month_medium_may">mag</string>
+    <string name="month_medium_june">giu</string>
+    <string name="month_medium_july">lug</string>
+    <string name="month_medium_august">ago</string>
+    <string name="month_medium_september">set</string>
+    <string name="month_medium_october">ott</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dic</string>
+
+    <string name="month_shortest_january">G</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">G</string>
+    <string name="month_shortest_july">L</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">domenica</string>
+    <string name="day_of_week_long_monday">lunedì</string>
+    <string name="day_of_week_long_tuesday">martedì</string>
+    <string name="day_of_week_long_wednesday">mercoledì</string>
+    <string name="day_of_week_long_thursday">giovedì</string>
+    <string name="day_of_week_long_friday">venerdì</string>
+    <string name="day_of_week_long_saturday">sabato</string>
+
+    <string name="day_of_week_medium_sunday">dom</string>
+    <string name="day_of_week_medium_monday">lun</string>
+    <string name="day_of_week_medium_tuesday">mar</string>
+    <string name="day_of_week_medium_wednesday">mer</string>
+    <string name="day_of_week_medium_thursday">gio</string>
+    <string name="day_of_week_medium_friday">ven</string>
+    <string name="day_of_week_medium_saturday">sab</string>
+
+    <string name="day_of_week_short_sunday">dom</string>
+    <string name="day_of_week_short_monday">lun</string>
+    <string name="day_of_week_short_tuesday">mar</string>
+    <string name="day_of_week_short_wednesday">mer</string>
+    <string name="day_of_week_short_thursday">gio</string>
+    <string name="day_of_week_short_friday">ven</string>
+    <string name="day_of_week_short_saturday">sab</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">G</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">m.</string>
+    <string name="pm">p.</string>
+    <string name="yesterday">ieri</string>
+    <string name="today">oggi</string>
+    <string name="tomorrow">domani</string>
+
+    <string name="hour_minute_ampm">%H.%M</string>
+    <string name="hour_minute_cap_ampm">%H.%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%d %B %Y</string>
+    <string name="time_of_day">%H.%M.%S</string>
+    <string name="date_and_time">%H.%M.%S %d/%b/%Y</string>
+    <string name="abbrev_month_day_year">%d/%b/%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml
index f80a4f4..cb040f2 100644
--- a/core/res/res/values-it/strings.xml
+++ b/core/res/res/values-it/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"Password"</string>
     <string name="lockscreen_glogin_submit_button">"Accedi"</string>
     <string name="lockscreen_glogin_invalid_input">"Password o nome utente non valido."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Cancella notifiche"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"Invio"</string>
     <string name="menu_delete_shortcut_label">"Canc"</string>
     <string name="search_go">"Cerca"</string>
-    <string name="today">"Oggi"</string>
-    <string name="yesterday">"Ieri"</string>
-    <string name="tomorrow">"Domani"</string>
     <string name="oneMonthDurationPast">"1 mese fa"</string>
     <string name="beforeOneMonthDurationPast">"Oltre 1 mese fa"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"settimane"</string>
     <string name="year">"anno"</string>
     <string name="years">"anni"</string>
-    <string name="sunday">"Domenica"</string>
-    <string name="monday">"Lunedì"</string>
-    <string name="tuesday">"Martedì"</string>
-    <string name="wednesday">"Mercoledì"</string>
-    <string name="thursday">"Giovedì"</string>
-    <string name="friday">"Venerdì"</string>
-    <string name="saturday">"Sabato"</string>
     <string name="every_weekday">"Ogni giorno feriale (lun-ven)"</string>
     <string name="daily">"Quotidianamente"</string>
     <string name="weekly">"Ogni settimana il <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"Spiacenti, questo video non è valido per lo streaming su questo dispositivo."</string>
     <string name="VideoView_error_text_unknown">"Spiacenti. Impossibile riprodurre il video."</string>
     <string name="VideoView_error_button">"OK"</string>
-    <string name="am">"AM"</string>
-    <string name="pm">"PM"</string>
-    <string name="numeric_date">"<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"mezzogiorno"</string>
     <string name="Noon">"Mezzogiorno"</string>
     <string name="midnight">"mezzanotte"</string>
     <string name="Midnight">"Mezzanotte"</string>
-    <string name="month_day">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>, <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g>, <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>, <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%b</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%b</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"Domenica"</string>
-    <string name="day_of_week_long_monday">"Lunedì"</string>
-    <string name="day_of_week_long_tuesday">"Martedì"</string>
-    <string name="day_of_week_long_wednesday">"Mercoledì"</string>
-    <string name="day_of_week_long_thursday">"Giovedì"</string>
-    <string name="day_of_week_long_friday">"Venerdì"</string>
-    <string name="day_of_week_long_saturday">"Sabato"</string>
-    <string name="day_of_week_medium_sunday">"Dom"</string>
-    <string name="day_of_week_medium_monday">"Lun"</string>
-    <string name="day_of_week_medium_tuesday">"Mar"</string>
-    <string name="day_of_week_medium_wednesday">"Mer"</string>
-    <string name="day_of_week_medium_thursday">"Gio"</string>
-    <string name="day_of_week_medium_friday">"Ven"</string>
-    <string name="day_of_week_medium_saturday">"Sab"</string>
-    <string name="day_of_week_short_sunday">"Do"</string>
-    <string name="day_of_week_short_monday">"Lu"</string>
-    <string name="day_of_week_short_tuesday">"Ma"</string>
-    <string name="day_of_week_short_wednesday">"Me"</string>
-    <string name="day_of_week_short_thursday">"Gi"</string>
-    <string name="day_of_week_short_friday">"Ve"</string>
-    <string name="day_of_week_short_saturday">"Sa"</string>
-    <string name="day_of_week_shorter_sunday">"Do"</string>
-    <string name="day_of_week_shorter_monday">"Lu"</string>
-    <string name="day_of_week_shorter_tuesday">"Ma"</string>
-    <string name="day_of_week_shorter_wednesday">"Me"</string>
-    <string name="day_of_week_shorter_thursday">"Gi"</string>
-    <string name="day_of_week_shorter_friday">"V"</string>
-    <string name="day_of_week_shorter_saturday">"Sa"</string>
-    <string name="day_of_week_shortest_sunday">"D"</string>
-    <string name="day_of_week_shortest_monday">"Lun"</string>
-    <string name="day_of_week_shortest_tuesday">"M"</string>
-    <string name="day_of_week_shortest_wednesday">"Me"</string>
-    <string name="day_of_week_shortest_thursday">"G"</string>
-    <string name="day_of_week_shortest_friday">"V"</string>
-    <string name="day_of_week_shortest_saturday">"Sa"</string>
-    <string name="month_long_january">"Gennaio"</string>
-    <string name="month_long_february">"Febbraio"</string>
-    <string name="month_long_march">"Marzo"</string>
-    <string name="month_long_april">"Aprile"</string>
-    <string name="month_long_may">"Maggio"</string>
-    <string name="month_long_june">"Giugno"</string>
-    <string name="month_long_july">"Luglio"</string>
-    <string name="month_long_august">"Agosto"</string>
-    <string name="month_long_september">"Settembre"</string>
-    <string name="month_long_october">"Ottobre"</string>
-    <string name="month_long_november">"Novembre"</string>
-    <string name="month_long_december">"Dicembre"</string>
-    <string name="month_medium_january">"Gen"</string>
-    <string name="month_medium_february">"Feb"</string>
-    <string name="month_medium_march">"Mar"</string>
-    <string name="month_medium_april">"Apr"</string>
-    <string name="month_medium_may">"Mag"</string>
-    <string name="month_medium_june">"Giu"</string>
-    <string name="month_medium_july">"Lug"</string>
-    <string name="month_medium_august">"Ago"</string>
-    <string name="month_medium_september">"Set"</string>
-    <string name="month_medium_october">"Ott"</string>
-    <string name="month_medium_november">"Nov"</string>
-    <string name="month_medium_december">"Dic"</string>
-    <string name="month_shortest_january">"G"</string>
-    <string name="month_shortest_february">"F"</string>
-    <string name="month_shortest_march">"M"</string>
-    <string name="month_shortest_april">"Ap"</string>
-    <string name="month_shortest_may">"Mag"</string>
-    <string name="month_shortest_june">"Gi"</string>
-    <string name="month_shortest_july">"Lug"</string>
-    <string name="month_shortest_august">"Ago"</string>
-    <string name="month_shortest_september">"Set"</string>
-    <string name="month_shortest_october">"O"</string>
-    <string name="month_shortest_november">"N"</string>
-    <string name="month_shortest_december">"Di"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Seleziona tutto"</string>
diff --git a/core/res/res/values-ja-rJP/donottranslate-cldr.xml b/core/res/res/values-ja-rJP/donottranslate-cldr.xml
new file mode 100644
index 0000000..b8e94fc
--- /dev/null
+++ b/core/res/res/values-ja-rJP/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">1月</string>
+    <string name="month_long_standalone_february">2月</string>
+    <string name="month_long_standalone_march">3月</string>
+    <string name="month_long_standalone_april">4月</string>
+    <string name="month_long_standalone_may">5月</string>
+    <string name="month_long_standalone_june">6月</string>
+    <string name="month_long_standalone_july">7月</string>
+    <string name="month_long_standalone_august">8月</string>
+    <string name="month_long_standalone_september">9月</string>
+    <string name="month_long_standalone_october">10月</string>
+    <string name="month_long_standalone_november">11月</string>
+    <string name="month_long_standalone_december">12月</string>
+
+    <string name="month_long_january">1月</string>
+    <string name="month_long_february">2月</string>
+    <string name="month_long_march">3月</string>
+    <string name="month_long_april">4月</string>
+    <string name="month_long_may">5月</string>
+    <string name="month_long_june">6月</string>
+    <string name="month_long_july">7月</string>
+    <string name="month_long_august">8月</string>
+    <string name="month_long_september">9月</string>
+    <string name="month_long_october">10月</string>
+    <string name="month_long_november">11月</string>
+    <string name="month_long_december">12月</string>
+
+    <string name="month_medium_january">1月</string>
+    <string name="month_medium_february">2月</string>
+    <string name="month_medium_march">3月</string>
+    <string name="month_medium_april">4月</string>
+    <string name="month_medium_may">5月</string>
+    <string name="month_medium_june">6月</string>
+    <string name="month_medium_july">7月</string>
+    <string name="month_medium_august">8月</string>
+    <string name="month_medium_september">9月</string>
+    <string name="month_medium_october">10月</string>
+    <string name="month_medium_november">11月</string>
+    <string name="month_medium_december">12月</string>
+
+    <string name="month_shortest_january">1</string>
+    <string name="month_shortest_february">2</string>
+    <string name="month_shortest_march">3</string>
+    <string name="month_shortest_april">4</string>
+    <string name="month_shortest_may">5</string>
+    <string name="month_shortest_june">6</string>
+    <string name="month_shortest_july">7</string>
+    <string name="month_shortest_august">8</string>
+    <string name="month_shortest_september">9</string>
+    <string name="month_shortest_october">10</string>
+    <string name="month_shortest_november">11</string>
+    <string name="month_shortest_december">12</string>
+
+    <string name="day_of_week_long_sunday">日曜日</string>
+    <string name="day_of_week_long_monday">月曜日</string>
+    <string name="day_of_week_long_tuesday">火曜日</string>
+    <string name="day_of_week_long_wednesday">水曜日</string>
+    <string name="day_of_week_long_thursday">木曜日</string>
+    <string name="day_of_week_long_friday">金曜日</string>
+    <string name="day_of_week_long_saturday">土曜日</string>
+
+    <string name="day_of_week_medium_sunday">日</string>
+    <string name="day_of_week_medium_monday">月</string>
+    <string name="day_of_week_medium_tuesday">火</string>
+    <string name="day_of_week_medium_wednesday">水</string>
+    <string name="day_of_week_medium_thursday">木</string>
+    <string name="day_of_week_medium_friday">金</string>
+    <string name="day_of_week_medium_saturday">土</string>
+
+    <string name="day_of_week_short_sunday">日</string>
+    <string name="day_of_week_short_monday">月</string>
+    <string name="day_of_week_short_tuesday">火</string>
+    <string name="day_of_week_short_wednesday">水</string>
+    <string name="day_of_week_short_thursday">木</string>
+    <string name="day_of_week_short_friday">金</string>
+    <string name="day_of_week_short_saturday">土</string>
+
+    <string name="day_of_week_shortest_sunday">日</string>
+    <string name="day_of_week_shortest_monday">月</string>
+    <string name="day_of_week_shortest_tuesday">火</string>
+    <string name="day_of_week_shortest_wednesday">水</string>
+    <string name="day_of_week_shortest_thursday">木</string>
+    <string name="day_of_week_shortest_friday">金</string>
+    <string name="day_of_week_shortest_saturday">土</string>
+
+    <string name="am">午前</string>
+    <string name="pm">午後</string>
+    <string name="yesterday">昨日</string>
+    <string name="today">今日</string>
+    <string name="tomorrow">明日</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%Y/%m/%d</string>
+    <string name="numeric_date_format">yyyy/MM/dd</string>
+    <string name="month_day_year">%Y年%-m月%-e日</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S %Y/%m/%d</string>
+    <string name="abbrev_month_day_year">%Y/%m/%d</string>
+    <string name="month_day">%-m月%-e日</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y年%-m月</string>
+    <string name="abbrev_month_day">%-m月%-e日</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y年%-m月</string>
+</resources>
diff --git a/core/res/res/values-ja/donottranslate-cldr.xml b/core/res/res/values-ja/donottranslate-cldr.xml
new file mode 100644
index 0000000..b8e94fc
--- /dev/null
+++ b/core/res/res/values-ja/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">1月</string>
+    <string name="month_long_standalone_february">2月</string>
+    <string name="month_long_standalone_march">3月</string>
+    <string name="month_long_standalone_april">4月</string>
+    <string name="month_long_standalone_may">5月</string>
+    <string name="month_long_standalone_june">6月</string>
+    <string name="month_long_standalone_july">7月</string>
+    <string name="month_long_standalone_august">8月</string>
+    <string name="month_long_standalone_september">9月</string>
+    <string name="month_long_standalone_october">10月</string>
+    <string name="month_long_standalone_november">11月</string>
+    <string name="month_long_standalone_december">12月</string>
+
+    <string name="month_long_january">1月</string>
+    <string name="month_long_february">2月</string>
+    <string name="month_long_march">3月</string>
+    <string name="month_long_april">4月</string>
+    <string name="month_long_may">5月</string>
+    <string name="month_long_june">6月</string>
+    <string name="month_long_july">7月</string>
+    <string name="month_long_august">8月</string>
+    <string name="month_long_september">9月</string>
+    <string name="month_long_october">10月</string>
+    <string name="month_long_november">11月</string>
+    <string name="month_long_december">12月</string>
+
+    <string name="month_medium_january">1月</string>
+    <string name="month_medium_february">2月</string>
+    <string name="month_medium_march">3月</string>
+    <string name="month_medium_april">4月</string>
+    <string name="month_medium_may">5月</string>
+    <string name="month_medium_june">6月</string>
+    <string name="month_medium_july">7月</string>
+    <string name="month_medium_august">8月</string>
+    <string name="month_medium_september">9月</string>
+    <string name="month_medium_october">10月</string>
+    <string name="month_medium_november">11月</string>
+    <string name="month_medium_december">12月</string>
+
+    <string name="month_shortest_january">1</string>
+    <string name="month_shortest_february">2</string>
+    <string name="month_shortest_march">3</string>
+    <string name="month_shortest_april">4</string>
+    <string name="month_shortest_may">5</string>
+    <string name="month_shortest_june">6</string>
+    <string name="month_shortest_july">7</string>
+    <string name="month_shortest_august">8</string>
+    <string name="month_shortest_september">9</string>
+    <string name="month_shortest_october">10</string>
+    <string name="month_shortest_november">11</string>
+    <string name="month_shortest_december">12</string>
+
+    <string name="day_of_week_long_sunday">日曜日</string>
+    <string name="day_of_week_long_monday">月曜日</string>
+    <string name="day_of_week_long_tuesday">火曜日</string>
+    <string name="day_of_week_long_wednesday">水曜日</string>
+    <string name="day_of_week_long_thursday">木曜日</string>
+    <string name="day_of_week_long_friday">金曜日</string>
+    <string name="day_of_week_long_saturday">土曜日</string>
+
+    <string name="day_of_week_medium_sunday">日</string>
+    <string name="day_of_week_medium_monday">月</string>
+    <string name="day_of_week_medium_tuesday">火</string>
+    <string name="day_of_week_medium_wednesday">水</string>
+    <string name="day_of_week_medium_thursday">木</string>
+    <string name="day_of_week_medium_friday">金</string>
+    <string name="day_of_week_medium_saturday">土</string>
+
+    <string name="day_of_week_short_sunday">日</string>
+    <string name="day_of_week_short_monday">月</string>
+    <string name="day_of_week_short_tuesday">火</string>
+    <string name="day_of_week_short_wednesday">水</string>
+    <string name="day_of_week_short_thursday">木</string>
+    <string name="day_of_week_short_friday">金</string>
+    <string name="day_of_week_short_saturday">土</string>
+
+    <string name="day_of_week_shortest_sunday">日</string>
+    <string name="day_of_week_shortest_monday">月</string>
+    <string name="day_of_week_shortest_tuesday">火</string>
+    <string name="day_of_week_shortest_wednesday">水</string>
+    <string name="day_of_week_shortest_thursday">木</string>
+    <string name="day_of_week_shortest_friday">金</string>
+    <string name="day_of_week_shortest_saturday">土</string>
+
+    <string name="am">午前</string>
+    <string name="pm">午後</string>
+    <string name="yesterday">昨日</string>
+    <string name="today">今日</string>
+    <string name="tomorrow">明日</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%Y/%m/%d</string>
+    <string name="numeric_date_format">yyyy/MM/dd</string>
+    <string name="month_day_year">%Y年%-m月%-e日</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S %Y/%m/%d</string>
+    <string name="abbrev_month_day_year">%Y/%m/%d</string>
+    <string name="month_day">%-m月%-e日</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y年%-m月</string>
+    <string name="abbrev_month_day">%-m月%-e日</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y年%-m月</string>
+</resources>
diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml
index 8da040e..877ecbd 100644
--- a/core/res/res/values-ja/strings.xml
+++ b/core/res/res/values-ja/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"パスワード"</string>
     <string name="lockscreen_glogin_submit_button">"ログイン"</string>
     <string name="lockscreen_glogin_invalid_input">"ユーザー名またはパスワードが正しくありません。"</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"通知を消去"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"Enter"</string>
     <string name="menu_delete_shortcut_label">"Del"</string>
     <string name="search_go">"検索"</string>
-    <string name="today">"今日"</string>
-    <string name="yesterday">"昨日"</string>
-    <string name="tomorrow">"明日"</string>
     <string name="oneMonthDurationPast">"1か月前"</string>
     <string name="beforeOneMonthDurationPast">"1か月前"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"週間"</string>
     <string name="year">"年"</string>
     <string name="years">"年"</string>
-    <string name="sunday">"日曜日"</string>
-    <string name="monday">"月曜日"</string>
-    <string name="tuesday">"火曜日"</string>
-    <string name="wednesday">"水曜日"</string>
-    <string name="thursday">"木曜日"</string>
-    <string name="friday">"金曜日"</string>
-    <string name="saturday">"土曜日"</string>
     <string name="every_weekday">"平日(月~金)"</string>
     <string name="daily">"毎日"</string>
     <string name="weekly">"毎週<xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"この動画はご使用の端末でストリーミングできません。"</string>
     <string name="VideoView_error_text_unknown">"この動画は再生できません。"</string>
     <string name="VideoView_error_button">"OK"</string>
-    <string name="am">"AM"</string>
-    <string name="pm">"PM"</string>
-    <string name="numeric_date">"<xliff:g id="YEAR">%Y</xliff:g>/<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="DAY">%d</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g><xliff:g id="WEEKDAY1">%1$s</xliff:g><xliff:g id="TIME1">%3$s</xliff:g>~<xliff:g id="DATE2">%5$s</xliff:g><xliff:g id="WEEKDAY2">%4$s</xliff:g><xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="DATE1">%2$s</xliff:g><xliff:g id="WEEKDAY1">%1$s</xliff:g>~<xliff:g id="DATE2">%5$s</xliff:g><xliff:g id="WEEKDAY2">%4$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g> <xliff:g id="TIME1">%3$s</xliff:g>~<xliff:g id="DATE2">%5$s</xliff:g> <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g> <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="WEEKDAY">%2$s</xliff:g>、<xliff:g id="TIME_RANGE">%1$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="MONTH">MMMM</xliff:g><xliff:g id="DAY">d</xliff:g>'日 '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="YEAR">yyyy</xliff:g>'年'<xliff:g id="MONTH">MMMM</xliff:g>'月'<xliff:g id="DAY">d</xliff:g>'日'"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="MONTH">MMM</xliff:g>'/'<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>'年'"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>'/'<xliff:g id="MONTH">MMM</xliff:g>'/'<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"正午"</string>
     <string name="Noon">"正午"</string>
     <string name="midnight">"午前0時"</string>
     <string name="Midnight">"午前0時"</string>
-    <string name="month_day">"<xliff:g id="MONTH">%B</xliff:g><xliff:g id="DAY">%-d</xliff:g>日"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="YEAR">%Y</xliff:g>年<xliff:g id="MONTH">%B</xliff:g><xliff:g id="DAY">%-d</xliff:g>日"</string>
-    <string name="month_year">"<xliff:g id="YEAR">%Y</xliff:g>年<xliff:g id="MONTH">%B</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="YEAR">%Y</xliff:g>/<xliff:g id="MONTH">%B</xliff:g>/<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="MONTH1">%2$s</xliff:g>/<xliff:g id="DAY1">%3$s</xliff:g>~<xliff:g id="MONTH2">%7$s</xliff:g>/<xliff:g id="DAY2">%8$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="MONTH1">%2$s</xliff:g>/<xliff:g id="DAY1_0">%3$s</xliff:g><xliff:g id="WEEKDAY1">%1$s</xliff:g>~<xliff:g id="MONTH2">%7$s</xliff:g>/<xliff:g id="DAY2_1">%8$s</xliff:g><xliff:g id="WEEKDAY2">%6$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="MONTH1">%2$s</xliff:g>/<xliff:g id="DAY1">%3$s</xliff:g>~<xliff:g id="MONTH2">%7$s</xliff:g>/<xliff:g id="DAY2">%8$s</xliff:g>, <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="MONTH1">%2$s</xliff:g>/<xliff:g id="DAY1_0">%3$s</xliff:g><xliff:g id="WEEKDAY1">%1$s</xliff:g><xliff:g id="TIME1">%5$s</xliff:g>~<xliff:g id="MONTH2">%7$s</xliff:g>/<xliff:g id="DAY2_1">%8$s</xliff:g><xliff:g id="WEEKDAY2">%6$s</xliff:g><xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="YEAR1">%4$s</xliff:g>/<xliff:g id="MONTH1">%2$s</xliff:g>/<xliff:g id="DAY1">%3$s</xliff:g><xliff:g id="TIME1">%5$s</xliff:g>~<xliff:g id="YEAR2">%9$s</xliff:g>/<xliff:g id="MONTH2">%7$s</xliff:g>/<xliff:g id="DAY2">%8$s</xliff:g><xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="YEAR1">%4$s</xliff:g>/<xliff:g id="MONTH1">%2$s</xliff:g>/<xliff:g id="DAY1_0">%3$s</xliff:g><xliff:g id="WEEKDAY1">%1$s</xliff:g><xliff:g id="TIME1">%5$s</xliff:g>~<xliff:g id="YEAR2">%9$s</xliff:g>/<xliff:g id="MONTH2">%7$s</xliff:g>/<xliff:g id="DAY2_1">%8$s</xliff:g><xliff:g id="WEEKDAY2">%6$s</xliff:g><xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="YEAR">%Y</xliff:g>/<xliff:g id="MONTH">%b</xliff:g>/<xliff:g id="DAY">%-d</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="YEAR">%Y</xliff:g>年<xliff:g id="MONTH">%b</xliff:g>月"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g>/<xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"日曜日"</string>
-    <string name="day_of_week_long_monday">"月曜日"</string>
-    <string name="day_of_week_long_tuesday">"火曜日"</string>
-    <string name="day_of_week_long_wednesday">"水曜日"</string>
-    <string name="day_of_week_long_thursday">"木曜日"</string>
-    <string name="day_of_week_long_friday">"金曜日"</string>
-    <string name="day_of_week_long_saturday">"土曜日"</string>
-    <string name="day_of_week_medium_sunday">"(日)"</string>
-    <string name="day_of_week_medium_monday">"(月)"</string>
-    <string name="day_of_week_medium_tuesday">"(火)"</string>
-    <string name="day_of_week_medium_wednesday">"(水)"</string>
-    <string name="day_of_week_medium_thursday">"(木)"</string>
-    <string name="day_of_week_medium_friday">"(金)"</string>
-    <string name="day_of_week_medium_saturday">"(土)"</string>
-    <string name="day_of_week_short_sunday">"日"</string>
-    <string name="day_of_week_short_monday">"月"</string>
-    <string name="day_of_week_short_tuesday">"火"</string>
-    <string name="day_of_week_short_wednesday">"水"</string>
-    <string name="day_of_week_short_thursday">"木"</string>
-    <string name="day_of_week_short_friday">"金"</string>
-    <string name="day_of_week_short_saturday">"土"</string>
-    <string name="day_of_week_shorter_sunday">"日"</string>
-    <string name="day_of_week_shorter_monday">"月"</string>
-    <string name="day_of_week_shorter_tuesday">"火"</string>
-    <string name="day_of_week_shorter_wednesday">"水"</string>
-    <string name="day_of_week_shorter_thursday">"木"</string>
-    <string name="day_of_week_shorter_friday">"金"</string>
-    <string name="day_of_week_shorter_saturday">"土"</string>
-    <string name="day_of_week_shortest_sunday">"日"</string>
-    <string name="day_of_week_shortest_monday">"月"</string>
-    <string name="day_of_week_shortest_tuesday">"火"</string>
-    <string name="day_of_week_shortest_wednesday">"水"</string>
-    <string name="day_of_week_shortest_thursday">"火"</string>
-    <string name="day_of_week_shortest_friday">"金"</string>
-    <string name="day_of_week_shortest_saturday">"土"</string>
-    <string name="month_long_january">"1月"</string>
-    <string name="month_long_february">"2月"</string>
-    <string name="month_long_march">"3月"</string>
-    <string name="month_long_april">"4月"</string>
-    <string name="month_long_may">"5月"</string>
-    <string name="month_long_june">"6月"</string>
-    <string name="month_long_july">"7月"</string>
-    <string name="month_long_august">"8月"</string>
-    <string name="month_long_september">"9月"</string>
-    <string name="month_long_october">"10月"</string>
-    <string name="month_long_november">"11月"</string>
-    <string name="month_long_december">"12月"</string>
-    <string name="month_medium_january">"1"</string>
-    <string name="month_medium_february">"2"</string>
-    <string name="month_medium_march">"3"</string>
-    <string name="month_medium_april">"4"</string>
-    <string name="month_medium_may">"5"</string>
-    <string name="month_medium_june">"6"</string>
-    <string name="month_medium_july">"7"</string>
-    <string name="month_medium_august">"8"</string>
-    <string name="month_medium_september">"9"</string>
-    <string name="month_medium_october">"10"</string>
-    <string name="month_medium_november">"11"</string>
-    <string name="month_medium_december">"12"</string>
-    <string name="month_shortest_january">"1"</string>
-    <string name="month_shortest_february">"2"</string>
-    <string name="month_shortest_march">"3"</string>
-    <string name="month_shortest_april">"4"</string>
-    <string name="month_shortest_may">"5"</string>
-    <string name="month_shortest_june">"6"</string>
-    <string name="month_shortest_july">"7"</string>
-    <string name="month_shortest_august">"8"</string>
-    <string name="month_shortest_september">"9"</string>
-    <string name="month_shortest_october">"10"</string>
-    <string name="month_shortest_november">"11"</string>
-    <string name="month_shortest_december">"12"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"すべて選択"</string>
diff --git a/core/res/res/values-ko-rKR/donottranslate-cldr.xml b/core/res/res/values-ko-rKR/donottranslate-cldr.xml
new file mode 100644
index 0000000..17d9432
--- /dev/null
+++ b/core/res/res/values-ko-rKR/donottranslate-cldr.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">1월</string>
+    <string name="month_long_standalone_february">2월</string>
+    <string name="month_long_standalone_march">3월</string>
+    <string name="month_long_standalone_april">4월</string>
+    <string name="month_long_standalone_may">5월</string>
+    <string name="month_long_standalone_june">6월</string>
+    <string name="month_long_standalone_july">7월</string>
+    <string name="month_long_standalone_august">8월</string>
+    <string name="month_long_standalone_september">9월</string>
+    <string name="month_long_standalone_october">10월</string>
+    <string name="month_long_standalone_november">11월</string>
+    <string name="month_long_standalone_december">12월</string>
+
+    <string name="month_long_january">1월</string>
+    <string name="month_long_february">2월</string>
+    <string name="month_long_march">3월</string>
+    <string name="month_long_april">4월</string>
+    <string name="month_long_may">5월</string>
+    <string name="month_long_june">6월</string>
+    <string name="month_long_july">7월</string>
+    <string name="month_long_august">8월</string>
+    <string name="month_long_september">9월</string>
+    <string name="month_long_october">10월</string>
+    <string name="month_long_november">11월</string>
+    <string name="month_long_december">12월</string>
+
+
+    <string name="month_shortest_january">1월</string>
+    <string name="month_shortest_february">2월</string>
+    <string name="month_shortest_march">3월</string>
+    <string name="month_shortest_april">4월</string>
+    <string name="month_shortest_may">5월</string>
+    <string name="month_shortest_june">6월</string>
+    <string name="month_shortest_july">7월</string>
+    <string name="month_shortest_august">8월</string>
+    <string name="month_shortest_september">9월</string>
+    <string name="month_shortest_october">10월</string>
+    <string name="month_shortest_november">11월</string>
+    <string name="month_shortest_december">12월</string>
+
+    <string name="day_of_week_long_sunday">일요일</string>
+    <string name="day_of_week_long_monday">월요일</string>
+    <string name="day_of_week_long_tuesday">화요일</string>
+    <string name="day_of_week_long_wednesday">수요일</string>
+    <string name="day_of_week_long_thursday">목요일</string>
+    <string name="day_of_week_long_friday">금요일</string>
+    <string name="day_of_week_long_saturday">토요일</string>
+
+    <string name="day_of_week_medium_sunday">일</string>
+    <string name="day_of_week_medium_monday">월</string>
+    <string name="day_of_week_medium_tuesday">화</string>
+    <string name="day_of_week_medium_wednesday">수</string>
+    <string name="day_of_week_medium_thursday">목</string>
+    <string name="day_of_week_medium_friday">금</string>
+    <string name="day_of_week_medium_saturday">토</string>
+
+    <string name="day_of_week_short_sunday">일</string>
+    <string name="day_of_week_short_monday">월</string>
+    <string name="day_of_week_short_tuesday">화</string>
+    <string name="day_of_week_short_wednesday">수</string>
+    <string name="day_of_week_short_thursday">목</string>
+    <string name="day_of_week_short_friday">금</string>
+    <string name="day_of_week_short_saturday">토</string>
+
+    <string name="day_of_week_shortest_sunday">일</string>
+    <string name="day_of_week_shortest_monday">월</string>
+    <string name="day_of_week_shortest_tuesday">화</string>
+    <string name="day_of_week_shortest_wednesday">수</string>
+    <string name="day_of_week_shortest_thursday">목</string>
+    <string name="day_of_week_shortest_friday">금</string>
+    <string name="day_of_week_shortest_saturday">토</string>
+
+    <string name="am">오전</string>
+    <string name="pm">오후</string>
+    <string name="yesterday">어제</string>
+    <string name="today">오늘</string>
+    <string name="tomorrow">내일</string>
+
+    <string name="hour_minute_ampm">%p %-l:%M</string>
+    <string name="hour_minute_cap_ampm">%^p %-l:%M</string>
+    <string name="numeric_date">%Y. %-m. %-e.</string>
+    <string name="numeric_date_format">yyyy. M. d.</string>
+    <string name="month_day_year">%Y년 %-m월 %-e일</string>
+    <string name="time_of_day">%p %-l:%M:%S</string>
+    <string name="date_and_time">%p %-l:%M:%S %Y. %-m. %-e.</string>
+    <string name="abbrev_month_day_year">%Y. %-m. %-e.</string>
+    <string name="month_day">%B %-e일</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y년 %B</string>
+    <string name="abbrev_month_day">%b %-e일</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y년 %b</string>
+</resources>
diff --git a/core/res/res/values-ko/donottranslate-cldr.xml b/core/res/res/values-ko/donottranslate-cldr.xml
new file mode 100644
index 0000000..17d9432
--- /dev/null
+++ b/core/res/res/values-ko/donottranslate-cldr.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">1월</string>
+    <string name="month_long_standalone_february">2월</string>
+    <string name="month_long_standalone_march">3월</string>
+    <string name="month_long_standalone_april">4월</string>
+    <string name="month_long_standalone_may">5월</string>
+    <string name="month_long_standalone_june">6월</string>
+    <string name="month_long_standalone_july">7월</string>
+    <string name="month_long_standalone_august">8월</string>
+    <string name="month_long_standalone_september">9월</string>
+    <string name="month_long_standalone_october">10월</string>
+    <string name="month_long_standalone_november">11월</string>
+    <string name="month_long_standalone_december">12월</string>
+
+    <string name="month_long_january">1월</string>
+    <string name="month_long_february">2월</string>
+    <string name="month_long_march">3월</string>
+    <string name="month_long_april">4월</string>
+    <string name="month_long_may">5월</string>
+    <string name="month_long_june">6월</string>
+    <string name="month_long_july">7월</string>
+    <string name="month_long_august">8월</string>
+    <string name="month_long_september">9월</string>
+    <string name="month_long_october">10월</string>
+    <string name="month_long_november">11월</string>
+    <string name="month_long_december">12월</string>
+
+
+    <string name="month_shortest_january">1월</string>
+    <string name="month_shortest_february">2월</string>
+    <string name="month_shortest_march">3월</string>
+    <string name="month_shortest_april">4월</string>
+    <string name="month_shortest_may">5월</string>
+    <string name="month_shortest_june">6월</string>
+    <string name="month_shortest_july">7월</string>
+    <string name="month_shortest_august">8월</string>
+    <string name="month_shortest_september">9월</string>
+    <string name="month_shortest_october">10월</string>
+    <string name="month_shortest_november">11월</string>
+    <string name="month_shortest_december">12월</string>
+
+    <string name="day_of_week_long_sunday">일요일</string>
+    <string name="day_of_week_long_monday">월요일</string>
+    <string name="day_of_week_long_tuesday">화요일</string>
+    <string name="day_of_week_long_wednesday">수요일</string>
+    <string name="day_of_week_long_thursday">목요일</string>
+    <string name="day_of_week_long_friday">금요일</string>
+    <string name="day_of_week_long_saturday">토요일</string>
+
+    <string name="day_of_week_medium_sunday">일</string>
+    <string name="day_of_week_medium_monday">월</string>
+    <string name="day_of_week_medium_tuesday">화</string>
+    <string name="day_of_week_medium_wednesday">수</string>
+    <string name="day_of_week_medium_thursday">목</string>
+    <string name="day_of_week_medium_friday">금</string>
+    <string name="day_of_week_medium_saturday">토</string>
+
+    <string name="day_of_week_short_sunday">일</string>
+    <string name="day_of_week_short_monday">월</string>
+    <string name="day_of_week_short_tuesday">화</string>
+    <string name="day_of_week_short_wednesday">수</string>
+    <string name="day_of_week_short_thursday">목</string>
+    <string name="day_of_week_short_friday">금</string>
+    <string name="day_of_week_short_saturday">토</string>
+
+    <string name="day_of_week_shortest_sunday">일</string>
+    <string name="day_of_week_shortest_monday">월</string>
+    <string name="day_of_week_shortest_tuesday">화</string>
+    <string name="day_of_week_shortest_wednesday">수</string>
+    <string name="day_of_week_shortest_thursday">목</string>
+    <string name="day_of_week_shortest_friday">금</string>
+    <string name="day_of_week_shortest_saturday">토</string>
+
+    <string name="am">오전</string>
+    <string name="pm">오후</string>
+    <string name="yesterday">어제</string>
+    <string name="today">오늘</string>
+    <string name="tomorrow">내일</string>
+
+    <string name="hour_minute_ampm">%p %-l:%M</string>
+    <string name="hour_minute_cap_ampm">%^p %-l:%M</string>
+    <string name="numeric_date">%Y. %-m. %-e.</string>
+    <string name="numeric_date_format">yyyy. M. d.</string>
+    <string name="month_day_year">%Y년 %-m월 %-e일</string>
+    <string name="time_of_day">%p %-l:%M:%S</string>
+    <string name="date_and_time">%p %-l:%M:%S %Y. %-m. %-e.</string>
+    <string name="abbrev_month_day_year">%Y. %-m. %-e.</string>
+    <string name="month_day">%B %-e일</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y년 %B</string>
+    <string name="abbrev_month_day">%b %-e일</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y년 %b</string>
+</resources>
diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml
index 96b897a..06b85e8 100644
--- a/core/res/res/values-ko/strings.xml
+++ b/core/res/res/values-ko/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"비밀번호"</string>
     <string name="lockscreen_glogin_submit_button">"로그인"</string>
     <string name="lockscreen_glogin_invalid_input">"사용자 이름 또는 비밀번호가 잘못되었습니다."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"알림 지우기"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"입력"</string>
     <string name="menu_delete_shortcut_label">"삭제"</string>
     <string name="search_go">"검색"</string>
-    <string name="today">"오늘"</string>
-    <string name="yesterday">"어제"</string>
-    <string name="tomorrow">"내일"</string>
     <string name="oneMonthDurationPast">"한 달 전"</string>
     <string name="beforeOneMonthDurationPast">"한 달 전"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"주"</string>
     <string name="year">"년"</string>
     <string name="years">"년"</string>
-    <string name="sunday">"일요일"</string>
-    <string name="monday">"월요일"</string>
-    <string name="tuesday">"화요일"</string>
-    <string name="wednesday">"수요일"</string>
-    <string name="thursday">"목요일"</string>
-    <string name="friday">"금요일"</string>
-    <string name="saturday">"토요일"</string>
     <string name="every_weekday">"주중 매일(월-금)"</string>
     <string name="daily">"매일"</string>
     <string name="weekly">"매주 <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"죄송합니다. 이 기기로의 스트리밍에 적합하지 않은 동영상입니다."</string>
     <string name="VideoView_error_text_unknown">"죄송합니다. 동영상을 재생할 수 없습니다."</string>
     <string name="VideoView_error_button">"확인"</string>
-    <string name="am">"AM"</string>
-    <string name="pm">"PM"</string>
-    <string name="numeric_date">"<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="WEEKDAY1">%1$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="WEEKDAY2">%4$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="WEEKDAY">%2$s</xliff:g>, <xliff:g id="TIME_RANGE">%1$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="YEAR">yyyy</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>', '<xliff:g id="DAY">d</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="YEAR">yyyy</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>', '<xliff:g id="DAY">d</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"정오"</string>
     <string name="Noon">"정오"</string>
     <string name="midnight">"자정"</string>
     <string name="Midnight">"자정"</string>
-    <string name="month_day">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="YEAR">%Y</xliff:g>, <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="YEAR">%Y</xliff:g>, <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>, <xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>, <xliff:g id="WEEKDAY1">%1$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>, <xliff:g id="WEEKDAY2">%6$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="YEAR">%9$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g>, <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>, <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>, <xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>, <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="YEAR">%Y</xliff:g> <xliff:g id="MONTH">%b</xliff:g>, <xliff:g id="DAY">%-d</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"일요일"</string>
-    <string name="day_of_week_long_monday">"월요일"</string>
-    <string name="day_of_week_long_tuesday">"화요일"</string>
-    <string name="day_of_week_long_wednesday">"수요일"</string>
-    <string name="day_of_week_long_thursday">"목요일"</string>
-    <string name="day_of_week_long_friday">"금요일"</string>
-    <string name="day_of_week_long_saturday">"토요일"</string>
-    <string name="day_of_week_medium_sunday">"일요일"</string>
-    <string name="day_of_week_medium_monday">"월"</string>
-    <string name="day_of_week_medium_tuesday">"화"</string>
-    <string name="day_of_week_medium_wednesday">"수"</string>
-    <string name="day_of_week_medium_thursday">"목"</string>
-    <string name="day_of_week_medium_friday">"금"</string>
-    <string name="day_of_week_medium_saturday">"토"</string>
-    <string name="day_of_week_short_sunday">"일"</string>
-    <string name="day_of_week_short_monday">"월"</string>
-    <string name="day_of_week_short_tuesday">"화"</string>
-    <string name="day_of_week_short_wednesday">"수"</string>
-    <string name="day_of_week_short_thursday">"목"</string>
-    <string name="day_of_week_short_friday">"금"</string>
-    <string name="day_of_week_short_saturday">"토"</string>
-    <string name="day_of_week_shorter_sunday">"일"</string>
-    <string name="day_of_week_shorter_monday">"월"</string>
-    <string name="day_of_week_shorter_tuesday">"화"</string>
-    <string name="day_of_week_shorter_wednesday">"수"</string>
-    <string name="day_of_week_shorter_thursday">"목"</string>
-    <string name="day_of_week_shorter_friday">"금"</string>
-    <string name="day_of_week_shorter_saturday">"토"</string>
-    <string name="day_of_week_shortest_sunday">"일"</string>
-    <string name="day_of_week_shortest_monday">"3월"</string>
-    <string name="day_of_week_shortest_tuesday">"목"</string>
-    <string name="day_of_week_shortest_wednesday">"수"</string>
-    <string name="day_of_week_shortest_thursday">"목"</string>
-    <string name="day_of_week_shortest_friday">"금"</string>
-    <string name="day_of_week_shortest_saturday">"토"</string>
-    <string name="month_long_january">"1월"</string>
-    <string name="month_long_february">"2월"</string>
-    <string name="month_long_march">"3월"</string>
-    <string name="month_long_april">"4월"</string>
-    <string name="month_long_may">"5월"</string>
-    <string name="month_long_june">"6월"</string>
-    <string name="month_long_july">"7월"</string>
-    <string name="month_long_august">"8월"</string>
-    <string name="month_long_september">"9월"</string>
-    <string name="month_long_october">"10월"</string>
-    <string name="month_long_november">"11월"</string>
-    <string name="month_long_december">"12월"</string>
-    <string name="month_medium_january">"1월"</string>
-    <string name="month_medium_february">"2월"</string>
-    <string name="month_medium_march">"3월"</string>
-    <string name="month_medium_april">"4월"</string>
-    <string name="month_medium_may">"5월"</string>
-    <string name="month_medium_june">"6월"</string>
-    <string name="month_medium_july">"7월"</string>
-    <string name="month_medium_august">"8월"</string>
-    <string name="month_medium_september">"9월"</string>
-    <string name="month_medium_october">"10월"</string>
-    <string name="month_medium_november">"11월"</string>
-    <string name="month_medium_december">"12월"</string>
-    <string name="month_shortest_january">"1월"</string>
-    <string name="month_shortest_february">"금"</string>
-    <string name="month_shortest_march">"3월"</string>
-    <string name="month_shortest_april">"4월"</string>
-    <string name="month_shortest_may">"5월"</string>
-    <string name="month_shortest_june">"6월"</string>
-    <string name="month_shortest_july">"7월"</string>
-    <string name="month_shortest_august">"8월"</string>
-    <string name="month_shortest_september">"9월"</string>
-    <string name="month_shortest_october">"10월"</string>
-    <string name="month_shortest_november">"11월"</string>
-    <string name="month_shortest_december">"12월"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"모두 선택"</string>
diff --git a/core/res/res/values-lt-rLT/donottranslate-cldr.xml b/core/res/res/values-lt-rLT/donottranslate-cldr.xml
new file mode 100644
index 0000000..629937b
--- /dev/null
+++ b/core/res/res/values-lt-rLT/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Sausis</string>
+    <string name="month_long_standalone_february">Vasaris</string>
+    <string name="month_long_standalone_march">Kovas</string>
+    <string name="month_long_standalone_april">Balandis</string>
+    <string name="month_long_standalone_may">Gegužė</string>
+    <string name="month_long_standalone_june">Birželis</string>
+    <string name="month_long_standalone_july">Liepa</string>
+    <string name="month_long_standalone_august">Rugpjūtis</string>
+    <string name="month_long_standalone_september">Rugsėjis</string>
+    <string name="month_long_standalone_october">Spalis</string>
+    <string name="month_long_standalone_november">Lapkritis</string>
+    <string name="month_long_standalone_december">Gruodis</string>
+
+    <string name="month_long_january">sausio</string>
+    <string name="month_long_february">vasario</string>
+    <string name="month_long_march">kovo</string>
+    <string name="month_long_april">balandžio</string>
+    <string name="month_long_may">gegužės</string>
+    <string name="month_long_june">birželio</string>
+    <string name="month_long_july">liepos</string>
+    <string name="month_long_august">rugpjūčio</string>
+    <string name="month_long_september">rugsėjo</string>
+    <string name="month_long_october">spalio</string>
+    <string name="month_long_november">lapkričio</string>
+    <string name="month_long_december">gruodžio</string>
+
+    <string name="month_medium_january">Sau</string>
+    <string name="month_medium_february">Vas</string>
+    <string name="month_medium_march">Kov</string>
+    <string name="month_medium_april">Bal</string>
+    <string name="month_medium_may">Geg</string>
+    <string name="month_medium_june">Bir</string>
+    <string name="month_medium_july">Lie</string>
+    <string name="month_medium_august">Rgp</string>
+    <string name="month_medium_september">Rgs</string>
+    <string name="month_medium_october">Spl</string>
+    <string name="month_medium_november">Lap</string>
+    <string name="month_medium_december">Grd</string>
+
+    <string name="month_shortest_january">S</string>
+    <string name="month_shortest_february">V</string>
+    <string name="month_shortest_march">K</string>
+    <string name="month_shortest_april">B</string>
+    <string name="month_shortest_may">G</string>
+    <string name="month_shortest_june">B</string>
+    <string name="month_shortest_july">L</string>
+    <string name="month_shortest_august">R</string>
+    <string name="month_shortest_september">R</string>
+    <string name="month_shortest_october">S</string>
+    <string name="month_shortest_november">L</string>
+    <string name="month_shortest_december">G</string>
+
+    <string name="day_of_week_long_sunday">sekmadienis</string>
+    <string name="day_of_week_long_monday">pirmadienis</string>
+    <string name="day_of_week_long_tuesday">antradienis</string>
+    <string name="day_of_week_long_wednesday">trečiadienis</string>
+    <string name="day_of_week_long_thursday">ketvirtadienis</string>
+    <string name="day_of_week_long_friday">penktadienis</string>
+    <string name="day_of_week_long_saturday">šeštadienis</string>
+
+    <string name="day_of_week_medium_sunday">Sk</string>
+    <string name="day_of_week_medium_monday">Pr</string>
+    <string name="day_of_week_medium_tuesday">An</string>
+    <string name="day_of_week_medium_wednesday">Tr</string>
+    <string name="day_of_week_medium_thursday">Kt</string>
+    <string name="day_of_week_medium_friday">Pn</string>
+    <string name="day_of_week_medium_saturday">Št</string>
+
+    <string name="day_of_week_short_sunday">Sk</string>
+    <string name="day_of_week_short_monday">Pr</string>
+    <string name="day_of_week_short_tuesday">An</string>
+    <string name="day_of_week_short_wednesday">Tr</string>
+    <string name="day_of_week_short_thursday">Kt</string>
+    <string name="day_of_week_short_friday">Pn</string>
+    <string name="day_of_week_short_saturday">Št</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">P</string>
+    <string name="day_of_week_shortest_tuesday">A</string>
+    <string name="day_of_week_shortest_wednesday">T</string>
+    <string name="day_of_week_shortest_thursday">K</string>
+    <string name="day_of_week_shortest_friday">P</string>
+    <string name="day_of_week_shortest_saturday">Š</string>
+
+    <string name="am">priešpiet</string>
+    <string name="pm">popiet</string>
+    <string name="yesterday">vakar</string>
+    <string name="today">šiandien</string>
+    <string name="tomorrow">rytoj</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%Y-%m-%d</string>
+    <string name="numeric_date_format">yyyy-MM-dd</string>
+    <string name="month_day_year">%Y m. %B %-e d.</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %Y.%m.%d</string>
+    <string name="abbrev_month_day_year">%Y.%m.%d</string>
+    <string name="month_day">%B %-e</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-lv-rLV/donottranslate-cldr.xml b/core/res/res/values-lv-rLV/donottranslate-cldr.xml
new file mode 100644
index 0000000..d47a18f
--- /dev/null
+++ b/core/res/res/values-lv-rLV/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">janvāris</string>
+    <string name="month_long_standalone_february">februāris</string>
+    <string name="month_long_standalone_march">marts</string>
+    <string name="month_long_standalone_april">aprīlis</string>
+    <string name="month_long_standalone_may">maijs</string>
+    <string name="month_long_standalone_june">jūnijs</string>
+    <string name="month_long_standalone_july">jūlijs</string>
+    <string name="month_long_standalone_august">augusts</string>
+    <string name="month_long_standalone_september">septembris</string>
+    <string name="month_long_standalone_october">oktobris</string>
+    <string name="month_long_standalone_november">novembris</string>
+    <string name="month_long_standalone_december">decembris</string>
+
+    <string name="month_long_january">janvāris</string>
+    <string name="month_long_february">februāris</string>
+    <string name="month_long_march">marts</string>
+    <string name="month_long_april">aprīlis</string>
+    <string name="month_long_may">maijs</string>
+    <string name="month_long_june">jūnijs</string>
+    <string name="month_long_july">jūlijs</string>
+    <string name="month_long_august">augusts</string>
+    <string name="month_long_september">septembris</string>
+    <string name="month_long_october">oktobris</string>
+    <string name="month_long_november">novembris</string>
+    <string name="month_long_december">decembris</string>
+
+    <string name="month_medium_january">janv.</string>
+    <string name="month_medium_february">febr.</string>
+    <string name="month_medium_march">marts</string>
+    <string name="month_medium_april">apr.</string>
+    <string name="month_medium_may">maijs</string>
+    <string name="month_medium_june">jūn.</string>
+    <string name="month_medium_july">jūl.</string>
+    <string name="month_medium_august">aug.</string>
+    <string name="month_medium_september">sept.</string>
+    <string name="month_medium_october">okt.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">dec.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">svētdiena</string>
+    <string name="day_of_week_long_monday">pirmdiena</string>
+    <string name="day_of_week_long_tuesday">otrdiena</string>
+    <string name="day_of_week_long_wednesday">trešdiena</string>
+    <string name="day_of_week_long_thursday">ceturtdiena</string>
+    <string name="day_of_week_long_friday">piektdiena</string>
+    <string name="day_of_week_long_saturday">sestdiena</string>
+
+    <string name="day_of_week_medium_sunday">Sv</string>
+    <string name="day_of_week_medium_monday">Pr</string>
+    <string name="day_of_week_medium_tuesday">Ot</string>
+    <string name="day_of_week_medium_wednesday">Tr</string>
+    <string name="day_of_week_medium_thursday">Ce</string>
+    <string name="day_of_week_medium_friday">Pk</string>
+    <string name="day_of_week_medium_saturday">Se</string>
+
+    <string name="day_of_week_short_sunday">Sv</string>
+    <string name="day_of_week_short_monday">Pr</string>
+    <string name="day_of_week_short_tuesday">Ot</string>
+    <string name="day_of_week_short_wednesday">Tr</string>
+    <string name="day_of_week_short_thursday">Ce</string>
+    <string name="day_of_week_short_friday">Pk</string>
+    <string name="day_of_week_short_saturday">Se</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">P</string>
+    <string name="day_of_week_shortest_tuesday">O</string>
+    <string name="day_of_week_shortest_wednesday">T</string>
+    <string name="day_of_week_shortest_thursday">C</string>
+    <string name="day_of_week_shortest_friday">P</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">vakar</string>
+    <string name="today">šodien</string>
+    <string name="tomorrow">rīt</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%Y. gada %-e. %B</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %Y. gada %-e. %b</string>
+    <string name="abbrev_month_day_year">%Y. gada %-e. %b</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y. g. %B</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y. g. %b</string>
+</resources>
diff --git a/core/res/res/values-nb/donottranslate-cldr.xml b/core/res/res/values-nb/donottranslate-cldr.xml
new file mode 100644
index 0000000..f89e819
--- /dev/null
+++ b/core/res/res/values-nb/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">januar</string>
+    <string name="month_long_standalone_february">februar</string>
+    <string name="month_long_standalone_march">mars</string>
+    <string name="month_long_standalone_april">april</string>
+    <string name="month_long_standalone_may">mai</string>
+    <string name="month_long_standalone_june">juni</string>
+    <string name="month_long_standalone_july">juli</string>
+    <string name="month_long_standalone_august">august</string>
+    <string name="month_long_standalone_september">september</string>
+    <string name="month_long_standalone_october">oktober</string>
+    <string name="month_long_standalone_november">november</string>
+    <string name="month_long_standalone_december">desember</string>
+
+    <string name="month_long_january">januar</string>
+    <string name="month_long_february">februar</string>
+    <string name="month_long_march">mars</string>
+    <string name="month_long_april">april</string>
+    <string name="month_long_may">mai</string>
+    <string name="month_long_june">juni</string>
+    <string name="month_long_july">juli</string>
+    <string name="month_long_august">august</string>
+    <string name="month_long_september">september</string>
+    <string name="month_long_october">oktober</string>
+    <string name="month_long_november">november</string>
+    <string name="month_long_december">desember</string>
+
+    <string name="month_medium_january">jan.</string>
+    <string name="month_medium_february">feb.</string>
+    <string name="month_medium_march">mars</string>
+    <string name="month_medium_april">apr.</string>
+    <string name="month_medium_may">mai</string>
+    <string name="month_medium_june">juni</string>
+    <string name="month_medium_july">juli</string>
+    <string name="month_medium_august">aug.</string>
+    <string name="month_medium_september">sep.</string>
+    <string name="month_medium_october">okt.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">des.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">søndag</string>
+    <string name="day_of_week_long_monday">mandag</string>
+    <string name="day_of_week_long_tuesday">tirsdag</string>
+    <string name="day_of_week_long_wednesday">onsdag</string>
+    <string name="day_of_week_long_thursday">torsdag</string>
+    <string name="day_of_week_long_friday">fredag</string>
+    <string name="day_of_week_long_saturday">lørdag</string>
+
+    <string name="day_of_week_medium_sunday">søn.</string>
+    <string name="day_of_week_medium_monday">man.</string>
+    <string name="day_of_week_medium_tuesday">tir.</string>
+    <string name="day_of_week_medium_wednesday">ons.</string>
+    <string name="day_of_week_medium_thursday">tor.</string>
+    <string name="day_of_week_medium_friday">fre.</string>
+    <string name="day_of_week_medium_saturday">lør.</string>
+
+    <string name="day_of_week_short_sunday">søn.</string>
+    <string name="day_of_week_short_monday">man.</string>
+    <string name="day_of_week_short_tuesday">tir.</string>
+    <string name="day_of_week_short_wednesday">ons.</string>
+    <string name="day_of_week_short_thursday">tor.</string>
+    <string name="day_of_week_short_friday">fre.</string>
+    <string name="day_of_week_short_saturday">lør.</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">O</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">L</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">i går</string>
+    <string name="today">i dag</string>
+    <string name="tomorrow">i morgen</string>
+
+    <string name="hour_minute_ampm">%H.%M</string>
+    <string name="hour_minute_cap_ampm">%H.%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e. %B %Y</string>
+    <string name="time_of_day">%H.%M.%S</string>
+    <string name="date_and_time">%H.%M.%S %-e. %b %Y</string>
+    <string name="abbrev_month_day_year">%-e. %b %Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml
index 7bed159..a28b12c 100644
--- a/core/res/res/values-nb/strings.xml
+++ b/core/res/res/values-nb/strings.xml
@@ -424,9 +424,6 @@
     <string name="lockscreen_glogin_password_hint">"Password"</string>
     <string name="lockscreen_glogin_submit_button">"Sign in"</string>
     <string name="lockscreen_glogin_invalid_input">"Invalid username or password."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Fjern varslinger"</string>
@@ -458,9 +455,6 @@
     <string name="menu_enter_shortcut_label">"enter"</string>
     <string name="menu_delete_shortcut_label">"slett"</string>
     <string name="search_go">"Søk"</string>
-    <string name="today">"I dag"</string>
-    <string name="yesterday">"I går"</string>
-    <string name="tomorrow">"I morgen"</string>
     <string name="oneMonthDurationPast">"For en måned siden"</string>
     <string name="beforeOneMonthDurationPast">"For over en måned siden"</string>
   <plurals name="num_seconds_ago">
@@ -542,13 +536,6 @@
     <string name="weeks">"uker"</string>
     <string name="year">"år"</string>
     <string name="years">"år"</string>
-    <string name="sunday">"søndag"</string>
-    <string name="monday">"mandag"</string>
-    <string name="tuesday">"tirsdag"</string>
-    <string name="wednesday">"onsdag"</string>
-    <string name="thursday">"torsdag"</string>
-    <string name="friday">"fredag"</string>
-    <string name="saturday">"lørdag"</string>
     <string name="every_weekday">"Hverdager (man–fre)"</string>
     <string name="daily">"Hver dag"</string>
     <string name="weekly">"Hver <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -558,9 +545,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"Beklager, denne videoen er ikke gyldig for streaming til denne enheten."</string>
     <string name="VideoView_error_text_unknown">"Beklager, kan ikke spille denne videoen."</string>
     <string name="VideoView_error_button">"OK"</string>
-    <string name="am">"AM"</string>
-    <string name="pm">"PM"</string>
-    <string name="numeric_date">"<xliff:g id="YEAR">%Y</xliff:g>-<xliff:g id="MONTH">%m</xliff:g>-<xliff:g id="DAY">%d</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DATE1">%2$s</xliff:g> <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g> <xliff:g id="DATE2">%5$s</xliff:g> <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g> <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g> <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g> <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -572,12 +556,6 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>'., '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>'. '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>'. '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"middag"</string>
     <string name="Noon">"Middag"</string>
     <string name="midnight">"midnatt"</string>
@@ -586,10 +564,6 @@
     <skip />
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="DAY">%-d</xliff:g>. <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="DAY">%-d</xliff:g>. <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="DAY1">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -614,83 +588,10 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="DAY1">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g> <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g> <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>. <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g> <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>. <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g> <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g>. <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <!-- no translation found for abbrev_month_day (3156047263406783231) -->
     <skip />
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"søndag"</string>
-    <string name="day_of_week_long_monday">"mandag"</string>
-    <string name="day_of_week_long_tuesday">"tirsdag"</string>
-    <string name="day_of_week_long_wednesday">"onsdag"</string>
-    <string name="day_of_week_long_thursday">"torsdag"</string>
-    <string name="day_of_week_long_friday">"fredag"</string>
-    <string name="day_of_week_long_saturday">"lørdag"</string>
-    <string name="day_of_week_medium_sunday">"søn"</string>
-    <string name="day_of_week_medium_monday">"man"</string>
-    <string name="day_of_week_medium_tuesday">"tir"</string>
-    <string name="day_of_week_medium_wednesday">"ons"</string>
-    <string name="day_of_week_medium_thursday">"tor"</string>
-    <string name="day_of_week_medium_friday">"fre"</string>
-    <string name="day_of_week_medium_saturday">"lør"</string>
-    <string name="day_of_week_short_sunday">"sø"</string>
-    <string name="day_of_week_short_monday">"ma"</string>
-    <string name="day_of_week_short_tuesday">"ti"</string>
-    <string name="day_of_week_short_wednesday">"on"</string>
-    <string name="day_of_week_short_thursday">"to"</string>
-    <string name="day_of_week_short_friday">"fr"</string>
-    <string name="day_of_week_short_saturday">"lø"</string>
-    <string name="day_of_week_shorter_sunday">"S"</string>
-    <string name="day_of_week_shorter_monday">"M"</string>
-    <string name="day_of_week_shorter_tuesday">"Ti"</string>
-    <string name="day_of_week_shorter_wednesday">"O"</string>
-    <string name="day_of_week_shorter_thursday">"To"</string>
-    <string name="day_of_week_shorter_friday">"F"</string>
-    <string name="day_of_week_shorter_saturday">"L"</string>
-    <string name="day_of_week_shortest_sunday">"S"</string>
-    <string name="day_of_week_shortest_monday">"M"</string>
-    <string name="day_of_week_shortest_tuesday">"T"</string>
-    <string name="day_of_week_shortest_wednesday">"O"</string>
-    <string name="day_of_week_shortest_thursday">"T"</string>
-    <string name="day_of_week_shortest_friday">"F"</string>
-    <string name="day_of_week_shortest_saturday">"L"</string>
-    <string name="month_long_january">"januar"</string>
-    <string name="month_long_february">"februar"</string>
-    <string name="month_long_march">"mars"</string>
-    <string name="month_long_april">"april"</string>
-    <string name="month_long_may">"mai"</string>
-    <string name="month_long_june">"juni"</string>
-    <string name="month_long_july">"juli"</string>
-    <string name="month_long_august">"august"</string>
-    <string name="month_long_september">"september"</string>
-    <string name="month_long_october">"oktober"</string>
-    <string name="month_long_november">"november"</string>
-    <string name="month_long_december">"desember"</string>
-    <string name="month_medium_january">"jan"</string>
-    <string name="month_medium_february">"feb"</string>
-    <string name="month_medium_march">"mar"</string>
-    <string name="month_medium_april">"apr"</string>
-    <string name="month_medium_may">"mai"</string>
-    <string name="month_medium_june">"jun"</string>
-    <string name="month_medium_july">"jul"</string>
-    <string name="month_medium_august">"aug"</string>
-    <string name="month_medium_september">"sep"</string>
-    <string name="month_medium_october">"okt"</string>
-    <string name="month_medium_november">"nov"</string>
-    <string name="month_medium_december">"des"</string>
-    <string name="month_shortest_january">"J"</string>
-    <string name="month_shortest_february">"F"</string>
-    <string name="month_shortest_march">"M"</string>
-    <string name="month_shortest_april">"A"</string>
-    <string name="month_shortest_may">"M"</string>
-    <string name="month_shortest_june">"J"</string>
-    <string name="month_shortest_july">"J"</string>
-    <string name="month_shortest_august">"A"</string>
-    <string name="month_shortest_september">"S"</string>
-    <string name="month_shortest_october">"O"</string>
-    <string name="month_shortest_november">"N"</string>
-    <string name="month_shortest_december">"D"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Merk alt"</string>
diff --git a/core/res/res/values-nl-rBE/donottranslate-cldr.xml b/core/res/res/values-nl-rBE/donottranslate-cldr.xml
new file mode 100644
index 0000000..c3050c6
--- /dev/null
+++ b/core/res/res/values-nl-rBE/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">januari</string>
+    <string name="month_long_standalone_february">februari</string>
+    <string name="month_long_standalone_march">maart</string>
+    <string name="month_long_standalone_april">april</string>
+    <string name="month_long_standalone_may">mei</string>
+    <string name="month_long_standalone_june">juni</string>
+    <string name="month_long_standalone_july">juli</string>
+    <string name="month_long_standalone_august">augustus</string>
+    <string name="month_long_standalone_september">september</string>
+    <string name="month_long_standalone_october">oktober</string>
+    <string name="month_long_standalone_november">november</string>
+    <string name="month_long_standalone_december">december</string>
+
+    <string name="month_long_january">januari</string>
+    <string name="month_long_february">februari</string>
+    <string name="month_long_march">maart</string>
+    <string name="month_long_april">april</string>
+    <string name="month_long_may">mei</string>
+    <string name="month_long_june">juni</string>
+    <string name="month_long_july">juli</string>
+    <string name="month_long_august">augustus</string>
+    <string name="month_long_september">september</string>
+    <string name="month_long_october">oktober</string>
+    <string name="month_long_november">november</string>
+    <string name="month_long_december">december</string>
+
+    <string name="month_medium_january">jan.</string>
+    <string name="month_medium_february">feb.</string>
+    <string name="month_medium_march">mrt.</string>
+    <string name="month_medium_april">apr.</string>
+    <string name="month_medium_may">mei</string>
+    <string name="month_medium_june">jun.</string>
+    <string name="month_medium_july">jul.</string>
+    <string name="month_medium_august">aug.</string>
+    <string name="month_medium_september">sep.</string>
+    <string name="month_medium_october">okt.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">dec.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">zondag</string>
+    <string name="day_of_week_long_monday">maandag</string>
+    <string name="day_of_week_long_tuesday">dinsdag</string>
+    <string name="day_of_week_long_wednesday">woensdag</string>
+    <string name="day_of_week_long_thursday">donderdag</string>
+    <string name="day_of_week_long_friday">vrijdag</string>
+    <string name="day_of_week_long_saturday">zaterdag</string>
+
+    <string name="day_of_week_medium_sunday">zo</string>
+    <string name="day_of_week_medium_monday">ma</string>
+    <string name="day_of_week_medium_tuesday">di</string>
+    <string name="day_of_week_medium_wednesday">wo</string>
+    <string name="day_of_week_medium_thursday">do</string>
+    <string name="day_of_week_medium_friday">vr</string>
+    <string name="day_of_week_medium_saturday">za</string>
+
+    <string name="day_of_week_short_sunday">zo</string>
+    <string name="day_of_week_short_monday">ma</string>
+    <string name="day_of_week_short_tuesday">di</string>
+    <string name="day_of_week_short_wednesday">wo</string>
+    <string name="day_of_week_short_thursday">do</string>
+    <string name="day_of_week_short_friday">vr</string>
+    <string name="day_of_week_short_saturday">za</string>
+
+    <string name="day_of_week_shortest_sunday">Z</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">D</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">D</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">Z</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Gisteren</string>
+    <string name="today">Vandaag</string>
+    <string name="tomorrow">Morgen</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%-e/%m/%Y</string>
+    <string name="numeric_date_format">d/MM/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e-%b-%Y</string>
+    <string name="abbrev_month_day_year">%-e-%b-%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e-%b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-nl-rNL/donottranslate-cldr.xml b/core/res/res/values-nl-rNL/donottranslate-cldr.xml
new file mode 100644
index 0000000..b9e0407
--- /dev/null
+++ b/core/res/res/values-nl-rNL/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">januari</string>
+    <string name="month_long_standalone_february">februari</string>
+    <string name="month_long_standalone_march">maart</string>
+    <string name="month_long_standalone_april">april</string>
+    <string name="month_long_standalone_may">mei</string>
+    <string name="month_long_standalone_june">juni</string>
+    <string name="month_long_standalone_july">juli</string>
+    <string name="month_long_standalone_august">augustus</string>
+    <string name="month_long_standalone_september">september</string>
+    <string name="month_long_standalone_october">oktober</string>
+    <string name="month_long_standalone_november">november</string>
+    <string name="month_long_standalone_december">december</string>
+
+    <string name="month_long_january">januari</string>
+    <string name="month_long_february">februari</string>
+    <string name="month_long_march">maart</string>
+    <string name="month_long_april">april</string>
+    <string name="month_long_may">mei</string>
+    <string name="month_long_june">juni</string>
+    <string name="month_long_july">juli</string>
+    <string name="month_long_august">augustus</string>
+    <string name="month_long_september">september</string>
+    <string name="month_long_october">oktober</string>
+    <string name="month_long_november">november</string>
+    <string name="month_long_december">december</string>
+
+    <string name="month_medium_january">jan.</string>
+    <string name="month_medium_february">feb.</string>
+    <string name="month_medium_march">mrt.</string>
+    <string name="month_medium_april">apr.</string>
+    <string name="month_medium_may">mei</string>
+    <string name="month_medium_june">jun.</string>
+    <string name="month_medium_july">jul.</string>
+    <string name="month_medium_august">aug.</string>
+    <string name="month_medium_september">sep.</string>
+    <string name="month_medium_october">okt.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">dec.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">zondag</string>
+    <string name="day_of_week_long_monday">maandag</string>
+    <string name="day_of_week_long_tuesday">dinsdag</string>
+    <string name="day_of_week_long_wednesday">woensdag</string>
+    <string name="day_of_week_long_thursday">donderdag</string>
+    <string name="day_of_week_long_friday">vrijdag</string>
+    <string name="day_of_week_long_saturday">zaterdag</string>
+
+    <string name="day_of_week_medium_sunday">zo</string>
+    <string name="day_of_week_medium_monday">ma</string>
+    <string name="day_of_week_medium_tuesday">di</string>
+    <string name="day_of_week_medium_wednesday">wo</string>
+    <string name="day_of_week_medium_thursday">do</string>
+    <string name="day_of_week_medium_friday">vr</string>
+    <string name="day_of_week_medium_saturday">za</string>
+
+    <string name="day_of_week_short_sunday">zo</string>
+    <string name="day_of_week_short_monday">ma</string>
+    <string name="day_of_week_short_tuesday">di</string>
+    <string name="day_of_week_short_wednesday">wo</string>
+    <string name="day_of_week_short_thursday">do</string>
+    <string name="day_of_week_short_friday">vr</string>
+    <string name="day_of_week_short_saturday">za</string>
+
+    <string name="day_of_week_shortest_sunday">Z</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">D</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">D</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">Z</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Gisteren</string>
+    <string name="today">Vandaag</string>
+    <string name="tomorrow">Morgen</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d-%m-%Y</string>
+    <string name="numeric_date_format">dd-MM-yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e-%b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-nl/donottranslate-cldr.xml b/core/res/res/values-nl/donottranslate-cldr.xml
new file mode 100644
index 0000000..b9e0407
--- /dev/null
+++ b/core/res/res/values-nl/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">januari</string>
+    <string name="month_long_standalone_february">februari</string>
+    <string name="month_long_standalone_march">maart</string>
+    <string name="month_long_standalone_april">april</string>
+    <string name="month_long_standalone_may">mei</string>
+    <string name="month_long_standalone_june">juni</string>
+    <string name="month_long_standalone_july">juli</string>
+    <string name="month_long_standalone_august">augustus</string>
+    <string name="month_long_standalone_september">september</string>
+    <string name="month_long_standalone_october">oktober</string>
+    <string name="month_long_standalone_november">november</string>
+    <string name="month_long_standalone_december">december</string>
+
+    <string name="month_long_january">januari</string>
+    <string name="month_long_february">februari</string>
+    <string name="month_long_march">maart</string>
+    <string name="month_long_april">april</string>
+    <string name="month_long_may">mei</string>
+    <string name="month_long_june">juni</string>
+    <string name="month_long_july">juli</string>
+    <string name="month_long_august">augustus</string>
+    <string name="month_long_september">september</string>
+    <string name="month_long_october">oktober</string>
+    <string name="month_long_november">november</string>
+    <string name="month_long_december">december</string>
+
+    <string name="month_medium_january">jan.</string>
+    <string name="month_medium_february">feb.</string>
+    <string name="month_medium_march">mrt.</string>
+    <string name="month_medium_april">apr.</string>
+    <string name="month_medium_may">mei</string>
+    <string name="month_medium_june">jun.</string>
+    <string name="month_medium_july">jul.</string>
+    <string name="month_medium_august">aug.</string>
+    <string name="month_medium_september">sep.</string>
+    <string name="month_medium_october">okt.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">dec.</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">zondag</string>
+    <string name="day_of_week_long_monday">maandag</string>
+    <string name="day_of_week_long_tuesday">dinsdag</string>
+    <string name="day_of_week_long_wednesday">woensdag</string>
+    <string name="day_of_week_long_thursday">donderdag</string>
+    <string name="day_of_week_long_friday">vrijdag</string>
+    <string name="day_of_week_long_saturday">zaterdag</string>
+
+    <string name="day_of_week_medium_sunday">zo</string>
+    <string name="day_of_week_medium_monday">ma</string>
+    <string name="day_of_week_medium_tuesday">di</string>
+    <string name="day_of_week_medium_wednesday">wo</string>
+    <string name="day_of_week_medium_thursday">do</string>
+    <string name="day_of_week_medium_friday">vr</string>
+    <string name="day_of_week_medium_saturday">za</string>
+
+    <string name="day_of_week_short_sunday">zo</string>
+    <string name="day_of_week_short_monday">ma</string>
+    <string name="day_of_week_short_tuesday">di</string>
+    <string name="day_of_week_short_wednesday">wo</string>
+    <string name="day_of_week_short_thursday">do</string>
+    <string name="day_of_week_short_friday">vr</string>
+    <string name="day_of_week_short_saturday">za</string>
+
+    <string name="day_of_week_shortest_sunday">Z</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">D</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">D</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">Z</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Gisteren</string>
+    <string name="today">Vandaag</string>
+    <string name="tomorrow">Morgen</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d-%m-%Y</string>
+    <string name="numeric_date_format">dd-MM-yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e-%b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml
index 3a9e32c..4437f29 100644
--- a/core/res/res/values-nl/strings.xml
+++ b/core/res/res/values-nl/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"Wachtwoord"</string>
     <string name="lockscreen_glogin_submit_button">"Aanmelden"</string>
     <string name="lockscreen_glogin_invalid_input">"Gebruikersnaam of wachtwoord ongeldig."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Meldingen wissen"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"invoeren"</string>
     <string name="menu_delete_shortcut_label">"verwijderen"</string>
     <string name="search_go">"Zoeken"</string>
-    <string name="today">"Vandaag"</string>
-    <string name="yesterday">"Gisteren"</string>
-    <string name="tomorrow">"Morgen"</string>
     <string name="oneMonthDurationPast">"1 maand geleden"</string>
     <string name="beforeOneMonthDurationPast">"Meer dan 1 maand geleden"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"weken"</string>
     <string name="year">"jaar"</string>
     <string name="years">"jaren"</string>
-    <string name="sunday">"Zondag"</string>
-    <string name="monday">"Maandag"</string>
-    <string name="tuesday">"Dinsdag"</string>
-    <string name="wednesday">"Woensdag"</string>
-    <string name="thursday">"Donderdag"</string>
-    <string name="friday">"Vrijdag"</string>
-    <string name="saturday">"Zaterdag"</string>
     <string name="every_weekday">"Elke weekdag (ma-vr)"</string>
     <string name="daily">"Dagelijks"</string>
     <string name="weekly">"Wekelijks op <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"Deze video kan helaas niet worden gestreamd naar dit apparaat."</string>
     <string name="VideoView_error_text_unknown">"Deze video kan niet worden afgespeeld."</string>
     <string name="VideoView_error_button">"OK"</string>
-    <string name="am">"am"</string>
-    <string name="pm">"pm"</string>
-    <string name="numeric_date">"<xliff:g id="DAY">%d</xliff:g>-<xliff:g id="MONTH">%m</xliff:g>-<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g> <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g> <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"twaalf uur \'s middags"</string>
     <string name="Noon">"Twaalf uur \'s middags"</string>
     <string name="midnight">"middernacht"</string>
     <string name="Midnight">"Middernacht"</string>
-    <string name="month_day">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%b</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"Zondag"</string>
-    <string name="day_of_week_long_monday">"Maandag"</string>
-    <string name="day_of_week_long_tuesday">"Dinsdag"</string>
-    <string name="day_of_week_long_wednesday">"Woensdag"</string>
-    <string name="day_of_week_long_thursday">"Donderdag"</string>
-    <string name="day_of_week_long_friday">"Vrijdag"</string>
-    <string name="day_of_week_long_saturday">"Zaterdag"</string>
-    <string name="day_of_week_medium_sunday">"Zo"</string>
-    <string name="day_of_week_medium_monday">"Ma"</string>
-    <string name="day_of_week_medium_tuesday">"Di"</string>
-    <string name="day_of_week_medium_wednesday">"Wo"</string>
-    <string name="day_of_week_medium_thursday">"Do"</string>
-    <string name="day_of_week_medium_friday">"Vr"</string>
-    <string name="day_of_week_medium_saturday">"Za"</string>
-    <string name="day_of_week_short_sunday">"Zo"</string>
-    <string name="day_of_week_short_monday">"Ma"</string>
-    <string name="day_of_week_short_tuesday">"Di"</string>
-    <string name="day_of_week_short_wednesday">"Wo"</string>
-    <string name="day_of_week_short_thursday">"Do"</string>
-    <string name="day_of_week_short_friday">"Vr"</string>
-    <string name="day_of_week_short_saturday">"Za"</string>
-    <string name="day_of_week_shorter_sunday">"Zo"</string>
-    <string name="day_of_week_shorter_monday">"M"</string>
-    <string name="day_of_week_shorter_tuesday">"Di"</string>
-    <string name="day_of_week_shorter_wednesday">"W"</string>
-    <string name="day_of_week_shorter_thursday">"Do"</string>
-    <string name="day_of_week_shorter_friday">"V"</string>
-    <string name="day_of_week_shorter_saturday">"Za"</string>
-    <string name="day_of_week_shortest_sunday">"Z"</string>
-    <string name="day_of_week_shortest_monday">"M"</string>
-    <string name="day_of_week_shortest_tuesday">"D"</string>
-    <string name="day_of_week_shortest_wednesday">"W"</string>
-    <string name="day_of_week_shortest_thursday">"D"</string>
-    <string name="day_of_week_shortest_friday">"V"</string>
-    <string name="day_of_week_shortest_saturday">"Z"</string>
-    <string name="month_long_january">"Januari"</string>
-    <string name="month_long_february">"Februari"</string>
-    <string name="month_long_march">"Maart"</string>
-    <string name="month_long_april">"April"</string>
-    <string name="month_long_may">"Mei"</string>
-    <string name="month_long_june">"Juni"</string>
-    <string name="month_long_july">"Juli"</string>
-    <string name="month_long_august">"Augustus"</string>
-    <string name="month_long_september">"September"</string>
-    <string name="month_long_october">"Oktober"</string>
-    <string name="month_long_november">"November"</string>
-    <string name="month_long_december">"December"</string>
-    <string name="month_medium_january">"Jan"</string>
-    <string name="month_medium_february">"Feb"</string>
-    <string name="month_medium_march">"Mrt"</string>
-    <string name="month_medium_april">"Apr"</string>
-    <string name="month_medium_may">"Mei"</string>
-    <string name="month_medium_june">"Jun"</string>
-    <string name="month_medium_july">"Jul"</string>
-    <string name="month_medium_august">"Aug"</string>
-    <string name="month_medium_september">"Sep"</string>
-    <string name="month_medium_october">"Okt"</string>
-    <string name="month_medium_november">"Nov"</string>
-    <string name="month_medium_december">"Dec"</string>
-    <string name="month_shortest_january">"J"</string>
-    <string name="month_shortest_february">"V"</string>
-    <string name="month_shortest_march">"M"</string>
-    <string name="month_shortest_april">"A"</string>
-    <string name="month_shortest_may">"M"</string>
-    <string name="month_shortest_june">"J"</string>
-    <string name="month_shortest_july">"J"</string>
-    <string name="month_shortest_august">"A"</string>
-    <string name="month_shortest_september">"S"</string>
-    <string name="month_shortest_october">"O"</string>
-    <string name="month_shortest_november">"N"</string>
-    <string name="month_shortest_december">"D"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Alles selecteren"</string>
diff --git a/core/res/res/values-pl-rPL/donottranslate-cldr.xml b/core/res/res/values-pl-rPL/donottranslate-cldr.xml
new file mode 100644
index 0000000..0ae8b48
--- /dev/null
+++ b/core/res/res/values-pl-rPL/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">styczeń</string>
+    <string name="month_long_standalone_february">luty</string>
+    <string name="month_long_standalone_march">marzec</string>
+    <string name="month_long_standalone_april">kwiecień</string>
+    <string name="month_long_standalone_may">maj</string>
+    <string name="month_long_standalone_june">czerwiec</string>
+    <string name="month_long_standalone_july">lipiec</string>
+    <string name="month_long_standalone_august">sierpień</string>
+    <string name="month_long_standalone_september">wrzesień</string>
+    <string name="month_long_standalone_october">październik</string>
+    <string name="month_long_standalone_november">listopad</string>
+    <string name="month_long_standalone_december">grudzień</string>
+
+    <string name="month_long_january">stycznia</string>
+    <string name="month_long_february">lutego</string>
+    <string name="month_long_march">marca</string>
+    <string name="month_long_april">kwietnia</string>
+    <string name="month_long_may">maja</string>
+    <string name="month_long_june">czerwca</string>
+    <string name="month_long_july">lipca</string>
+    <string name="month_long_august">sierpnia</string>
+    <string name="month_long_september">września</string>
+    <string name="month_long_october">października</string>
+    <string name="month_long_november">listopada</string>
+    <string name="month_long_december">grudnia</string>
+
+    <string name="month_medium_january">sty</string>
+    <string name="month_medium_february">lut</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">kwi</string>
+    <string name="month_medium_may">maj</string>
+    <string name="month_medium_june">cze</string>
+    <string name="month_medium_july">lip</string>
+    <string name="month_medium_august">sie</string>
+    <string name="month_medium_september">wrz</string>
+    <string name="month_medium_october">paź</string>
+    <string name="month_medium_november">lis</string>
+    <string name="month_medium_december">gru</string>
+
+    <string name="month_shortest_january">s</string>
+    <string name="month_shortest_february">l</string>
+    <string name="month_shortest_march">m</string>
+    <string name="month_shortest_april">k</string>
+    <string name="month_shortest_may">m</string>
+    <string name="month_shortest_june">c</string>
+    <string name="month_shortest_july">l</string>
+    <string name="month_shortest_august">s</string>
+    <string name="month_shortest_september">w</string>
+    <string name="month_shortest_october">p</string>
+    <string name="month_shortest_november">l</string>
+    <string name="month_shortest_december">g</string>
+
+    <string name="day_of_week_long_sunday">niedziela</string>
+    <string name="day_of_week_long_monday">poniedziałek</string>
+    <string name="day_of_week_long_tuesday">wtorek</string>
+    <string name="day_of_week_long_wednesday">środa</string>
+    <string name="day_of_week_long_thursday">czwartek</string>
+    <string name="day_of_week_long_friday">piątek</string>
+    <string name="day_of_week_long_saturday">sobota</string>
+
+    <string name="day_of_week_medium_sunday">niedz.</string>
+    <string name="day_of_week_medium_monday">pon.</string>
+    <string name="day_of_week_medium_tuesday">wt.</string>
+    <string name="day_of_week_medium_wednesday">śr.</string>
+    <string name="day_of_week_medium_thursday">czw.</string>
+    <string name="day_of_week_medium_friday">pt.</string>
+    <string name="day_of_week_medium_saturday">sob.</string>
+
+    <string name="day_of_week_short_sunday">niedz.</string>
+    <string name="day_of_week_short_monday">pon.</string>
+    <string name="day_of_week_short_tuesday">wt.</string>
+    <string name="day_of_week_short_wednesday">śr.</string>
+    <string name="day_of_week_short_thursday">czw.</string>
+    <string name="day_of_week_short_friday">pt.</string>
+    <string name="day_of_week_short_saturday">sob.</string>
+
+    <string name="day_of_week_shortest_sunday">N</string>
+    <string name="day_of_week_shortest_monday">P</string>
+    <string name="day_of_week_shortest_tuesday">W</string>
+    <string name="day_of_week_shortest_wednesday">Ś</string>
+    <string name="day_of_week_shortest_thursday">C</string>
+    <string name="day_of_week_shortest_friday">P</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Wczoraj</string>
+    <string name="today">Dzisiaj</string>
+    <string name="tomorrow">Jutro</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d-%m-%Y</string>
+    <string name="numeric_date_format">dd-MM-yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d-%m-%Y</string>
+    <string name="abbrev_month_day_year">%d-%m-%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%-B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-pl/donottranslate-cldr.xml b/core/res/res/values-pl/donottranslate-cldr.xml
new file mode 100644
index 0000000..0ae8b48
--- /dev/null
+++ b/core/res/res/values-pl/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">styczeń</string>
+    <string name="month_long_standalone_february">luty</string>
+    <string name="month_long_standalone_march">marzec</string>
+    <string name="month_long_standalone_april">kwiecień</string>
+    <string name="month_long_standalone_may">maj</string>
+    <string name="month_long_standalone_june">czerwiec</string>
+    <string name="month_long_standalone_july">lipiec</string>
+    <string name="month_long_standalone_august">sierpień</string>
+    <string name="month_long_standalone_september">wrzesień</string>
+    <string name="month_long_standalone_october">październik</string>
+    <string name="month_long_standalone_november">listopad</string>
+    <string name="month_long_standalone_december">grudzień</string>
+
+    <string name="month_long_january">stycznia</string>
+    <string name="month_long_february">lutego</string>
+    <string name="month_long_march">marca</string>
+    <string name="month_long_april">kwietnia</string>
+    <string name="month_long_may">maja</string>
+    <string name="month_long_june">czerwca</string>
+    <string name="month_long_july">lipca</string>
+    <string name="month_long_august">sierpnia</string>
+    <string name="month_long_september">września</string>
+    <string name="month_long_october">października</string>
+    <string name="month_long_november">listopada</string>
+    <string name="month_long_december">grudnia</string>
+
+    <string name="month_medium_january">sty</string>
+    <string name="month_medium_february">lut</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">kwi</string>
+    <string name="month_medium_may">maj</string>
+    <string name="month_medium_june">cze</string>
+    <string name="month_medium_july">lip</string>
+    <string name="month_medium_august">sie</string>
+    <string name="month_medium_september">wrz</string>
+    <string name="month_medium_october">paź</string>
+    <string name="month_medium_november">lis</string>
+    <string name="month_medium_december">gru</string>
+
+    <string name="month_shortest_january">s</string>
+    <string name="month_shortest_february">l</string>
+    <string name="month_shortest_march">m</string>
+    <string name="month_shortest_april">k</string>
+    <string name="month_shortest_may">m</string>
+    <string name="month_shortest_june">c</string>
+    <string name="month_shortest_july">l</string>
+    <string name="month_shortest_august">s</string>
+    <string name="month_shortest_september">w</string>
+    <string name="month_shortest_october">p</string>
+    <string name="month_shortest_november">l</string>
+    <string name="month_shortest_december">g</string>
+
+    <string name="day_of_week_long_sunday">niedziela</string>
+    <string name="day_of_week_long_monday">poniedziałek</string>
+    <string name="day_of_week_long_tuesday">wtorek</string>
+    <string name="day_of_week_long_wednesday">środa</string>
+    <string name="day_of_week_long_thursday">czwartek</string>
+    <string name="day_of_week_long_friday">piątek</string>
+    <string name="day_of_week_long_saturday">sobota</string>
+
+    <string name="day_of_week_medium_sunday">niedz.</string>
+    <string name="day_of_week_medium_monday">pon.</string>
+    <string name="day_of_week_medium_tuesday">wt.</string>
+    <string name="day_of_week_medium_wednesday">śr.</string>
+    <string name="day_of_week_medium_thursday">czw.</string>
+    <string name="day_of_week_medium_friday">pt.</string>
+    <string name="day_of_week_medium_saturday">sob.</string>
+
+    <string name="day_of_week_short_sunday">niedz.</string>
+    <string name="day_of_week_short_monday">pon.</string>
+    <string name="day_of_week_short_tuesday">wt.</string>
+    <string name="day_of_week_short_wednesday">śr.</string>
+    <string name="day_of_week_short_thursday">czw.</string>
+    <string name="day_of_week_short_friday">pt.</string>
+    <string name="day_of_week_short_saturday">sob.</string>
+
+    <string name="day_of_week_shortest_sunday">N</string>
+    <string name="day_of_week_shortest_monday">P</string>
+    <string name="day_of_week_shortest_tuesday">W</string>
+    <string name="day_of_week_shortest_wednesday">Ś</string>
+    <string name="day_of_week_shortest_thursday">C</string>
+    <string name="day_of_week_shortest_friday">P</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Wczoraj</string>
+    <string name="today">Dzisiaj</string>
+    <string name="tomorrow">Jutro</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d-%m-%Y</string>
+    <string name="numeric_date_format">dd-MM-yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d-%m-%Y</string>
+    <string name="abbrev_month_day_year">%d-%m-%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%-B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml
index 50d245b..2cd4841 100644
--- a/core/res/res/values-pl/strings.xml
+++ b/core/res/res/values-pl/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"Hasło"</string>
     <string name="lockscreen_glogin_submit_button">"Zaloguj"</string>
     <string name="lockscreen_glogin_invalid_input">"Błędna nazwa użytkownika lub hasło."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Wyczyść powiadomienia"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"enter"</string>
     <string name="menu_delete_shortcut_label">"usuń"</string>
     <string name="search_go">"Szukaj"</string>
-    <string name="today">"Dzisiaj"</string>
-    <string name="yesterday">"Wczoraj"</string>
-    <string name="tomorrow">"Jutro"</string>
     <string name="oneMonthDurationPast">"1 miesiąc temu"</string>
     <string name="beforeOneMonthDurationPast">"Ponad 1 miesiąc temu"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"tygodni"</string>
     <string name="year">"rok"</string>
     <string name="years">"lat"</string>
-    <string name="sunday">"niedziela"</string>
-    <string name="monday">"poniedziałek"</string>
-    <string name="tuesday">"wtorek"</string>
-    <string name="wednesday">"środa"</string>
-    <string name="thursday">"czwartek"</string>
-    <string name="friday">"piątek"</string>
-    <string name="saturday">"sobota"</string>
     <string name="every_weekday">"W każdy dzień roboczy (pon–pt)"</string>
     <string name="daily">"Codziennie"</string>
     <string name="weekly">"Co tydzień w <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"Przepraszamy, ten film wideo nie nadaje się do przesyłania strumieniowego do tego urządzenia."</string>
     <string name="VideoView_error_text_unknown">"Niestety, nie można odtworzyć tego filmu wideo."</string>
     <string name="VideoView_error_button">"OK"</string>
-    <string name="am">"rano"</string>
-    <string name="pm">"po południu"</string>
-    <string name="numeric_date">"<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>', '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"południe"</string>
     <string name="Noon">"Południe"</string>
     <string name="midnight">"północ"</string>
     <string name="Midnight">"Północ"</string>
-    <string name="month_day">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g>, <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>, <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g>, <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>, <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g>, <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g>, <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"niedziela"</string>
-    <string name="day_of_week_long_monday">"poniedziałek"</string>
-    <string name="day_of_week_long_tuesday">"wtorek"</string>
-    <string name="day_of_week_long_wednesday">"środa"</string>
-    <string name="day_of_week_long_thursday">"czwartek"</string>
-    <string name="day_of_week_long_friday">"piątek"</string>
-    <string name="day_of_week_long_saturday">"sobota"</string>
-    <string name="day_of_week_medium_sunday">"Nie"</string>
-    <string name="day_of_week_medium_monday">"Pon"</string>
-    <string name="day_of_week_medium_tuesday">"Wt"</string>
-    <string name="day_of_week_medium_wednesday">"Śro"</string>
-    <string name="day_of_week_medium_thursday">"Czw"</string>
-    <string name="day_of_week_medium_friday">"Pią"</string>
-    <string name="day_of_week_medium_saturday">"Sob"</string>
-    <string name="day_of_week_short_sunday">"Nd"</string>
-    <string name="day_of_week_short_monday">"Pn"</string>
-    <string name="day_of_week_short_tuesday">"Wt"</string>
-    <string name="day_of_week_short_wednesday">"Śr"</string>
-    <string name="day_of_week_short_thursday">"Czw"</string>
-    <string name="day_of_week_short_friday">"Pt"</string>
-    <string name="day_of_week_short_saturday">"So"</string>
-    <string name="day_of_week_shorter_sunday">"Nd"</string>
-    <string name="day_of_week_shorter_monday">"Pon"</string>
-    <string name="day_of_week_shorter_tuesday">"Wt"</string>
-    <string name="day_of_week_shorter_wednesday">"Śr"</string>
-    <string name="day_of_week_shorter_thursday">"Czw"</string>
-    <string name="day_of_week_shorter_friday">"Pt"</string>
-    <string name="day_of_week_shorter_saturday">"So"</string>
-    <string name="day_of_week_shortest_sunday">"Nd"</string>
-    <string name="day_of_week_shortest_monday">"Pon"</string>
-    <string name="day_of_week_shortest_tuesday">"Czw"</string>
-    <string name="day_of_week_shortest_wednesday">"Śr"</string>
-    <string name="day_of_week_shortest_thursday">"Czw"</string>
-    <string name="day_of_week_shortest_friday">"Pt"</string>
-    <string name="day_of_week_shortest_saturday">"Sob"</string>
-    <string name="month_long_january">"Styczeń"</string>
-    <string name="month_long_february">"Luty"</string>
-    <string name="month_long_march">"Marzec"</string>
-    <string name="month_long_april">"Kwiecień"</string>
-    <string name="month_long_may">"Maj"</string>
-    <string name="month_long_june">"Czerwiec"</string>
-    <string name="month_long_july">"Lipiec"</string>
-    <string name="month_long_august">"Sierpień"</string>
-    <string name="month_long_september">"Wrzesień"</string>
-    <string name="month_long_october">"Październik"</string>
-    <string name="month_long_november">"Listopad"</string>
-    <string name="month_long_december">"Grudzień"</string>
-    <string name="month_medium_january">"Sty"</string>
-    <string name="month_medium_february">"Lut"</string>
-    <string name="month_medium_march">"Mar"</string>
-    <string name="month_medium_april">"Kwi"</string>
-    <string name="month_medium_may">"Maj"</string>
-    <string name="month_medium_june">"Cze"</string>
-    <string name="month_medium_july">"Lip"</string>
-    <string name="month_medium_august">"Sie"</string>
-    <string name="month_medium_september">"Wrz"</string>
-    <string name="month_medium_october">"Paź"</string>
-    <string name="month_medium_november">"Lis"</string>
-    <string name="month_medium_december">"Gru"</string>
-    <string name="month_shortest_january">"Sty"</string>
-    <string name="month_shortest_february">"Lut"</string>
-    <string name="month_shortest_march">"Pon"</string>
-    <string name="month_shortest_april">"Kwi"</string>
-    <string name="month_shortest_may">"Maj"</string>
-    <string name="month_shortest_june">"Cze"</string>
-    <string name="month_shortest_july">"Lip"</string>
-    <string name="month_shortest_august">"Sie"</string>
-    <string name="month_shortest_september">"Wrz"</string>
-    <string name="month_shortest_october">"Paź"</string>
-    <string name="month_shortest_november">"Lis"</string>
-    <string name="month_shortest_december">"Gru"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Zaznacz wszystko"</string>
diff --git a/core/res/res/values-pt-rBR/donottranslate-cldr.xml b/core/res/res/values-pt-rBR/donottranslate-cldr.xml
new file mode 100644
index 0000000..cf0c29e
--- /dev/null
+++ b/core/res/res/values-pt-rBR/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">janeiro</string>
+    <string name="month_long_standalone_february">fevereiro</string>
+    <string name="month_long_standalone_march">março</string>
+    <string name="month_long_standalone_april">abril</string>
+    <string name="month_long_standalone_may">maio</string>
+    <string name="month_long_standalone_june">junho</string>
+    <string name="month_long_standalone_july">julho</string>
+    <string name="month_long_standalone_august">agosto</string>
+    <string name="month_long_standalone_september">setembro</string>
+    <string name="month_long_standalone_october">outubro</string>
+    <string name="month_long_standalone_november">novembro</string>
+    <string name="month_long_standalone_december">dezembro</string>
+
+    <string name="month_long_january">janeiro</string>
+    <string name="month_long_february">fevereiro</string>
+    <string name="month_long_march">março</string>
+    <string name="month_long_april">abril</string>
+    <string name="month_long_may">maio</string>
+    <string name="month_long_june">junho</string>
+    <string name="month_long_july">julho</string>
+    <string name="month_long_august">agosto</string>
+    <string name="month_long_september">setembro</string>
+    <string name="month_long_october">outubro</string>
+    <string name="month_long_november">novembro</string>
+    <string name="month_long_december">dezembro</string>
+
+    <string name="month_medium_january">jan</string>
+    <string name="month_medium_february">fev</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">abr</string>
+    <string name="month_medium_may">mai</string>
+    <string name="month_medium_june">jun</string>
+    <string name="month_medium_july">jul</string>
+    <string name="month_medium_august">ago</string>
+    <string name="month_medium_september">set</string>
+    <string name="month_medium_october">out</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dez</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">domingo</string>
+    <string name="day_of_week_long_monday">segunda-feira</string>
+    <string name="day_of_week_long_tuesday">terça-feira</string>
+    <string name="day_of_week_long_wednesday">quarta-feira</string>
+    <string name="day_of_week_long_thursday">quinta-feira</string>
+    <string name="day_of_week_long_friday">sexta-feira</string>
+    <string name="day_of_week_long_saturday">sábado</string>
+
+    <string name="day_of_week_medium_sunday">dom</string>
+    <string name="day_of_week_medium_monday">seg</string>
+    <string name="day_of_week_medium_tuesday">ter</string>
+    <string name="day_of_week_medium_wednesday">qua</string>
+    <string name="day_of_week_medium_thursday">qui</string>
+    <string name="day_of_week_medium_friday">sex</string>
+    <string name="day_of_week_medium_saturday">sáb</string>
+
+    <string name="day_of_week_short_sunday">dom</string>
+    <string name="day_of_week_short_monday">seg</string>
+    <string name="day_of_week_short_tuesday">ter</string>
+    <string name="day_of_week_short_wednesday">qua</string>
+    <string name="day_of_week_short_thursday">qui</string>
+    <string name="day_of_week_short_friday">sex</string>
+    <string name="day_of_week_short_saturday">sáb</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">S</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">Q</string>
+    <string name="day_of_week_shortest_thursday">Q</string>
+    <string name="day_of_week_shortest_friday">S</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Ontem</string>
+    <string name="today">Hoje</string>
+    <string name="tomorrow">Amanhã</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e de %B de %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d/%m/%Y</string>
+    <string name="abbrev_month_day_year">%d/%m/%Y</string>
+    <string name="month_day">%-e de %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B de %Y</string>
+    <string name="abbrev_month_day">%-e de %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b de %Y</string>
+</resources>
diff --git a/core/res/res/values-pt-rPT/donottranslate-cldr.xml b/core/res/res/values-pt-rPT/donottranslate-cldr.xml
new file mode 100644
index 0000000..d42dc8f
--- /dev/null
+++ b/core/res/res/values-pt-rPT/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Janeiro</string>
+    <string name="month_long_standalone_february">Fevereiro</string>
+    <string name="month_long_standalone_march">Março</string>
+    <string name="month_long_standalone_april">Abril</string>
+    <string name="month_long_standalone_may">Maio</string>
+    <string name="month_long_standalone_june">Junho</string>
+    <string name="month_long_standalone_july">Julho</string>
+    <string name="month_long_standalone_august">Agosto</string>
+    <string name="month_long_standalone_september">Setembro</string>
+    <string name="month_long_standalone_october">Outubro</string>
+    <string name="month_long_standalone_november">Novembro</string>
+    <string name="month_long_standalone_december">Dezembro</string>
+
+    <string name="month_long_january">Janeiro</string>
+    <string name="month_long_february">Fevereiro</string>
+    <string name="month_long_march">Março</string>
+    <string name="month_long_april">Abril</string>
+    <string name="month_long_may">Maio</string>
+    <string name="month_long_june">Junho</string>
+    <string name="month_long_july">Julho</string>
+    <string name="month_long_august">Agosto</string>
+    <string name="month_long_september">Setembro</string>
+    <string name="month_long_october">Outubro</string>
+    <string name="month_long_november">Novembro</string>
+    <string name="month_long_december">Dezembro</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Fev</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Abr</string>
+    <string name="month_medium_may">Mai</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Ago</string>
+    <string name="month_medium_september">Set</string>
+    <string name="month_medium_october">Out</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dez</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">domingo</string>
+    <string name="day_of_week_long_monday">segunda-feira</string>
+    <string name="day_of_week_long_tuesday">terça-feira</string>
+    <string name="day_of_week_long_wednesday">quarta-feira</string>
+    <string name="day_of_week_long_thursday">quinta-feira</string>
+    <string name="day_of_week_long_friday">sexta-feira</string>
+    <string name="day_of_week_long_saturday">sábado</string>
+
+    <string name="day_of_week_medium_sunday">dom</string>
+    <string name="day_of_week_medium_monday">seg</string>
+    <string name="day_of_week_medium_tuesday">ter</string>
+    <string name="day_of_week_medium_wednesday">qua</string>
+    <string name="day_of_week_medium_thursday">qui</string>
+    <string name="day_of_week_medium_friday">sex</string>
+    <string name="day_of_week_medium_saturday">sáb</string>
+
+    <string name="day_of_week_short_sunday">dom</string>
+    <string name="day_of_week_short_monday">seg</string>
+    <string name="day_of_week_short_tuesday">ter</string>
+    <string name="day_of_week_short_wednesday">qua</string>
+    <string name="day_of_week_short_thursday">qui</string>
+    <string name="day_of_week_short_friday">sex</string>
+    <string name="day_of_week_short_saturday">sáb</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">S</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">Q</string>
+    <string name="day_of_week_shortest_thursday">Q</string>
+    <string name="day_of_week_shortest_friday">S</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">Antes do meio-dia</string>
+    <string name="pm">Depois do meio-dia</string>
+    <string name="yesterday">Ontem</string>
+    <string name="today">Hoje</string>
+    <string name="tomorrow">Amanhã</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">%-e de %B de %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e de %b de %Y</string>
+    <string name="abbrev_month_day_year">%-e de %b de %Y</string>
+    <string name="month_day">%-e de %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B de %Y</string>
+    <string name="abbrev_month_day">%-e de %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b de %Y</string>
+</resources>
diff --git a/core/res/res/values-ro-rRO/donottranslate-cldr.xml b/core/res/res/values-ro-rRO/donottranslate-cldr.xml
new file mode 100644
index 0000000..1ed2c81
--- /dev/null
+++ b/core/res/res/values-ro-rRO/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">ianuarie</string>
+    <string name="month_long_standalone_february">februarie</string>
+    <string name="month_long_standalone_march">martie</string>
+    <string name="month_long_standalone_april">aprilie</string>
+    <string name="month_long_standalone_may">mai</string>
+    <string name="month_long_standalone_june">iunie</string>
+    <string name="month_long_standalone_july">iulie</string>
+    <string name="month_long_standalone_august">august</string>
+    <string name="month_long_standalone_september">septembrie</string>
+    <string name="month_long_standalone_october">octombrie</string>
+    <string name="month_long_standalone_november">noiembrie</string>
+    <string name="month_long_standalone_december">decembrie</string>
+
+    <string name="month_long_january">ianuarie</string>
+    <string name="month_long_february">februarie</string>
+    <string name="month_long_march">martie</string>
+    <string name="month_long_april">aprilie</string>
+    <string name="month_long_may">mai</string>
+    <string name="month_long_june">iunie</string>
+    <string name="month_long_july">iulie</string>
+    <string name="month_long_august">august</string>
+    <string name="month_long_september">septembrie</string>
+    <string name="month_long_october">octombrie</string>
+    <string name="month_long_november">noiembrie</string>
+    <string name="month_long_december">decembrie</string>
+
+    <string name="month_medium_january">ian.</string>
+    <string name="month_medium_february">feb.</string>
+    <string name="month_medium_march">mar.</string>
+    <string name="month_medium_april">apr.</string>
+    <string name="month_medium_may">mai</string>
+    <string name="month_medium_june">iun.</string>
+    <string name="month_medium_july">iul.</string>
+    <string name="month_medium_august">aug.</string>
+    <string name="month_medium_september">sept.</string>
+    <string name="month_medium_october">oct.</string>
+    <string name="month_medium_november">nov.</string>
+    <string name="month_medium_december">dec.</string>
+
+    <string name="month_shortest_january">I</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">I</string>
+    <string name="month_shortest_july">I</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">duminică</string>
+    <string name="day_of_week_long_monday">luni</string>
+    <string name="day_of_week_long_tuesday">marți</string>
+    <string name="day_of_week_long_wednesday">miercuri</string>
+    <string name="day_of_week_long_thursday">joi</string>
+    <string name="day_of_week_long_friday">vineri</string>
+    <string name="day_of_week_long_saturday">sâmbătă</string>
+
+    <string name="day_of_week_medium_sunday">Du</string>
+    <string name="day_of_week_medium_monday">Lu</string>
+    <string name="day_of_week_medium_tuesday">Ma</string>
+    <string name="day_of_week_medium_wednesday">Mi</string>
+    <string name="day_of_week_medium_thursday">Jo</string>
+    <string name="day_of_week_medium_friday">Vi</string>
+    <string name="day_of_week_medium_saturday">Sâ</string>
+
+    <string name="day_of_week_short_sunday">Du</string>
+    <string name="day_of_week_short_monday">Lu</string>
+    <string name="day_of_week_short_tuesday">Ma</string>
+    <string name="day_of_week_short_wednesday">Mi</string>
+    <string name="day_of_week_short_thursday">Jo</string>
+    <string name="day_of_week_short_friday">Vi</string>
+    <string name="day_of_week_short_saturday">Sâ</string>
+
+    <string name="day_of_week_shortest_sunday">D</string>
+    <string name="day_of_week_shortest_monday">L</string>
+    <string name="day_of_week_shortest_tuesday">M</string>
+    <string name="day_of_week_shortest_wednesday">M</string>
+    <string name="day_of_week_shortest_thursday">J</string>
+    <string name="day_of_week_shortest_friday">V</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">ieri</string>
+    <string name="today">azi</string>
+    <string name="tomorrow">mâine</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S, %d.%m.%Y</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-ru-rRU/donottranslate-cldr.xml b/core/res/res/values-ru-rRU/donottranslate-cldr.xml
new file mode 100644
index 0000000..8faeb44
--- /dev/null
+++ b/core/res/res/values-ru-rRU/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Январь</string>
+    <string name="month_long_standalone_february">Февраль</string>
+    <string name="month_long_standalone_march">Март</string>
+    <string name="month_long_standalone_april">Апрель</string>
+    <string name="month_long_standalone_may">Май</string>
+    <string name="month_long_standalone_june">Июнь</string>
+    <string name="month_long_standalone_july">Июль</string>
+    <string name="month_long_standalone_august">Август</string>
+    <string name="month_long_standalone_september">Сентябрь</string>
+    <string name="month_long_standalone_october">Октябрь</string>
+    <string name="month_long_standalone_november">Ноябрь</string>
+    <string name="month_long_standalone_december">Декабрь</string>
+
+    <string name="month_long_january">января</string>
+    <string name="month_long_february">февраля</string>
+    <string name="month_long_march">марта</string>
+    <string name="month_long_april">апреля</string>
+    <string name="month_long_may">мая</string>
+    <string name="month_long_june">июня</string>
+    <string name="month_long_july">июля</string>
+    <string name="month_long_august">августа</string>
+    <string name="month_long_september">сентября</string>
+    <string name="month_long_october">октября</string>
+    <string name="month_long_november">ноября</string>
+    <string name="month_long_december">декабря</string>
+
+    <string name="month_medium_january">янв.</string>
+    <string name="month_medium_february">февр.</string>
+    <string name="month_medium_march">марта</string>
+    <string name="month_medium_april">апр.</string>
+    <string name="month_medium_may">мая</string>
+    <string name="month_medium_june">июня</string>
+    <string name="month_medium_july">июля</string>
+    <string name="month_medium_august">авг.</string>
+    <string name="month_medium_september">сент.</string>
+    <string name="month_medium_october">окт.</string>
+    <string name="month_medium_november">нояб.</string>
+    <string name="month_medium_december">дек.</string>
+
+    <string name="month_shortest_january">Я</string>
+    <string name="month_shortest_february">Ф</string>
+    <string name="month_shortest_march">М</string>
+    <string name="month_shortest_april">А</string>
+    <string name="month_shortest_may">М</string>
+    <string name="month_shortest_june">И</string>
+    <string name="month_shortest_july">И</string>
+    <string name="month_shortest_august">А</string>
+    <string name="month_shortest_september">С</string>
+    <string name="month_shortest_october">О</string>
+    <string name="month_shortest_november">Н</string>
+    <string name="month_shortest_december">Д</string>
+
+    <string name="day_of_week_long_sunday">воскресенье</string>
+    <string name="day_of_week_long_monday">понедельник</string>
+    <string name="day_of_week_long_tuesday">вторник</string>
+    <string name="day_of_week_long_wednesday">среда</string>
+    <string name="day_of_week_long_thursday">четверг</string>
+    <string name="day_of_week_long_friday">пятница</string>
+    <string name="day_of_week_long_saturday">суббота</string>
+
+    <string name="day_of_week_medium_sunday">Вс</string>
+    <string name="day_of_week_medium_monday">Пн</string>
+    <string name="day_of_week_medium_tuesday">Вт</string>
+    <string name="day_of_week_medium_wednesday">Ср</string>
+    <string name="day_of_week_medium_thursday">Чт</string>
+    <string name="day_of_week_medium_friday">Пт</string>
+    <string name="day_of_week_medium_saturday">Сб</string>
+
+    <string name="day_of_week_short_sunday">Вс</string>
+    <string name="day_of_week_short_monday">Пн</string>
+    <string name="day_of_week_short_tuesday">Вт</string>
+    <string name="day_of_week_short_wednesday">Ср</string>
+    <string name="day_of_week_short_thursday">Чт</string>
+    <string name="day_of_week_short_friday">Пт</string>
+    <string name="day_of_week_short_saturday">Сб</string>
+
+    <string name="day_of_week_shortest_sunday">В</string>
+    <string name="day_of_week_shortest_monday">П</string>
+    <string name="day_of_week_shortest_tuesday">В</string>
+    <string name="day_of_week_shortest_wednesday">С</string>
+    <string name="day_of_week_shortest_thursday">Ч</string>
+    <string name="day_of_week_shortest_friday">П</string>
+    <string name="day_of_week_shortest_saturday">С</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Вчера</string>
+    <string name="today">Сегодня</string>
+    <string name="tomorrow">Завтра</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e %B %Y г.</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S %d.%m.%Y</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-ru/donottranslate-cldr.xml b/core/res/res/values-ru/donottranslate-cldr.xml
new file mode 100644
index 0000000..8faeb44
--- /dev/null
+++ b/core/res/res/values-ru/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Январь</string>
+    <string name="month_long_standalone_february">Февраль</string>
+    <string name="month_long_standalone_march">Март</string>
+    <string name="month_long_standalone_april">Апрель</string>
+    <string name="month_long_standalone_may">Май</string>
+    <string name="month_long_standalone_june">Июнь</string>
+    <string name="month_long_standalone_july">Июль</string>
+    <string name="month_long_standalone_august">Август</string>
+    <string name="month_long_standalone_september">Сентябрь</string>
+    <string name="month_long_standalone_october">Октябрь</string>
+    <string name="month_long_standalone_november">Ноябрь</string>
+    <string name="month_long_standalone_december">Декабрь</string>
+
+    <string name="month_long_january">января</string>
+    <string name="month_long_february">февраля</string>
+    <string name="month_long_march">марта</string>
+    <string name="month_long_april">апреля</string>
+    <string name="month_long_may">мая</string>
+    <string name="month_long_june">июня</string>
+    <string name="month_long_july">июля</string>
+    <string name="month_long_august">августа</string>
+    <string name="month_long_september">сентября</string>
+    <string name="month_long_october">октября</string>
+    <string name="month_long_november">ноября</string>
+    <string name="month_long_december">декабря</string>
+
+    <string name="month_medium_january">янв.</string>
+    <string name="month_medium_february">февр.</string>
+    <string name="month_medium_march">марта</string>
+    <string name="month_medium_april">апр.</string>
+    <string name="month_medium_may">мая</string>
+    <string name="month_medium_june">июня</string>
+    <string name="month_medium_july">июля</string>
+    <string name="month_medium_august">авг.</string>
+    <string name="month_medium_september">сент.</string>
+    <string name="month_medium_october">окт.</string>
+    <string name="month_medium_november">нояб.</string>
+    <string name="month_medium_december">дек.</string>
+
+    <string name="month_shortest_january">Я</string>
+    <string name="month_shortest_february">Ф</string>
+    <string name="month_shortest_march">М</string>
+    <string name="month_shortest_april">А</string>
+    <string name="month_shortest_may">М</string>
+    <string name="month_shortest_june">И</string>
+    <string name="month_shortest_july">И</string>
+    <string name="month_shortest_august">А</string>
+    <string name="month_shortest_september">С</string>
+    <string name="month_shortest_october">О</string>
+    <string name="month_shortest_november">Н</string>
+    <string name="month_shortest_december">Д</string>
+
+    <string name="day_of_week_long_sunday">воскресенье</string>
+    <string name="day_of_week_long_monday">понедельник</string>
+    <string name="day_of_week_long_tuesday">вторник</string>
+    <string name="day_of_week_long_wednesday">среда</string>
+    <string name="day_of_week_long_thursday">четверг</string>
+    <string name="day_of_week_long_friday">пятница</string>
+    <string name="day_of_week_long_saturday">суббота</string>
+
+    <string name="day_of_week_medium_sunday">Вс</string>
+    <string name="day_of_week_medium_monday">Пн</string>
+    <string name="day_of_week_medium_tuesday">Вт</string>
+    <string name="day_of_week_medium_wednesday">Ср</string>
+    <string name="day_of_week_medium_thursday">Чт</string>
+    <string name="day_of_week_medium_friday">Пт</string>
+    <string name="day_of_week_medium_saturday">Сб</string>
+
+    <string name="day_of_week_short_sunday">Вс</string>
+    <string name="day_of_week_short_monday">Пн</string>
+    <string name="day_of_week_short_tuesday">Вт</string>
+    <string name="day_of_week_short_wednesday">Ср</string>
+    <string name="day_of_week_short_thursday">Чт</string>
+    <string name="day_of_week_short_friday">Пт</string>
+    <string name="day_of_week_short_saturday">Сб</string>
+
+    <string name="day_of_week_shortest_sunday">В</string>
+    <string name="day_of_week_shortest_monday">П</string>
+    <string name="day_of_week_shortest_tuesday">В</string>
+    <string name="day_of_week_shortest_wednesday">С</string>
+    <string name="day_of_week_shortest_thursday">Ч</string>
+    <string name="day_of_week_shortest_friday">П</string>
+    <string name="day_of_week_shortest_saturday">С</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Вчера</string>
+    <string name="today">Сегодня</string>
+    <string name="tomorrow">Завтра</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e %B %Y г.</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S %d.%m.%Y</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml
index fac6cb7..2a15c43 100644
--- a/core/res/res/values-ru/strings.xml
+++ b/core/res/res/values-ru/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"Пароль"</string>
     <string name="lockscreen_glogin_submit_button">"Войти"</string>
     <string name="lockscreen_glogin_invalid_input">"Недействительное имя пользователя или пароль."</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"Очистить уведомления"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"ввод"</string>
     <string name="menu_delete_shortcut_label">"удалить"</string>
     <string name="search_go">"Поиск"</string>
-    <string name="today">"Сегодня"</string>
-    <string name="yesterday">"Вчера"</string>
-    <string name="tomorrow">"Завтра"</string>
     <string name="oneMonthDurationPast">"1 месяц назад"</string>
     <string name="beforeOneMonthDurationPast">"Больше 1 месяца назад"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"недели"</string>
     <string name="year">"год"</string>
     <string name="years">"годы"</string>
-    <string name="sunday">"воскресенье"</string>
-    <string name="monday">"понедельник"</string>
-    <string name="tuesday">"вторник"</string>
-    <string name="wednesday">"среда"</string>
-    <string name="thursday">"четверг"</string>
-    <string name="friday">"пятница"</string>
-    <string name="saturday">"суббота"</string>
     <string name="every_weekday">"По рабочим дням (пн-пт)"</string>
     <string name="daily">"Ежедневно"</string>
     <string name="weekly">"Еженедельно в: <xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"К сожалению, это видео не подходит для потокового воспроизведения на данном устройстве."</string>
     <string name="VideoView_error_text_unknown">"К сожалению, это видео нельзя воспроизвести."</string>
     <string name="VideoView_error_button">"ОК"</string>
-    <string name="am">"AM"</string>
-    <string name="pm">"PM"</string>
-    <string name="numeric_date">"<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DATE1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%4$s</xliff:g>, <xliff:g id="DATE2">%5$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>, <xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>, <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>, <xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="TIME_RANGE">%1$s</xliff:g>, <xliff:g id="WEEKDAY">%2$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="DAY">d</xliff:g>' '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"полдень"</string>
     <string name="Noon">"Полдень"</string>
     <string name="midnight">"полночь"</string>
     <string name="Midnight">"Полночь"</string>
-    <string name="month_day">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g>"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="month_year">"<xliff:g id="YEAR">%Y</xliff:g> <xliff:g id="MONTH">%B</xliff:g> г."</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g> <xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR">%9$s</xliff:g>"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="DAY1">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="DAY2">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="WEEKDAY1">%1$s</xliff:g>, <xliff:g id="DAY1_0">%3$s</xliff:g> <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="YEAR1">%4$s</xliff:g>, <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="WEEKDAY2">%6$s</xliff:g>, <xliff:g id="DAY2_1">%8$s</xliff:g> <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="YEAR2">%9$s</xliff:g>, <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g>"</string>
-    <string name="abbrev_month_year">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="YEAR">%Y</xliff:g> г."</string>
-    <string name="abbrev_month_day">"<xliff:g id="DAY">%-d</xliff:g> <xliff:g id="MONTH">%b</xliff:g>"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"воскресенье"</string>
-    <string name="day_of_week_long_monday">"понедельник"</string>
-    <string name="day_of_week_long_tuesday">"вторник"</string>
-    <string name="day_of_week_long_wednesday">"среда"</string>
-    <string name="day_of_week_long_thursday">"четверг"</string>
-    <string name="day_of_week_long_friday">"пятница"</string>
-    <string name="day_of_week_long_saturday">"суббота"</string>
-    <string name="day_of_week_medium_sunday">"вс"</string>
-    <string name="day_of_week_medium_monday">"пн"</string>
-    <string name="day_of_week_medium_tuesday">"вт"</string>
-    <string name="day_of_week_medium_wednesday">"ср"</string>
-    <string name="day_of_week_medium_thursday">"чт"</string>
-    <string name="day_of_week_medium_friday">"пт"</string>
-    <string name="day_of_week_medium_saturday">"сб"</string>
-    <string name="day_of_week_short_sunday">"вс"</string>
-    <string name="day_of_week_short_monday">"пн"</string>
-    <string name="day_of_week_short_tuesday">"вт"</string>
-    <string name="day_of_week_short_wednesday">"ср"</string>
-    <string name="day_of_week_short_thursday">"чт"</string>
-    <string name="day_of_week_short_friday">"пт"</string>
-    <string name="day_of_week_short_saturday">"сб"</string>
-    <string name="day_of_week_shorter_sunday">"вс"</string>
-    <string name="day_of_week_shorter_monday">"пн"</string>
-    <string name="day_of_week_shorter_tuesday">"вт"</string>
-    <string name="day_of_week_shorter_wednesday">"с"</string>
-    <string name="day_of_week_shorter_thursday">"чт"</string>
-    <string name="day_of_week_shorter_friday">"пт"</string>
-    <string name="day_of_week_shorter_saturday">"сб"</string>
-    <string name="day_of_week_shortest_sunday">"в"</string>
-    <string name="day_of_week_shortest_monday">"п"</string>
-    <string name="day_of_week_shortest_tuesday">"в"</string>
-    <string name="day_of_week_shortest_wednesday">"с"</string>
-    <string name="day_of_week_shortest_thursday">"ч"</string>
-    <string name="day_of_week_shortest_friday">"п"</string>
-    <string name="day_of_week_shortest_saturday">"с"</string>
-    <string name="month_long_january">"январь"</string>
-    <string name="month_long_february">"февраль"</string>
-    <string name="month_long_march">"март"</string>
-    <string name="month_long_april">"апрель"</string>
-    <string name="month_long_may">"май"</string>
-    <string name="month_long_june">"июнь"</string>
-    <string name="month_long_july">"июль"</string>
-    <string name="month_long_august">"август"</string>
-    <string name="month_long_september">"сентябрь"</string>
-    <string name="month_long_october">"октябрь"</string>
-    <string name="month_long_november">"ноябрь"</string>
-    <string name="month_long_december">"декабрь"</string>
-    <string name="month_medium_january">"янв"</string>
-    <string name="month_medium_february">"фев"</string>
-    <string name="month_medium_march">"мар"</string>
-    <string name="month_medium_april">"апр"</string>
-    <string name="month_medium_may">"май"</string>
-    <string name="month_medium_june">"июн"</string>
-    <string name="month_medium_july">"июл"</string>
-    <string name="month_medium_august">"авг"</string>
-    <string name="month_medium_september">"сен"</string>
-    <string name="month_medium_october">"окт"</string>
-    <string name="month_medium_november">"ноя"</string>
-    <string name="month_medium_december">"дек"</string>
-    <string name="month_shortest_january">"Я"</string>
-    <string name="month_shortest_february">"ф"</string>
-    <string name="month_shortest_march">"м"</string>
-    <string name="month_shortest_april">"а"</string>
-    <string name="month_shortest_may">"м"</string>
-    <string name="month_shortest_june">"и"</string>
-    <string name="month_shortest_july">"и"</string>
-    <string name="month_shortest_august">"а"</string>
-    <string name="month_shortest_september">"с"</string>
-    <string name="month_shortest_october">"о"</string>
-    <string name="month_shortest_november">"н"</string>
-    <string name="month_shortest_december">"д"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"Выбрать все"</string>
diff --git a/core/res/res/values-sk-rSK/donottranslate-cldr.xml b/core/res/res/values-sk-rSK/donottranslate-cldr.xml
new file mode 100644
index 0000000..05bc5d3
--- /dev/null
+++ b/core/res/res/values-sk-rSK/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">január</string>
+    <string name="month_long_standalone_february">február</string>
+    <string name="month_long_standalone_march">marec</string>
+    <string name="month_long_standalone_april">apríl</string>
+    <string name="month_long_standalone_may">máj</string>
+    <string name="month_long_standalone_june">jún</string>
+    <string name="month_long_standalone_july">júl</string>
+    <string name="month_long_standalone_august">august</string>
+    <string name="month_long_standalone_september">september</string>
+    <string name="month_long_standalone_october">október</string>
+    <string name="month_long_standalone_november">november</string>
+    <string name="month_long_standalone_december">december</string>
+
+    <string name="month_long_january">januára</string>
+    <string name="month_long_february">februára</string>
+    <string name="month_long_march">marca</string>
+    <string name="month_long_april">apríla</string>
+    <string name="month_long_may">mája</string>
+    <string name="month_long_june">júna</string>
+    <string name="month_long_july">júla</string>
+    <string name="month_long_august">augusta</string>
+    <string name="month_long_september">septembra</string>
+    <string name="month_long_october">októbra</string>
+    <string name="month_long_november">novembra</string>
+    <string name="month_long_december">decembra</string>
+
+    <string name="month_medium_january">jan</string>
+    <string name="month_medium_february">feb</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">apr</string>
+    <string name="month_medium_may">máj</string>
+    <string name="month_medium_june">jún</string>
+    <string name="month_medium_july">júl</string>
+    <string name="month_medium_august">aug</string>
+    <string name="month_medium_september">sep</string>
+    <string name="month_medium_october">okt</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dec</string>
+
+    <string name="month_shortest_january">j</string>
+    <string name="month_shortest_february">f</string>
+    <string name="month_shortest_march">m</string>
+    <string name="month_shortest_april">a</string>
+    <string name="month_shortest_may">m</string>
+    <string name="month_shortest_june">j</string>
+    <string name="month_shortest_july">j</string>
+    <string name="month_shortest_august">a</string>
+    <string name="month_shortest_september">s</string>
+    <string name="month_shortest_october">o</string>
+    <string name="month_shortest_november">n</string>
+    <string name="month_shortest_december">d</string>
+
+    <string name="day_of_week_long_sunday">nedeľa</string>
+    <string name="day_of_week_long_monday">pondelok</string>
+    <string name="day_of_week_long_tuesday">utorok</string>
+    <string name="day_of_week_long_wednesday">streda</string>
+    <string name="day_of_week_long_thursday">štvrtok</string>
+    <string name="day_of_week_long_friday">piatok</string>
+    <string name="day_of_week_long_saturday">sobota</string>
+
+    <string name="day_of_week_medium_sunday">ne</string>
+    <string name="day_of_week_medium_monday">po</string>
+    <string name="day_of_week_medium_tuesday">ut</string>
+    <string name="day_of_week_medium_wednesday">st</string>
+    <string name="day_of_week_medium_thursday">št</string>
+    <string name="day_of_week_medium_friday">pi</string>
+    <string name="day_of_week_medium_saturday">so</string>
+
+    <string name="day_of_week_short_sunday">ne</string>
+    <string name="day_of_week_short_monday">po</string>
+    <string name="day_of_week_short_tuesday">ut</string>
+    <string name="day_of_week_short_wednesday">st</string>
+    <string name="day_of_week_short_thursday">št</string>
+    <string name="day_of_week_short_friday">pi</string>
+    <string name="day_of_week_short_saturday">so</string>
+
+    <string name="day_of_week_shortest_sunday">N</string>
+    <string name="day_of_week_shortest_monday">P</string>
+    <string name="day_of_week_shortest_tuesday">U</string>
+    <string name="day_of_week_shortest_wednesday">S</string>
+    <string name="day_of_week_shortest_thursday">Š</string>
+    <string name="day_of_week_shortest_friday">P</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">dopoludnia</string>
+    <string name="pm">popoludní</string>
+    <string name="yesterday">Včera</string>
+    <string name="today">Dnes</string>
+    <string name="tomorrow">Zajtra</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%-e.%-m.%Y</string>
+    <string name="numeric_date_format">d.M.yyyy</string>
+    <string name="month_day_year">%-e. %B %Y</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S %-e.%-m.%Y</string>
+    <string name="abbrev_month_day_year">%-e.%-m.%Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e. %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-sl-rSI/donottranslate-cldr.xml b/core/res/res/values-sl-rSI/donottranslate-cldr.xml
new file mode 100644
index 0000000..e24b070
--- /dev/null
+++ b/core/res/res/values-sl-rSI/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">januar</string>
+    <string name="month_long_standalone_february">februar</string>
+    <string name="month_long_standalone_march">marec</string>
+    <string name="month_long_standalone_april">april</string>
+    <string name="month_long_standalone_may">maj</string>
+    <string name="month_long_standalone_june">junij</string>
+    <string name="month_long_standalone_july">julij</string>
+    <string name="month_long_standalone_august">avgust</string>
+    <string name="month_long_standalone_september">september</string>
+    <string name="month_long_standalone_october">oktober</string>
+    <string name="month_long_standalone_november">november</string>
+    <string name="month_long_standalone_december">december</string>
+
+    <string name="month_long_january">januar</string>
+    <string name="month_long_february">februar</string>
+    <string name="month_long_march">marec</string>
+    <string name="month_long_april">april</string>
+    <string name="month_long_may">maj</string>
+    <string name="month_long_june">junij</string>
+    <string name="month_long_july">julij</string>
+    <string name="month_long_august">avgust</string>
+    <string name="month_long_september">september</string>
+    <string name="month_long_october">oktober</string>
+    <string name="month_long_november">november</string>
+    <string name="month_long_december">december</string>
+
+    <string name="month_medium_january">jan</string>
+    <string name="month_medium_february">feb</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">apr</string>
+    <string name="month_medium_may">maj</string>
+    <string name="month_medium_june">jun</string>
+    <string name="month_medium_july">jul</string>
+    <string name="month_medium_august">avg</string>
+    <string name="month_medium_september">sep</string>
+    <string name="month_medium_october">okt</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dec</string>
+
+    <string name="month_shortest_january">j</string>
+    <string name="month_shortest_february">f</string>
+    <string name="month_shortest_march">m</string>
+    <string name="month_shortest_april">a</string>
+    <string name="month_shortest_may">m</string>
+    <string name="month_shortest_june">j</string>
+    <string name="month_shortest_july">j</string>
+    <string name="month_shortest_august">a</string>
+    <string name="month_shortest_september">s</string>
+    <string name="month_shortest_october">o</string>
+    <string name="month_shortest_november">n</string>
+    <string name="month_shortest_december">d</string>
+
+    <string name="day_of_week_long_sunday">nedelja</string>
+    <string name="day_of_week_long_monday">ponedeljek</string>
+    <string name="day_of_week_long_tuesday">torek</string>
+    <string name="day_of_week_long_wednesday">sreda</string>
+    <string name="day_of_week_long_thursday">četrtek</string>
+    <string name="day_of_week_long_friday">petek</string>
+    <string name="day_of_week_long_saturday">sobota</string>
+
+    <string name="day_of_week_medium_sunday">ned</string>
+    <string name="day_of_week_medium_monday">pon</string>
+    <string name="day_of_week_medium_tuesday">tor</string>
+    <string name="day_of_week_medium_wednesday">sre</string>
+    <string name="day_of_week_medium_thursday">čet</string>
+    <string name="day_of_week_medium_friday">pet</string>
+    <string name="day_of_week_medium_saturday">sob</string>
+
+    <string name="day_of_week_short_sunday">ned</string>
+    <string name="day_of_week_short_monday">pon</string>
+    <string name="day_of_week_short_tuesday">tor</string>
+    <string name="day_of_week_short_wednesday">sre</string>
+    <string name="day_of_week_short_thursday">čet</string>
+    <string name="day_of_week_short_friday">pet</string>
+    <string name="day_of_week_short_saturday">sob</string>
+
+    <string name="day_of_week_shortest_sunday">n</string>
+    <string name="day_of_week_shortest_monday">p</string>
+    <string name="day_of_week_shortest_tuesday">t</string>
+    <string name="day_of_week_shortest_wednesday">s</string>
+    <string name="day_of_week_shortest_thursday">č</string>
+    <string name="day_of_week_shortest_friday">p</string>
+    <string name="day_of_week_shortest_saturday">s</string>
+
+    <string name="am">dop.</string>
+    <string name="pm">pop.</string>
+    <string name="yesterday">Včeraj</string>
+    <string name="today">Danes</string>
+    <string name="tomorrow">Jutri</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%-e. %m. %Y</string>
+    <string name="numeric_date_format">d. MM. yyyy</string>
+    <string name="month_day_year">%d. %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e. %b. %Y</string>
+    <string name="abbrev_month_day_year">%-e. %b. %Y</string>
+    <string name="month_day">%-e. %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-sr-rRS/donottranslate-cldr.xml b/core/res/res/values-sr-rRS/donottranslate-cldr.xml
new file mode 100644
index 0000000..7f98ae2
--- /dev/null
+++ b/core/res/res/values-sr-rRS/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">јануар</string>
+    <string name="month_long_standalone_february">фебруар</string>
+    <string name="month_long_standalone_march">март</string>
+    <string name="month_long_standalone_april">април</string>
+    <string name="month_long_standalone_may">мај</string>
+    <string name="month_long_standalone_june">јун</string>
+    <string name="month_long_standalone_july">јул</string>
+    <string name="month_long_standalone_august">август</string>
+    <string name="month_long_standalone_september">септембар</string>
+    <string name="month_long_standalone_october">октобар</string>
+    <string name="month_long_standalone_november">новембар</string>
+    <string name="month_long_standalone_december">децембар</string>
+
+    <string name="month_long_january">јануар</string>
+    <string name="month_long_february">фебруар</string>
+    <string name="month_long_march">март</string>
+    <string name="month_long_april">април</string>
+    <string name="month_long_may">мај</string>
+    <string name="month_long_june">јун</string>
+    <string name="month_long_july">јул</string>
+    <string name="month_long_august">август</string>
+    <string name="month_long_september">септембар</string>
+    <string name="month_long_october">октобар</string>
+    <string name="month_long_november">новембар</string>
+    <string name="month_long_december">децембар</string>
+
+    <string name="month_medium_january">јан</string>
+    <string name="month_medium_february">феб</string>
+    <string name="month_medium_march">мар</string>
+    <string name="month_medium_april">апр</string>
+    <string name="month_medium_may">мај</string>
+    <string name="month_medium_june">јун</string>
+    <string name="month_medium_july">јул</string>
+    <string name="month_medium_august">авг</string>
+    <string name="month_medium_september">сеп</string>
+    <string name="month_medium_october">окт</string>
+    <string name="month_medium_november">нов</string>
+    <string name="month_medium_december">дец</string>
+
+    <string name="month_shortest_january">ј</string>
+    <string name="month_shortest_february">ф</string>
+    <string name="month_shortest_march">м</string>
+    <string name="month_shortest_april">а</string>
+    <string name="month_shortest_may">м</string>
+    <string name="month_shortest_june">ј</string>
+    <string name="month_shortest_july">ј</string>
+    <string name="month_shortest_august">а</string>
+    <string name="month_shortest_september">с</string>
+    <string name="month_shortest_october">о</string>
+    <string name="month_shortest_november">н</string>
+    <string name="month_shortest_december">д</string>
+
+    <string name="day_of_week_long_sunday">недеља</string>
+    <string name="day_of_week_long_monday">понедељак</string>
+    <string name="day_of_week_long_tuesday">уторак</string>
+    <string name="day_of_week_long_wednesday">среда</string>
+    <string name="day_of_week_long_thursday">четвртак</string>
+    <string name="day_of_week_long_friday">петак</string>
+    <string name="day_of_week_long_saturday">субота</string>
+
+    <string name="day_of_week_medium_sunday">нед</string>
+    <string name="day_of_week_medium_monday">пон</string>
+    <string name="day_of_week_medium_tuesday">уто</string>
+    <string name="day_of_week_medium_wednesday">сре</string>
+    <string name="day_of_week_medium_thursday">чет</string>
+    <string name="day_of_week_medium_friday">пет</string>
+    <string name="day_of_week_medium_saturday">суб</string>
+
+    <string name="day_of_week_short_sunday">нед</string>
+    <string name="day_of_week_short_monday">пон</string>
+    <string name="day_of_week_short_tuesday">уто</string>
+    <string name="day_of_week_short_wednesday">сре</string>
+    <string name="day_of_week_short_thursday">чет</string>
+    <string name="day_of_week_short_friday">пет</string>
+    <string name="day_of_week_short_saturday">суб</string>
+
+    <string name="day_of_week_shortest_sunday">н</string>
+    <string name="day_of_week_shortest_monday">п</string>
+    <string name="day_of_week_shortest_tuesday">у</string>
+    <string name="day_of_week_shortest_wednesday">с</string>
+    <string name="day_of_week_shortest_thursday">ч</string>
+    <string name="day_of_week_shortest_friday">п</string>
+    <string name="day_of_week_shortest_saturday">с</string>
+
+    <string name="am">пре подне</string>
+    <string name="pm">поподне</string>
+    <string name="yesterday">јуче</string>
+    <string name="today">данас</string>
+    <string name="tomorrow">сутра</string>
+
+    <string name="hour_minute_ampm">%H.%M</string>
+    <string name="hour_minute_cap_ampm">%H.%M</string>
+    <string name="numeric_date">%-e.%-m.%Y.</string>
+    <string name="numeric_date_format">d.M.yyyy.</string>
+    <string name="month_day_year">%d. %B %Y.</string>
+    <string name="time_of_day">%H.%M.%S</string>
+    <string name="date_and_time">%H.%M.%S %d.%m.%Y.</string>
+    <string name="abbrev_month_day_year">%d.%m.%Y.</string>
+    <string name="month_day">%B %-e.</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%b %-e.</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b. %Y</string>
+</resources>
diff --git a/core/res/res/values-sv-rSE/donottranslate-cldr.xml b/core/res/res/values-sv-rSE/donottranslate-cldr.xml
new file mode 100644
index 0000000..4570245
--- /dev/null
+++ b/core/res/res/values-sv-rSE/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">januari</string>
+    <string name="month_long_standalone_february">februari</string>
+    <string name="month_long_standalone_march">mars</string>
+    <string name="month_long_standalone_april">april</string>
+    <string name="month_long_standalone_may">maj</string>
+    <string name="month_long_standalone_june">juni</string>
+    <string name="month_long_standalone_july">juli</string>
+    <string name="month_long_standalone_august">augusti</string>
+    <string name="month_long_standalone_september">september</string>
+    <string name="month_long_standalone_october">oktober</string>
+    <string name="month_long_standalone_november">november</string>
+    <string name="month_long_standalone_december">december</string>
+
+    <string name="month_long_january">januari</string>
+    <string name="month_long_february">februari</string>
+    <string name="month_long_march">mars</string>
+    <string name="month_long_april">april</string>
+    <string name="month_long_may">maj</string>
+    <string name="month_long_june">juni</string>
+    <string name="month_long_july">juli</string>
+    <string name="month_long_august">augusti</string>
+    <string name="month_long_september">september</string>
+    <string name="month_long_october">oktober</string>
+    <string name="month_long_november">november</string>
+    <string name="month_long_december">december</string>
+
+    <string name="month_medium_january">jan</string>
+    <string name="month_medium_february">feb</string>
+    <string name="month_medium_march">mar</string>
+    <string name="month_medium_april">apr</string>
+    <string name="month_medium_may">maj</string>
+    <string name="month_medium_june">jun</string>
+    <string name="month_medium_july">jul</string>
+    <string name="month_medium_august">aug</string>
+    <string name="month_medium_september">sep</string>
+    <string name="month_medium_october">okt</string>
+    <string name="month_medium_november">nov</string>
+    <string name="month_medium_december">dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">söndag</string>
+    <string name="day_of_week_long_monday">måndag</string>
+    <string name="day_of_week_long_tuesday">tisdag</string>
+    <string name="day_of_week_long_wednesday">onsdag</string>
+    <string name="day_of_week_long_thursday">torsdag</string>
+    <string name="day_of_week_long_friday">fredag</string>
+    <string name="day_of_week_long_saturday">lördag</string>
+
+    <string name="day_of_week_medium_sunday">sön</string>
+    <string name="day_of_week_medium_monday">mån</string>
+    <string name="day_of_week_medium_tuesday">tis</string>
+    <string name="day_of_week_medium_wednesday">ons</string>
+    <string name="day_of_week_medium_thursday">tors</string>
+    <string name="day_of_week_medium_friday">fre</string>
+    <string name="day_of_week_medium_saturday">lör</string>
+
+    <string name="day_of_week_short_sunday">sön</string>
+    <string name="day_of_week_short_monday">mån</string>
+    <string name="day_of_week_short_tuesday">tis</string>
+    <string name="day_of_week_short_wednesday">ons</string>
+    <string name="day_of_week_short_thursday">tors</string>
+    <string name="day_of_week_short_friday">fre</string>
+    <string name="day_of_week_short_saturday">lör</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">O</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">L</string>
+
+    <string name="am">f.m.</string>
+    <string name="pm">e.m.</string>
+    <string name="yesterday">igår</string>
+    <string name="today">idag</string>
+    <string name="tomorrow">imorgon</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%Y-%m-%d</string>
+    <string name="numeric_date_format">yyyy-MM-dd</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y %B</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y %b</string>
+</resources>
diff --git a/core/res/res/values-th-rTH/donottranslate-cldr.xml b/core/res/res/values-th-rTH/donottranslate-cldr.xml
new file mode 100644
index 0000000..cc680f6
--- /dev/null
+++ b/core/res/res/values-th-rTH/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">มกราคม</string>
+    <string name="month_long_standalone_february">กุมภาพันธ์</string>
+    <string name="month_long_standalone_march">มีนาคม</string>
+    <string name="month_long_standalone_april">เมษายน</string>
+    <string name="month_long_standalone_may">พฤษภาคม</string>
+    <string name="month_long_standalone_june">มิถุนายน</string>
+    <string name="month_long_standalone_july">กรกฎาคม</string>
+    <string name="month_long_standalone_august">สิงหาคม</string>
+    <string name="month_long_standalone_september">กันยายน</string>
+    <string name="month_long_standalone_october">ตุลาคม</string>
+    <string name="month_long_standalone_november">พฤศจิกายน</string>
+    <string name="month_long_standalone_december">ธันวาคม</string>
+
+    <string name="month_long_january">มกราคม</string>
+    <string name="month_long_february">กุมภาพันธ์</string>
+    <string name="month_long_march">มีนาคม</string>
+    <string name="month_long_april">เมษายน</string>
+    <string name="month_long_may">พฤษภาคม</string>
+    <string name="month_long_june">มิถุนายน</string>
+    <string name="month_long_july">กรกฎาคม</string>
+    <string name="month_long_august">สิงหาคม</string>
+    <string name="month_long_september">กันยายน</string>
+    <string name="month_long_october">ตุลาคม</string>
+    <string name="month_long_november">พฤศจิกายน</string>
+    <string name="month_long_december">ธันวาคม</string>
+
+    <string name="month_medium_january">ม.ค.</string>
+    <string name="month_medium_february">ก.พ.</string>
+    <string name="month_medium_march">มี.ค.</string>
+    <string name="month_medium_april">เม.ย.</string>
+    <string name="month_medium_may">พ.ค.</string>
+    <string name="month_medium_june">มิ.ย.</string>
+    <string name="month_medium_july">ก.ค.</string>
+    <string name="month_medium_august">ส.ค.</string>
+    <string name="month_medium_september">ก.ย.</string>
+    <string name="month_medium_october">ต.ค.</string>
+    <string name="month_medium_november">พ.ย.</string>
+    <string name="month_medium_december">ธ.ค.</string>
+
+    <string name="month_shortest_january">ม.ค.</string>
+    <string name="month_shortest_february">ก.พ.</string>
+    <string name="month_shortest_march">มี.ค.</string>
+    <string name="month_shortest_april">เม.ย.</string>
+    <string name="month_shortest_may">พ.ค.</string>
+    <string name="month_shortest_june">มิ.ย.</string>
+    <string name="month_shortest_july">ก.ค.</string>
+    <string name="month_shortest_august">ส.ค.</string>
+    <string name="month_shortest_september">ก.ย.</string>
+    <string name="month_shortest_october">ต.ค.</string>
+    <string name="month_shortest_november">พ.ย.</string>
+    <string name="month_shortest_december">ธ.ค.</string>
+
+    <string name="day_of_week_long_sunday">วันอาทิตย์</string>
+    <string name="day_of_week_long_monday">วันจันทร์</string>
+    <string name="day_of_week_long_tuesday">วันอังคาร</string>
+    <string name="day_of_week_long_wednesday">วันพุธ</string>
+    <string name="day_of_week_long_thursday">วันพฤหัสบดี</string>
+    <string name="day_of_week_long_friday">วันศุกร์</string>
+    <string name="day_of_week_long_saturday">วันเสาร์</string>
+
+    <string name="day_of_week_medium_sunday">อา.</string>
+    <string name="day_of_week_medium_monday">จ.</string>
+    <string name="day_of_week_medium_tuesday">อ.</string>
+    <string name="day_of_week_medium_wednesday">พ.</string>
+    <string name="day_of_week_medium_thursday">พฤ.</string>
+    <string name="day_of_week_medium_friday">ศ.</string>
+    <string name="day_of_week_medium_saturday">ส.</string>
+
+    <string name="day_of_week_short_sunday">อา.</string>
+    <string name="day_of_week_short_monday">จ.</string>
+    <string name="day_of_week_short_tuesday">อ.</string>
+    <string name="day_of_week_short_wednesday">พ.</string>
+    <string name="day_of_week_short_thursday">พฤ.</string>
+    <string name="day_of_week_short_friday">ศ.</string>
+    <string name="day_of_week_short_saturday">ส.</string>
+
+    <string name="day_of_week_shortest_sunday">อ</string>
+    <string name="day_of_week_shortest_monday">จ</string>
+    <string name="day_of_week_shortest_tuesday">อ</string>
+    <string name="day_of_week_shortest_wednesday">พ</string>
+    <string name="day_of_week_shortest_thursday">พ</string>
+    <string name="day_of_week_shortest_friday">ศ</string>
+    <string name="day_of_week_shortest_saturday">ส</string>
+
+    <string name="am">ก่อนเที่ยง</string>
+    <string name="pm">หลังเที่ยง</string>
+    <string name="yesterday">เมื่อวาน</string>
+    <string name="today">วันนี้</string>
+    <string name="tomorrow">พรุ่งนี้</string>
+
+    <string name="hour_minute_ampm">%-k:%M</string>
+    <string name="hour_minute_cap_ampm">%-k:%M</string>
+    <string name="numeric_date">%-e/%-m/%Y</string>
+    <string name="numeric_date_format">d/M/yyyy</string>
+    <string name="month_day_year">%-e %B %Y</string>
+    <string name="time_of_day">%-k:%M:%S</string>
+    <string name="date_and_time">%-k:%M:%S, %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-tr-rTR/donottranslate-cldr.xml b/core/res/res/values-tr-rTR/donottranslate-cldr.xml
new file mode 100644
index 0000000..acc0121
--- /dev/null
+++ b/core/res/res/values-tr-rTR/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Ocak</string>
+    <string name="month_long_standalone_february">Şubat</string>
+    <string name="month_long_standalone_march">Mart</string>
+    <string name="month_long_standalone_april">Nisan</string>
+    <string name="month_long_standalone_may">Mayıs</string>
+    <string name="month_long_standalone_june">Haziran</string>
+    <string name="month_long_standalone_july">Temmuz</string>
+    <string name="month_long_standalone_august">Ağustos</string>
+    <string name="month_long_standalone_september">Eylül</string>
+    <string name="month_long_standalone_october">Ekim</string>
+    <string name="month_long_standalone_november">Kasım</string>
+    <string name="month_long_standalone_december">Aralık</string>
+
+    <string name="month_long_january">Ocak</string>
+    <string name="month_long_february">Şubat</string>
+    <string name="month_long_march">Mart</string>
+    <string name="month_long_april">Nisan</string>
+    <string name="month_long_may">Mayıs</string>
+    <string name="month_long_june">Haziran</string>
+    <string name="month_long_july">Temmuz</string>
+    <string name="month_long_august">Ağustos</string>
+    <string name="month_long_september">Eylül</string>
+    <string name="month_long_october">Ekim</string>
+    <string name="month_long_november">Kasım</string>
+    <string name="month_long_december">Aralık</string>
+
+    <string name="month_medium_january">Oca</string>
+    <string name="month_medium_february">Şub</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Nis</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Haz</string>
+    <string name="month_medium_july">Tem</string>
+    <string name="month_medium_august">Ağu</string>
+    <string name="month_medium_september">Eyl</string>
+    <string name="month_medium_october">Eki</string>
+    <string name="month_medium_november">Kas</string>
+    <string name="month_medium_december">Ara</string>
+
+    <string name="month_shortest_january">O</string>
+    <string name="month_shortest_february">Ş</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">N</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">H</string>
+    <string name="month_shortest_july">T</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">E</string>
+    <string name="month_shortest_october">E</string>
+    <string name="month_shortest_november">K</string>
+    <string name="month_shortest_december">A</string>
+
+    <string name="day_of_week_long_sunday">Pazar</string>
+    <string name="day_of_week_long_monday">Pazartesi</string>
+    <string name="day_of_week_long_tuesday">Salı</string>
+    <string name="day_of_week_long_wednesday">Çarşamba</string>
+    <string name="day_of_week_long_thursday">Perşembe</string>
+    <string name="day_of_week_long_friday">Cuma</string>
+    <string name="day_of_week_long_saturday">Cumartesi</string>
+
+    <string name="day_of_week_medium_sunday">Paz</string>
+    <string name="day_of_week_medium_monday">Pzt</string>
+    <string name="day_of_week_medium_tuesday">Sal</string>
+    <string name="day_of_week_medium_wednesday">Çar</string>
+    <string name="day_of_week_medium_thursday">Per</string>
+    <string name="day_of_week_medium_friday">Cum</string>
+    <string name="day_of_week_medium_saturday">Cmt</string>
+
+    <string name="day_of_week_short_sunday">Paz</string>
+    <string name="day_of_week_short_monday">Pzt</string>
+    <string name="day_of_week_short_tuesday">Sal</string>
+    <string name="day_of_week_short_wednesday">Çar</string>
+    <string name="day_of_week_short_thursday">Per</string>
+    <string name="day_of_week_short_friday">Cum</string>
+    <string name="day_of_week_short_saturday">Cmt</string>
+
+    <string name="day_of_week_shortest_sunday">P</string>
+    <string name="day_of_week_shortest_monday">P</string>
+    <string name="day_of_week_shortest_tuesday">S</string>
+    <string name="day_of_week_shortest_wednesday">Ç</string>
+    <string name="day_of_week_shortest_thursday">P</string>
+    <string name="day_of_week_shortest_friday">C</string>
+    <string name="day_of_week_shortest_saturday">C</string>
+
+    <string name="am">AM</string>
+    <string name="pm">PM</string>
+    <string name="yesterday">Dün</string>
+    <string name="today">Bugün</string>
+    <string name="tomorrow">Yarın</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d %m %Y</string>
+    <string name="numeric_date_format">dd MM yyyy</string>
+    <string name="month_day_year">%d %B %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %d %b %Y</string>
+    <string name="abbrev_month_day_year">%d %b %Y</string>
+    <string name="month_day">%d %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%d %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-uk-rUA/donottranslate-cldr.xml b/core/res/res/values-uk-rUA/donottranslate-cldr.xml
new file mode 100644
index 0000000..888df36
--- /dev/null
+++ b/core/res/res/values-uk-rUA/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">Січень</string>
+    <string name="month_long_standalone_february">Лютий</string>
+    <string name="month_long_standalone_march">Березень</string>
+    <string name="month_long_standalone_april">Квітень</string>
+    <string name="month_long_standalone_may">Травень</string>
+    <string name="month_long_standalone_june">Червень</string>
+    <string name="month_long_standalone_july">Липень</string>
+    <string name="month_long_standalone_august">Серпень</string>
+    <string name="month_long_standalone_september">Вересень</string>
+    <string name="month_long_standalone_october">Жовтень</string>
+    <string name="month_long_standalone_november">Листопад</string>
+    <string name="month_long_standalone_december">Грудень</string>
+
+    <string name="month_long_january">січня</string>
+    <string name="month_long_february">лютого</string>
+    <string name="month_long_march">березня</string>
+    <string name="month_long_april">квітня</string>
+    <string name="month_long_may">травня</string>
+    <string name="month_long_june">червня</string>
+    <string name="month_long_july">липня</string>
+    <string name="month_long_august">серпня</string>
+    <string name="month_long_september">вересня</string>
+    <string name="month_long_october">жовтня</string>
+    <string name="month_long_november">листопада</string>
+    <string name="month_long_december">грудня</string>
+
+    <string name="month_medium_january">січ.</string>
+    <string name="month_medium_february">лют.</string>
+    <string name="month_medium_march">бер.</string>
+    <string name="month_medium_april">квіт.</string>
+    <string name="month_medium_may">трав.</string>
+    <string name="month_medium_june">черв.</string>
+    <string name="month_medium_july">лип.</string>
+    <string name="month_medium_august">серп.</string>
+    <string name="month_medium_september">вер.</string>
+    <string name="month_medium_october">жовт.</string>
+    <string name="month_medium_november">лист.</string>
+    <string name="month_medium_december">груд.</string>
+
+    <string name="month_shortest_january">С</string>
+    <string name="month_shortest_february">Л</string>
+    <string name="month_shortest_march">Б</string>
+    <string name="month_shortest_april">К</string>
+    <string name="month_shortest_may">Т</string>
+    <string name="month_shortest_june">Ч</string>
+    <string name="month_shortest_july">Л</string>
+    <string name="month_shortest_august">С</string>
+    <string name="month_shortest_september">В</string>
+    <string name="month_shortest_october">Ж</string>
+    <string name="month_shortest_november">Л</string>
+    <string name="month_shortest_december">Г</string>
+
+    <string name="day_of_week_long_sunday">Неділя</string>
+    <string name="day_of_week_long_monday">Понеділок</string>
+    <string name="day_of_week_long_tuesday">Вівторок</string>
+    <string name="day_of_week_long_wednesday">Середа</string>
+    <string name="day_of_week_long_thursday">Четвер</string>
+    <string name="day_of_week_long_friday">Пʼятниця</string>
+    <string name="day_of_week_long_saturday">Субота</string>
+
+    <string name="day_of_week_medium_sunday">Нд</string>
+    <string name="day_of_week_medium_monday">Пн</string>
+    <string name="day_of_week_medium_tuesday">Вт</string>
+    <string name="day_of_week_medium_wednesday">Ср</string>
+    <string name="day_of_week_medium_thursday">Чт</string>
+    <string name="day_of_week_medium_friday">Пт</string>
+    <string name="day_of_week_medium_saturday">Сб</string>
+
+    <string name="day_of_week_short_sunday">Нд</string>
+    <string name="day_of_week_short_monday">Пн</string>
+    <string name="day_of_week_short_tuesday">Вт</string>
+    <string name="day_of_week_short_wednesday">Ср</string>
+    <string name="day_of_week_short_thursday">Чт</string>
+    <string name="day_of_week_short_friday">Пт</string>
+    <string name="day_of_week_short_saturday">Сб</string>
+
+    <string name="day_of_week_shortest_sunday">Н</string>
+    <string name="day_of_week_shortest_monday">П</string>
+    <string name="day_of_week_shortest_tuesday">В</string>
+    <string name="day_of_week_shortest_wednesday">С</string>
+    <string name="day_of_week_shortest_thursday">Ч</string>
+    <string name="day_of_week_shortest_friday">П</string>
+    <string name="day_of_week_shortest_saturday">С</string>
+
+    <string name="am">дп</string>
+    <string name="pm">пп</string>
+    <string name="yesterday">Вчора</string>
+    <string name="today">Сьогодні</string>
+    <string name="tomorrow">Завтра</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d.%m.%Y</string>
+    <string name="numeric_date_format">dd.MM.yyyy</string>
+    <string name="month_day_year">%-e %B %Y р.</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%H:%M:%S %-e %b %Y</string>
+    <string name="abbrev_month_day_year">%-e %b %Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%-B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%-b %Y</string>
+</resources>
diff --git a/core/res/res/values-vi-rVN/donottranslate-cldr.xml b/core/res/res/values-vi-rVN/donottranslate-cldr.xml
new file mode 100644
index 0000000..2a28b32
--- /dev/null
+++ b/core/res/res/values-vi-rVN/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">tháng một</string>
+    <string name="month_long_standalone_february">tháng hai</string>
+    <string name="month_long_standalone_march">tháng ba</string>
+    <string name="month_long_standalone_april">tháng tư</string>
+    <string name="month_long_standalone_may">tháng năm</string>
+    <string name="month_long_standalone_june">tháng sáu</string>
+    <string name="month_long_standalone_july">tháng bảy</string>
+    <string name="month_long_standalone_august">tháng tám</string>
+    <string name="month_long_standalone_september">tháng chín</string>
+    <string name="month_long_standalone_october">tháng mười</string>
+    <string name="month_long_standalone_november">tháng mười một</string>
+    <string name="month_long_standalone_december">tháng mười hai</string>
+
+    <string name="month_long_january">tháng một</string>
+    <string name="month_long_february">tháng hai</string>
+    <string name="month_long_march">tháng ba</string>
+    <string name="month_long_april">tháng tư</string>
+    <string name="month_long_may">tháng năm</string>
+    <string name="month_long_june">tháng sáu</string>
+    <string name="month_long_july">tháng bảy</string>
+    <string name="month_long_august">tháng tám</string>
+    <string name="month_long_september">tháng chín</string>
+    <string name="month_long_october">tháng mười</string>
+    <string name="month_long_november">tháng mười một</string>
+    <string name="month_long_december">tháng mười hai</string>
+
+    <string name="month_medium_january">thg 1</string>
+    <string name="month_medium_february">thg 2</string>
+    <string name="month_medium_march">thg 3</string>
+    <string name="month_medium_april">thg 4</string>
+    <string name="month_medium_may">thg 5</string>
+    <string name="month_medium_june">thg 6</string>
+    <string name="month_medium_july">thg 7</string>
+    <string name="month_medium_august">thg 8</string>
+    <string name="month_medium_september">thg 9</string>
+    <string name="month_medium_october">thg 10</string>
+    <string name="month_medium_november">thg 11</string>
+    <string name="month_medium_december">thg 12</string>
+
+    <string name="month_shortest_january">1</string>
+    <string name="month_shortest_february">2</string>
+    <string name="month_shortest_march">3</string>
+    <string name="month_shortest_april">4</string>
+    <string name="month_shortest_may">5</string>
+    <string name="month_shortest_june">6</string>
+    <string name="month_shortest_july">7</string>
+    <string name="month_shortest_august">8</string>
+    <string name="month_shortest_september">9</string>
+    <string name="month_shortest_october">10</string>
+    <string name="month_shortest_november">11</string>
+    <string name="month_shortest_december">12</string>
+
+    <string name="day_of_week_long_sunday">Chủ nhật</string>
+    <string name="day_of_week_long_monday">Thứ hai</string>
+    <string name="day_of_week_long_tuesday">Thứ ba</string>
+    <string name="day_of_week_long_wednesday">Thứ tư</string>
+    <string name="day_of_week_long_thursday">Thứ năm</string>
+    <string name="day_of_week_long_friday">Thứ sáu</string>
+    <string name="day_of_week_long_saturday">Thứ bảy</string>
+
+    <string name="day_of_week_medium_sunday">CN</string>
+    <string name="day_of_week_medium_monday">Th 2</string>
+    <string name="day_of_week_medium_tuesday">Th 3</string>
+    <string name="day_of_week_medium_wednesday">Th 4</string>
+    <string name="day_of_week_medium_thursday">Th 5</string>
+    <string name="day_of_week_medium_friday">Th 6</string>
+    <string name="day_of_week_medium_saturday">Th 7</string>
+
+    <string name="day_of_week_short_sunday">CN</string>
+    <string name="day_of_week_short_monday">Th 2</string>
+    <string name="day_of_week_short_tuesday">Th 3</string>
+    <string name="day_of_week_short_wednesday">Th 4</string>
+    <string name="day_of_week_short_thursday">Th 5</string>
+    <string name="day_of_week_short_friday">Th 6</string>
+    <string name="day_of_week_short_saturday">Th 7</string>
+
+    <string name="day_of_week_shortest_sunday">1</string>
+    <string name="day_of_week_shortest_monday">2</string>
+    <string name="day_of_week_shortest_tuesday">3</string>
+    <string name="day_of_week_shortest_wednesday">4</string>
+    <string name="day_of_week_shortest_thursday">5</string>
+    <string name="day_of_week_shortest_friday">6</string>
+    <string name="day_of_week_shortest_saturday">7</string>
+
+    <string name="am">SA</string>
+    <string name="pm">CH</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%H:%M</string>
+    <string name="hour_minute_cap_ampm">%H:%M</string>
+    <string name="numeric_date">%d/%m/%Y</string>
+    <string name="numeric_date_format">dd/MM/yyyy</string>
+    <string name="month_day_year">Ngày %d tháng %-m năm %Y</string>
+    <string name="time_of_day">%H:%M:%S</string>
+    <string name="date_and_time">%d-%m-%Y %H:%M:%S</string>
+    <string name="abbrev_month_day_year">%d-%m-%Y</string>
+    <string name="month_day">%-e %B</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%-e %b</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values-zh-rCN/donottranslate-cldr.xml b/core/res/res/values-zh-rCN/donottranslate-cldr.xml
new file mode 100644
index 0000000..18e37a9
--- /dev/null
+++ b/core/res/res/values-zh-rCN/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">一月</string>
+    <string name="month_long_standalone_february">二月</string>
+    <string name="month_long_standalone_march">三月</string>
+    <string name="month_long_standalone_april">四月</string>
+    <string name="month_long_standalone_may">五月</string>
+    <string name="month_long_standalone_june">六月</string>
+    <string name="month_long_standalone_july">七月</string>
+    <string name="month_long_standalone_august">八月</string>
+    <string name="month_long_standalone_september">九月</string>
+    <string name="month_long_standalone_october">十月</string>
+    <string name="month_long_standalone_november">十一月</string>
+    <string name="month_long_standalone_december">十二月</string>
+
+    <string name="month_long_january">1月</string>
+    <string name="month_long_february">2月</string>
+    <string name="month_long_march">3月</string>
+    <string name="month_long_april">4月</string>
+    <string name="month_long_may">5月</string>
+    <string name="month_long_june">6月</string>
+    <string name="month_long_july">7月</string>
+    <string name="month_long_august">8月</string>
+    <string name="month_long_september">9月</string>
+    <string name="month_long_october">10月</string>
+    <string name="month_long_november">11月</string>
+    <string name="month_long_december">12月</string>
+
+    <string name="month_medium_january">1月</string>
+    <string name="month_medium_february">2月</string>
+    <string name="month_medium_march">3月</string>
+    <string name="month_medium_april">4月</string>
+    <string name="month_medium_may">5月</string>
+    <string name="month_medium_june">6月</string>
+    <string name="month_medium_july">7月</string>
+    <string name="month_medium_august">8月</string>
+    <string name="month_medium_september">9月</string>
+    <string name="month_medium_october">10月</string>
+    <string name="month_medium_november">11月</string>
+    <string name="month_medium_december">12月</string>
+
+    <string name="month_shortest_january">1月</string>
+    <string name="month_shortest_february">2月</string>
+    <string name="month_shortest_march">3月</string>
+    <string name="month_shortest_april">4月</string>
+    <string name="month_shortest_may">5月</string>
+    <string name="month_shortest_june">6月</string>
+    <string name="month_shortest_july">7月</string>
+    <string name="month_shortest_august">8月</string>
+    <string name="month_shortest_september">9月</string>
+    <string name="month_shortest_october">10月</string>
+    <string name="month_shortest_november">11月</string>
+    <string name="month_shortest_december">12月</string>
+
+    <string name="day_of_week_long_sunday">星期日</string>
+    <string name="day_of_week_long_monday">星期一</string>
+    <string name="day_of_week_long_tuesday">星期二</string>
+    <string name="day_of_week_long_wednesday">星期三</string>
+    <string name="day_of_week_long_thursday">星期四</string>
+    <string name="day_of_week_long_friday">星期五</string>
+    <string name="day_of_week_long_saturday">星期六</string>
+
+    <string name="day_of_week_medium_sunday">周日</string>
+    <string name="day_of_week_medium_monday">周一</string>
+    <string name="day_of_week_medium_tuesday">周二</string>
+    <string name="day_of_week_medium_wednesday">周三</string>
+    <string name="day_of_week_medium_thursday">周四</string>
+    <string name="day_of_week_medium_friday">周五</string>
+    <string name="day_of_week_medium_saturday">周六</string>
+
+    <string name="day_of_week_short_sunday">周日</string>
+    <string name="day_of_week_short_monday">周一</string>
+    <string name="day_of_week_short_tuesday">周二</string>
+    <string name="day_of_week_short_wednesday">周三</string>
+    <string name="day_of_week_short_thursday">周四</string>
+    <string name="day_of_week_short_friday">周五</string>
+    <string name="day_of_week_short_saturday">周六</string>
+
+    <string name="day_of_week_shortest_sunday">日</string>
+    <string name="day_of_week_shortest_monday">一</string>
+    <string name="day_of_week_shortest_tuesday">二</string>
+    <string name="day_of_week_shortest_wednesday">三</string>
+    <string name="day_of_week_shortest_thursday">四</string>
+    <string name="day_of_week_shortest_friday">五</string>
+    <string name="day_of_week_shortest_saturday">六</string>
+
+    <string name="am">上午</string>
+    <string name="pm">下午</string>
+    <string name="yesterday">昨天</string>
+    <string name="today">今天</string>
+    <string name="tomorrow">明天</string>
+
+    <string name="hour_minute_ampm">%p%-l:%M</string>
+    <string name="hour_minute_cap_ampm">%^p%-l:%M</string>
+    <string name="numeric_date">%Y-%-m-%-e</string>
+    <string name="numeric_date_format">yyyy-M-d</string>
+    <string name="month_day_year">%Y年%-m月%-e日</string>
+    <string name="time_of_day">%p%I:%M:%S</string>
+    <string name="date_and_time">%p%I:%M:%S %Y-%-m-%-e</string>
+    <string name="abbrev_month_day_year">%Y-%-m-%-e</string>
+    <string name="month_day">%B%-e日</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y年%B</string>
+    <string name="abbrev_month_day">%b%-e日</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y年%b</string>
+</resources>
diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml
index 54b0b97..ee7b3cd 100644
--- a/core/res/res/values-zh-rCN/strings.xml
+++ b/core/res/res/values-zh-rCN/strings.xml
@@ -424,9 +424,6 @@
     <string name="lockscreen_glogin_password_hint">"密码"</string>
     <string name="lockscreen_glogin_submit_button">"登录"</string>
     <string name="lockscreen_glogin_invalid_input">"用户名或密码无效。"</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="AMPM">%P</xliff:g><xliff:g id="HOUR">%-l</xliff:g>点"</string>
     <string name="hour_cap_ampm">"<xliff:g id="AMPM">%p</xliff:g><xliff:g id="HOUR">%-l</xliff:g>点"</string>
     <string name="status_bar_clear_all_button">"清除通知"</string>
@@ -458,9 +455,6 @@
     <string name="menu_enter_shortcut_label">"Enter 键"</string>
     <string name="menu_delete_shortcut_label">"删除"</string>
     <string name="search_go">"搜索"</string>
-    <string name="today">"今天"</string>
-    <string name="yesterday">"昨天"</string>
-    <string name="tomorrow">"明天"</string>
     <string name="oneMonthDurationPast">"1 个月前"</string>
     <string name="beforeOneMonthDurationPast">"1 个月前"</string>
   <plurals name="num_seconds_ago">
@@ -542,13 +536,6 @@
     <string name="weeks">"周"</string>
     <string name="year">"年"</string>
     <string name="years">"年"</string>
-    <string name="sunday">"周日"</string>
-    <string name="monday">"周一"</string>
-    <string name="tuesday">"周二"</string>
-    <string name="wednesday">"周三"</string>
-    <string name="thursday">"周四"</string>
-    <string name="friday">"周五"</string>
-    <string name="saturday">"周六"</string>
     <string name="every_weekday">"每个工作日(周一到周五)"</string>
     <string name="daily">"每天"</string>
     <string name="weekly">"每周的<xliff:g id="DAY">%s</xliff:g>"</string>
@@ -558,9 +545,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"抱歉,该视频不适合在此设备上播放。"</string>
     <string name="VideoView_error_text_unknown">"很抱歉,此视频不能播放。"</string>
     <string name="VideoView_error_button">"确定"</string>
-    <string name="am">"上午"</string>
-    <string name="pm">"下午"</string>
-    <string name="numeric_date">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%m</xliff:g> 月 <xliff:g id="DAY">%d</xliff:g> 日"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g><xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="TIME1">%3$s</xliff:g> 至 <xliff:g id="DATE2">%5$s</xliff:g><xliff:g id="WEEKDAY2">%4$s</xliff:g> <xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="DATE1">%2$s</xliff:g><xliff:g id="WEEKDAY1">%1$s</xliff:g>至 <xliff:g id="DATE2">%5$s</xliff:g><xliff:g id="WEEKDAY2">%4$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g> <xliff:g id="TIME1">%3$s</xliff:g> 至 <xliff:g id="DATE2">%5$s</xliff:g> <xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -572,23 +556,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g><xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="WEEKDAY">%2$s</xliff:g> <xliff:g id="TIME_RANGE">%1$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="YEAR">yyyy</xliff:g>' 年 '<xliff:g id="MONTH">MMMM</xliff:g>' 月 '<xliff:g id="DAY">d</xliff:g>' 日'"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="YEAR">yyyy</xliff:g>' 年 '<xliff:g id="MONTH">MMMM</xliff:g>' 月 '<xliff:g id="DAY">d</xliff:g>' 日'"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="YEAR">yyyy</xliff:g>' 年 '<xliff:g id="MONTH">MMM</xliff:g>' 月 '<xliff:g id="DAY">d</xliff:g>' 日'"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="YEAR">yyyy</xliff:g>' 年 '<xliff:g id="DAY">d</xliff:g>' 月 '<xliff:g id="MONTH">MMM</xliff:g>' 日'"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"中午"</string>
     <string name="Noon">"中午"</string>
     <string name="midnight">"午夜"</string>
     <string name="Midnight">"午夜"</string>
-    <string name="month_day">"<xliff:g id="MONTH">%B</xliff:g> 月 <xliff:g id="DAY">%-d</xliff:g> 日"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%B</xliff:g> 月 <xliff:g id="DAY">%-d</xliff:g> 日"</string>
-    <string name="month_year">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%B</xliff:g> 月"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%B</xliff:g> 月 <xliff:g id="DAY">%-d</xliff:g> 日 <xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="MONTH1">%2$s</xliff:g> 月 <xliff:g id="DAY1">%3$s</xliff:g> 日至 <xliff:g id="MONTH2">%7$s</xliff:g> 月 <xliff:g id="DAY2">%8$s</xliff:g> 日"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="MONTH1">%2$s</xliff:g> 月 <xliff:g id="DAY1_0">%3$s</xliff:g> 日<xliff:g id="WEEKDAY1">%1$s</xliff:g>至 <xliff:g id="MONTH2">%7$s</xliff:g> 月 <xliff:g id="DAY2_1">%8$s</xliff:g> 日<xliff:g id="WEEKDAY2">%6$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="YEAR">%9$s</xliff:g> 年 <xliff:g id="MONTH1">%2$s</xliff:g> 月 <xliff:g id="DAY1">%3$s</xliff:g> 日至 <xliff:g id="MONTH2">%7$s</xliff:g> 月 <xliff:g id="DAY2">%8$s</xliff:g> 日"</string>
@@ -613,82 +586,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="MONTH1">%2$s</xliff:g> 月 <xliff:g id="DAY1_0">%3$s</xliff:g> 日<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="TIME1">%5$s</xliff:g> 至 <xliff:g id="MONTH2">%7$s</xliff:g> 月 <xliff:g id="DAY2_1">%8$s</xliff:g> 日<xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="YEAR1">%4$s</xliff:g> 年 <xliff:g id="MONTH1">%2$s</xliff:g> 月 <xliff:g id="DAY1">%3$s</xliff:g> 日 <xliff:g id="TIME1">%5$s</xliff:g> 至 <xliff:g id="YEAR2">%9$s</xliff:g> 年 <xliff:g id="MONTH2">%7$s</xliff:g> 月 <xliff:g id="DAY2">%8$s</xliff:g> 日 <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="YEAR1">%4$s</xliff:g> 年 <xliff:g id="MONTH1">%2$s</xliff:g> 月 <xliff:g id="DAY1_0">%3$s</xliff:g> 日<xliff:g id="WEEKDAY1">%1$s</xliff:g> <xliff:g id="TIME1">%5$s</xliff:g> 至 <xliff:g id="YEAR2">%9$s</xliff:g> 年 <xliff:g id="MONTH2">%7$s</xliff:g> 月 <xliff:g id="DAY2_1">%8$s</xliff:g> 日<xliff:g id="WEEKDAY2">%6$s</xliff:g> <xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%b</xliff:g> 月 <xliff:g id="DAY">%-d</xliff:g> 日"</string>
-    <string name="abbrev_month_year">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%b</xliff:g> 月"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g> 月 <xliff:g id="DAY">%-d</xliff:g> 日"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"周日"</string>
-    <string name="day_of_week_long_monday">"周一"</string>
-    <string name="day_of_week_long_tuesday">"周二"</string>
-    <string name="day_of_week_long_wednesday">"周三"</string>
-    <string name="day_of_week_long_thursday">"周四"</string>
-    <string name="day_of_week_long_friday">"周五"</string>
-    <string name="day_of_week_long_saturday">"周六"</string>
-    <string name="day_of_week_medium_sunday">"周日"</string>
-    <string name="day_of_week_medium_monday">"周一"</string>
-    <string name="day_of_week_medium_tuesday">"周二"</string>
-    <string name="day_of_week_medium_wednesday">"周三"</string>
-    <string name="day_of_week_medium_thursday">"周四"</string>
-    <string name="day_of_week_medium_friday">"周五"</string>
-    <string name="day_of_week_medium_saturday">"周六"</string>
-    <string name="day_of_week_short_sunday">"周日"</string>
-    <string name="day_of_week_short_monday">"周一"</string>
-    <string name="day_of_week_short_tuesday">"周二"</string>
-    <string name="day_of_week_short_wednesday">"周三"</string>
-    <string name="day_of_week_short_thursday">"周四"</string>
-    <string name="day_of_week_short_friday">"周五"</string>
-    <string name="day_of_week_short_saturday">"周六"</string>
-    <string name="day_of_week_shorter_sunday">"周日"</string>
-    <string name="day_of_week_shorter_monday">"周一"</string>
-    <string name="day_of_week_shorter_tuesday">"周二"</string>
-    <string name="day_of_week_shorter_wednesday">"周三"</string>
-    <string name="day_of_week_shorter_thursday">"周四"</string>
-    <string name="day_of_week_shorter_friday">"周五"</string>
-    <string name="day_of_week_shorter_saturday">"周六"</string>
-    <string name="day_of_week_shortest_sunday">"周日"</string>
-    <string name="day_of_week_shortest_monday">"周一"</string>
-    <string name="day_of_week_shortest_tuesday">"周二"</string>
-    <string name="day_of_week_shortest_wednesday">"周三"</string>
-    <string name="day_of_week_shortest_thursday">"周四"</string>
-    <string name="day_of_week_shortest_friday">"周五"</string>
-    <string name="day_of_week_shortest_saturday">"周六"</string>
-    <string name="month_long_january">"1 月"</string>
-    <string name="month_long_february">"2 月"</string>
-    <string name="month_long_march">"3 月"</string>
-    <string name="month_long_april">"4 月"</string>
-    <string name="month_long_may">"5 月"</string>
-    <string name="month_long_june">"6 月"</string>
-    <string name="month_long_july">"7 月"</string>
-    <string name="month_long_august">"8 月"</string>
-    <string name="month_long_september">"9 月"</string>
-    <string name="month_long_october">"10 月"</string>
-    <string name="month_long_november">"11 月"</string>
-    <string name="month_long_december">"12 月"</string>
-    <string name="month_medium_january">"1 月"</string>
-    <string name="month_medium_february">"2 月"</string>
-    <string name="month_medium_march">"3 月"</string>
-    <string name="month_medium_april">"4 月"</string>
-    <string name="month_medium_may">"5 月"</string>
-    <string name="month_medium_june">"6 月"</string>
-    <string name="month_medium_july">"7 月"</string>
-    <string name="month_medium_august">"8 月"</string>
-    <string name="month_medium_september">"9 月"</string>
-    <string name="month_medium_october">"10 月"</string>
-    <string name="month_medium_november">"11 月"</string>
-    <string name="month_medium_december">"12 月"</string>
-    <string name="month_shortest_january">"1 月"</string>
-    <string name="month_shortest_february">"2 月"</string>
-    <string name="month_shortest_march">"3 月"</string>
-    <string name="month_shortest_april">"4 月"</string>
-    <string name="month_shortest_may">"5 月"</string>
-    <string name="month_shortest_june">"6 月"</string>
-    <string name="month_shortest_july">"7 月"</string>
-    <string name="month_shortest_august">"8 月"</string>
-    <string name="month_shortest_september">"9 月"</string>
-    <string name="month_shortest_october">"10 月"</string>
-    <string name="month_shortest_november">"11 月"</string>
-    <string name="month_shortest_december">"12 月"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"全选"</string>
diff --git a/core/res/res/values-zh-rTW/donottranslate-cldr.xml b/core/res/res/values-zh-rTW/donottranslate-cldr.xml
new file mode 100644
index 0000000..18e37a9
--- /dev/null
+++ b/core/res/res/values-zh-rTW/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">一月</string>
+    <string name="month_long_standalone_february">二月</string>
+    <string name="month_long_standalone_march">三月</string>
+    <string name="month_long_standalone_april">四月</string>
+    <string name="month_long_standalone_may">五月</string>
+    <string name="month_long_standalone_june">六月</string>
+    <string name="month_long_standalone_july">七月</string>
+    <string name="month_long_standalone_august">八月</string>
+    <string name="month_long_standalone_september">九月</string>
+    <string name="month_long_standalone_october">十月</string>
+    <string name="month_long_standalone_november">十一月</string>
+    <string name="month_long_standalone_december">十二月</string>
+
+    <string name="month_long_january">1月</string>
+    <string name="month_long_february">2月</string>
+    <string name="month_long_march">3月</string>
+    <string name="month_long_april">4月</string>
+    <string name="month_long_may">5月</string>
+    <string name="month_long_june">6月</string>
+    <string name="month_long_july">7月</string>
+    <string name="month_long_august">8月</string>
+    <string name="month_long_september">9月</string>
+    <string name="month_long_october">10月</string>
+    <string name="month_long_november">11月</string>
+    <string name="month_long_december">12月</string>
+
+    <string name="month_medium_january">1月</string>
+    <string name="month_medium_february">2月</string>
+    <string name="month_medium_march">3月</string>
+    <string name="month_medium_april">4月</string>
+    <string name="month_medium_may">5月</string>
+    <string name="month_medium_june">6月</string>
+    <string name="month_medium_july">7月</string>
+    <string name="month_medium_august">8月</string>
+    <string name="month_medium_september">9月</string>
+    <string name="month_medium_october">10月</string>
+    <string name="month_medium_november">11月</string>
+    <string name="month_medium_december">12月</string>
+
+    <string name="month_shortest_january">1月</string>
+    <string name="month_shortest_february">2月</string>
+    <string name="month_shortest_march">3月</string>
+    <string name="month_shortest_april">4月</string>
+    <string name="month_shortest_may">5月</string>
+    <string name="month_shortest_june">6月</string>
+    <string name="month_shortest_july">7月</string>
+    <string name="month_shortest_august">8月</string>
+    <string name="month_shortest_september">9月</string>
+    <string name="month_shortest_october">10月</string>
+    <string name="month_shortest_november">11月</string>
+    <string name="month_shortest_december">12月</string>
+
+    <string name="day_of_week_long_sunday">星期日</string>
+    <string name="day_of_week_long_monday">星期一</string>
+    <string name="day_of_week_long_tuesday">星期二</string>
+    <string name="day_of_week_long_wednesday">星期三</string>
+    <string name="day_of_week_long_thursday">星期四</string>
+    <string name="day_of_week_long_friday">星期五</string>
+    <string name="day_of_week_long_saturday">星期六</string>
+
+    <string name="day_of_week_medium_sunday">周日</string>
+    <string name="day_of_week_medium_monday">周一</string>
+    <string name="day_of_week_medium_tuesday">周二</string>
+    <string name="day_of_week_medium_wednesday">周三</string>
+    <string name="day_of_week_medium_thursday">周四</string>
+    <string name="day_of_week_medium_friday">周五</string>
+    <string name="day_of_week_medium_saturday">周六</string>
+
+    <string name="day_of_week_short_sunday">周日</string>
+    <string name="day_of_week_short_monday">周一</string>
+    <string name="day_of_week_short_tuesday">周二</string>
+    <string name="day_of_week_short_wednesday">周三</string>
+    <string name="day_of_week_short_thursday">周四</string>
+    <string name="day_of_week_short_friday">周五</string>
+    <string name="day_of_week_short_saturday">周六</string>
+
+    <string name="day_of_week_shortest_sunday">日</string>
+    <string name="day_of_week_shortest_monday">一</string>
+    <string name="day_of_week_shortest_tuesday">二</string>
+    <string name="day_of_week_shortest_wednesday">三</string>
+    <string name="day_of_week_shortest_thursday">四</string>
+    <string name="day_of_week_shortest_friday">五</string>
+    <string name="day_of_week_shortest_saturday">六</string>
+
+    <string name="am">上午</string>
+    <string name="pm">下午</string>
+    <string name="yesterday">昨天</string>
+    <string name="today">今天</string>
+    <string name="tomorrow">明天</string>
+
+    <string name="hour_minute_ampm">%p%-l:%M</string>
+    <string name="hour_minute_cap_ampm">%^p%-l:%M</string>
+    <string name="numeric_date">%Y-%-m-%-e</string>
+    <string name="numeric_date_format">yyyy-M-d</string>
+    <string name="month_day_year">%Y年%-m月%-e日</string>
+    <string name="time_of_day">%p%I:%M:%S</string>
+    <string name="date_and_time">%p%I:%M:%S %Y-%-m-%-e</string>
+    <string name="abbrev_month_day_year">%Y-%-m-%-e</string>
+    <string name="month_day">%B%-e日</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%Y年%B</string>
+    <string name="abbrev_month_day">%b%-e日</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%Y年%b</string>
+</resources>
diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml
index 514e304..a742228 100644
--- a/core/res/res/values-zh-rTW/strings.xml
+++ b/core/res/res/values-zh-rTW/strings.xml
@@ -418,9 +418,6 @@
     <string name="lockscreen_glogin_password_hint">"密碼"</string>
     <string name="lockscreen_glogin_submit_button">"登入"</string>
     <string name="lockscreen_glogin_invalid_input">"使用者名稱或密碼錯誤。"</string>
-    <string name="status_bar_time_format">"<xliff:g id="HOUR">h</xliff:g>:<xliff:g id="MINUTE">mm</xliff:g> <xliff:g id="AMPM">AA</xliff:g>"</string>
-    <string name="hour_minute_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
-    <string name="hour_minute_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="hour_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%P</xliff:g>"</string>
     <string name="hour_cap_ampm">"<xliff:g id="HOUR">%-l</xliff:g><xliff:g id="AMPM">%p</xliff:g>"</string>
     <string name="status_bar_clear_all_button">"清除通知"</string>
@@ -452,9 +449,6 @@
     <string name="menu_enter_shortcut_label">"輸入"</string>
     <string name="menu_delete_shortcut_label">"刪除"</string>
     <string name="search_go">"搜尋"</string>
-    <string name="today">"今天"</string>
-    <string name="yesterday">"昨天"</string>
-    <string name="tomorrow">"明天"</string>
     <string name="oneMonthDurationPast">"1 個月以前"</string>
     <string name="beforeOneMonthDurationPast">"1 個月前"</string>
   <plurals name="num_seconds_ago">
@@ -536,13 +530,6 @@
     <string name="weeks">"週"</string>
     <string name="year">"年"</string>
     <string name="years">"年"</string>
-    <string name="sunday">"星期日"</string>
-    <string name="monday">"星期一"</string>
-    <string name="tuesday">"星期二"</string>
-    <string name="wednesday">"星期三"</string>
-    <string name="thursday">"星期四"</string>
-    <string name="friday">"星期五"</string>
-    <string name="saturday">"星期六"</string>
     <string name="every_weekday">"每天 (週一至週五)"</string>
     <string name="daily">"每天"</string>
     <string name="weekly">"每週<xliff:g id="DAY">%s</xliff:g>"</string>
@@ -552,9 +539,6 @@
     <string name="VideoView_error_text_invalid_progressive_playback">"很抱歉,影片格式無效,裝置無法進行串流處理。"</string>
     <string name="VideoView_error_text_unknown">"很抱歉,此影片無法播放。"</string>
     <string name="VideoView_error_button">"確定"</string>
-    <string name="am">"上午"</string>
-    <string name="pm">"下午"</string>
-    <string name="numeric_date">"<xliff:g id="MONTH">%m</xliff:g>/<xliff:g id="DAY">%d</xliff:g>/<xliff:g id="YEAR">%Y</xliff:g>"</string>
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>,<xliff:g id="WEEKDAY1">%1$s</xliff:g>,<xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>,<xliff:g id="WEEKDAY2">%4$s</xliff:g>,<xliff:g id="TIME2">%6$s</xliff:g>"</string>
     <string name="wday1_date1_wday2_date2">"<xliff:g id="DATE1">%2$s</xliff:g>,<xliff:g id="WEEKDAY1">%1$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>,<xliff:g id="WEEKDAY2">%4$s</xliff:g>"</string>
     <string name="date1_time1_date2_time2">"<xliff:g id="DATE1">%2$s</xliff:g>,<xliff:g id="TIME1">%3$s</xliff:g> – <xliff:g id="DATE2">%5$s</xliff:g>,<xliff:g id="TIME2">%6$s</xliff:g>"</string>
@@ -566,23 +550,12 @@
     <string name="date_time">"<xliff:g id="DATE">%1$s</xliff:g>,<xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="relative_time">"<xliff:g id="DATE">%1$s</xliff:g>,<xliff:g id="TIME">%2$s</xliff:g>"</string>
     <string name="time_wday">"<xliff:g id="WEEKDAY">%2$s</xliff:g>,<xliff:g id="TIME_RANGE">%1$s</xliff:g>"</string>
-    <string name="full_date_month_first" format="date">"<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>','<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="full_date_day_first" format="date">"<xliff:g id="YEAR">yyyy</xliff:g>' 年 '<xliff:g id="MONTH">MMMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>' 日'"</string>
-    <string name="medium_date_month_first" format="date">"<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>','<xliff:g id="YEAR">yyyy</xliff:g>"</string>
-    <string name="medium_date_day_first" format="date">"<xliff:g id="YEAR">yyyy</xliff:g>' 年 '<xliff:g id="MONTH">MMM</xliff:g>' '<xliff:g id="DAY">d</xliff:g>' 日'"</string>
-    <string name="twelve_hour_time_format" format="date">"<xliff:g id="HOUR">h</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>' '<xliff:g id="AMPM">a</xliff:g>"</string>
-    <string name="twenty_four_hour_time_format" format="date">"<xliff:g id="HOUR">HH</xliff:g>':'<xliff:g id="MINUTE">mm</xliff:g>"</string>
     <string name="noon">"中午"</string>
     <string name="Noon">"中午"</string>
     <string name="midnight">"午夜"</string>
     <string name="Midnight">"午夜"</string>
-    <string name="month_day">"<xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g> 日"</string>
     <!-- no translation found for month (7026169712234774086) -->
     <skip />
-    <string name="month_day_year">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g> 日"</string>
-    <string name="month_year">"<xliff:g id="YEAR">%Y</xliff:g> 年<xliff:g id="MONTH">%B</xliff:g>"</string>
-    <string name="time_of_day">"<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
-    <string name="date_and_time">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%B</xliff:g> <xliff:g id="DAY">%-d</xliff:g> 日,<xliff:g id="HOUR">%H</xliff:g>:<xliff:g id="MINUTE">%M</xliff:g>:<xliff:g id="SECOND">%S</xliff:g>"</string>
     <string name="same_year_md1_md2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g>"</string>
     <string name="same_year_wday1_md1_wday2_md2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> 日,<xliff:g id="WEEKDAY1">%1$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g> 日,<xliff:g id="WEEKDAY2">%6$s</xliff:g>"</string>
     <string name="same_year_mdy1_mdy2">"<xliff:g id="YEAR">%9$s</xliff:g> 年 <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> 日 – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g> 日"</string>
@@ -607,82 +580,8 @@
     <string name="same_month_wday1_md1_time1_wday2_md2_time2">"<xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> 日,<xliff:g id="WEEKDAY1">%1$s</xliff:g>,<xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g> 日,<xliff:g id="WEEKDAY2">%6$s</xliff:g>,<xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_mdy1_time1_mdy2_time2">"<xliff:g id="YEAR1">%4$s</xliff:g> 年 <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1">%3$s</xliff:g> 日 <xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="YEAR2">%9$s</xliff:g> 年 <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2">%8$s</xliff:g> 日 <xliff:g id="TIME2">%10$s</xliff:g>"</string>
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="YEAR1">%4$s</xliff:g> 年 <xliff:g id="MONTH1">%2$s</xliff:g> <xliff:g id="DAY1_0">%3$s</xliff:g> 日,<xliff:g id="WEEKDAY1">%1$s</xliff:g>,<xliff:g id="TIME1">%5$s</xliff:g> – <xliff:g id="YEAR2">%9$s</xliff:g> 年 <xliff:g id="MONTH2">%7$s</xliff:g> <xliff:g id="DAY2_1">%8$s</xliff:g> 日,<xliff:g id="WEEKDAY2">%6$s</xliff:g>,<xliff:g id="TIME2">%10$s</xliff:g>"</string>
-    <string name="abbrev_month_day_year">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g> 日"</string>
-    <string name="abbrev_month_year">"<xliff:g id="YEAR">%Y</xliff:g> 年 <xliff:g id="MONTH">%b</xliff:g>"</string>
-    <string name="abbrev_month_day">"<xliff:g id="MONTH">%b</xliff:g> <xliff:g id="DAY">%-d</xliff:g> 日"</string>
     <!-- no translation found for abbrev_month (3131032032850777433) -->
     <skip />
-    <string name="day_of_week_long_sunday">"星期日"</string>
-    <string name="day_of_week_long_monday">"星期一"</string>
-    <string name="day_of_week_long_tuesday">"星期二"</string>
-    <string name="day_of_week_long_wednesday">"星期三"</string>
-    <string name="day_of_week_long_thursday">"星期四"</string>
-    <string name="day_of_week_long_friday">"星期五"</string>
-    <string name="day_of_week_long_saturday">"星期六"</string>
-    <string name="day_of_week_medium_sunday">"週日"</string>
-    <string name="day_of_week_medium_monday">"週一"</string>
-    <string name="day_of_week_medium_tuesday">"週二"</string>
-    <string name="day_of_week_medium_wednesday">"週三"</string>
-    <string name="day_of_week_medium_thursday">"週四"</string>
-    <string name="day_of_week_medium_friday">"五"</string>
-    <string name="day_of_week_medium_saturday">"週六"</string>
-    <string name="day_of_week_short_sunday">"日"</string>
-    <string name="day_of_week_short_monday">"一"</string>
-    <string name="day_of_week_short_tuesday">"二"</string>
-    <string name="day_of_week_short_wednesday">"三"</string>
-    <string name="day_of_week_short_thursday">"週四"</string>
-    <string name="day_of_week_short_friday">"五"</string>
-    <string name="day_of_week_short_saturday">"六"</string>
-    <string name="day_of_week_shorter_sunday">"日"</string>
-    <string name="day_of_week_shorter_monday">"一"</string>
-    <string name="day_of_week_shorter_tuesday">"二"</string>
-    <string name="day_of_week_shorter_wednesday">"三"</string>
-    <string name="day_of_week_shorter_thursday">"四"</string>
-    <string name="day_of_week_shorter_friday">"五"</string>
-    <string name="day_of_week_shorter_saturday">"六"</string>
-    <string name="day_of_week_shortest_sunday">"日"</string>
-    <string name="day_of_week_shortest_monday">"一"</string>
-    <string name="day_of_week_shortest_tuesday">"二"</string>
-    <string name="day_of_week_shortest_wednesday">"三"</string>
-    <string name="day_of_week_shortest_thursday">"四"</string>
-    <string name="day_of_week_shortest_friday">"五"</string>
-    <string name="day_of_week_shortest_saturday">"六"</string>
-    <string name="month_long_january">"1 月"</string>
-    <string name="month_long_february">"2 月"</string>
-    <string name="month_long_march">"3 月"</string>
-    <string name="month_long_april">"4 月"</string>
-    <string name="month_long_may">"5 月"</string>
-    <string name="month_long_june">"6 月"</string>
-    <string name="month_long_july">"7 月"</string>
-    <string name="month_long_august">"8 月"</string>
-    <string name="month_long_september">"9 月"</string>
-    <string name="month_long_october">"10 月"</string>
-    <string name="month_long_november">"11 月"</string>
-    <string name="month_long_december">"12 月"</string>
-    <string name="month_medium_january">"1 月"</string>
-    <string name="month_medium_february">"2 月"</string>
-    <string name="month_medium_march">"3 月"</string>
-    <string name="month_medium_april">"4 月"</string>
-    <string name="month_medium_may">"5 月"</string>
-    <string name="month_medium_june">"6 月"</string>
-    <string name="month_medium_july">"7 月"</string>
-    <string name="month_medium_august">"8 月"</string>
-    <string name="month_medium_september">"9 月"</string>
-    <string name="month_medium_october">"10 月"</string>
-    <string name="month_medium_november">"11 月"</string>
-    <string name="month_medium_december">"12 月"</string>
-    <string name="month_shortest_january">"1"</string>
-    <string name="month_shortest_february">"2"</string>
-    <string name="month_shortest_march">"3"</string>
-    <string name="month_shortest_april">"4"</string>
-    <string name="month_shortest_may">"5"</string>
-    <string name="month_shortest_june">"6"</string>
-    <string name="month_shortest_july">"7"</string>
-    <string name="month_shortest_august">"8"</string>
-    <string name="month_shortest_september">"9"</string>
-    <string name="month_shortest_october">"10"</string>
-    <string name="month_shortest_november">"11"</string>
-    <string name="month_shortest_december">"12"</string>
     <string name="elapsed_time_short_format_mm_ss">"<xliff:g id="MINUTES">%1$02d</xliff:g>:<xliff:g id="SECONDS">%2$02d</xliff:g>"</string>
     <string name="elapsed_time_short_format_h_mm_ss">"<xliff:g id="HOURS">%1$d</xliff:g>:<xliff:g id="MINUTES">%2$02d</xliff:g>:<xliff:g id="SECONDS">%3$02d</xliff:g>"</string>
     <string name="selectAll">"全部選取"</string>
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 43eec1b..b92beec 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -79,6 +79,9 @@
         <attr name="textColorPrimaryInverseNoDisable" format="reference|color" />
         <!-- Dim inverse text color. This does not differentiate the disabled state. -->
         <attr name="textColorSecondaryInverseNoDisable" format="reference|color" />
+        
+        <!-- Text color for urls in search suggestions, used by things like global search and the browser. @hide -->
+        <attr name="textColorSearchUrl" format="reference|color" />
 
         <!-- Text color, typeface, size, and style for "large" text. Defaults to primary text color. -->
         <attr name="textAppearanceLarge" format="reference" />
@@ -99,6 +102,7 @@
         <!-- Text color, typeface, size, and style for system search result subtitle. Defaults to primary inverse text color. @hide -->	
         <attr name="textAppearanceSearchResultSubtitle" format="reference" />
 
+
         <!-- Text color, typeface, size, and style for the text inside of a button. -->
         <attr name="textAppearanceButton" format="reference" />
         
@@ -152,8 +156,8 @@
         <!-- The preferred list item height -->
         <attr name="listPreferredItemHeight" format="dimension" />
         <!-- The drawable for the list divider -->
-	<!-- The list item height for search results. @hide -->
-	<attr name="searchResultListItemHeight" format="dimension" />
+        <!-- The list item height for search results. @hide -->
+        <attr name="searchResultListItemHeight" format="dimension" />
         <attr name="listDivider" format="reference" />
         <!-- TextView style for list separators. -->
         <attr name="listSeparatorTextViewStyle" format="reference" />
diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml
index 8150067..96369f4 100644
--- a/core/res/res/values/colors.xml
+++ b/core/res/res/values/colors.xml
@@ -73,5 +73,8 @@
     <color name="perms_normal_grp_color">#eeeeee</color>
     <color name="perms_normal_perm_color">#c0c0c0</color>
     
+    <!-- For search-related UIs -->
+    <color name="search_url_text">#7fa87f</color>
+
 </resources>
 
diff --git a/core/res/res/values/donottranslate-cldr.xml b/core/res/res/values/donottranslate-cldr.xml
new file mode 100644
index 0000000..f305948
--- /dev/null
+++ b/core/res/res/values/donottranslate-cldr.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="month_long_standalone_january">January</string>
+    <string name="month_long_standalone_february">February</string>
+    <string name="month_long_standalone_march">March</string>
+    <string name="month_long_standalone_april">April</string>
+    <string name="month_long_standalone_may">May</string>
+    <string name="month_long_standalone_june">June</string>
+    <string name="month_long_standalone_july">July</string>
+    <string name="month_long_standalone_august">August</string>
+    <string name="month_long_standalone_september">September</string>
+    <string name="month_long_standalone_october">October</string>
+    <string name="month_long_standalone_november">November</string>
+    <string name="month_long_standalone_december">December</string>
+
+    <string name="month_long_january">January</string>
+    <string name="month_long_february">February</string>
+    <string name="month_long_march">March</string>
+    <string name="month_long_april">April</string>
+    <string name="month_long_may">May</string>
+    <string name="month_long_june">June</string>
+    <string name="month_long_july">July</string>
+    <string name="month_long_august">August</string>
+    <string name="month_long_september">September</string>
+    <string name="month_long_october">October</string>
+    <string name="month_long_november">November</string>
+    <string name="month_long_december">December</string>
+
+    <string name="month_medium_january">Jan</string>
+    <string name="month_medium_february">Feb</string>
+    <string name="month_medium_march">Mar</string>
+    <string name="month_medium_april">Apr</string>
+    <string name="month_medium_may">May</string>
+    <string name="month_medium_june">Jun</string>
+    <string name="month_medium_july">Jul</string>
+    <string name="month_medium_august">Aug</string>
+    <string name="month_medium_september">Sep</string>
+    <string name="month_medium_october">Oct</string>
+    <string name="month_medium_november">Nov</string>
+    <string name="month_medium_december">Dec</string>
+
+    <string name="month_shortest_january">J</string>
+    <string name="month_shortest_february">F</string>
+    <string name="month_shortest_march">M</string>
+    <string name="month_shortest_april">A</string>
+    <string name="month_shortest_may">M</string>
+    <string name="month_shortest_june">J</string>
+    <string name="month_shortest_july">J</string>
+    <string name="month_shortest_august">A</string>
+    <string name="month_shortest_september">S</string>
+    <string name="month_shortest_october">O</string>
+    <string name="month_shortest_november">N</string>
+    <string name="month_shortest_december">D</string>
+
+    <string name="day_of_week_long_sunday">Sunday</string>
+    <string name="day_of_week_long_monday">Monday</string>
+    <string name="day_of_week_long_tuesday">Tuesday</string>
+    <string name="day_of_week_long_wednesday">Wednesday</string>
+    <string name="day_of_week_long_thursday">Thursday</string>
+    <string name="day_of_week_long_friday">Friday</string>
+    <string name="day_of_week_long_saturday">Saturday</string>
+
+    <string name="day_of_week_medium_sunday">Sun</string>
+    <string name="day_of_week_medium_monday">Mon</string>
+    <string name="day_of_week_medium_tuesday">Tue</string>
+    <string name="day_of_week_medium_wednesday">Wed</string>
+    <string name="day_of_week_medium_thursday">Thu</string>
+    <string name="day_of_week_medium_friday">Fri</string>
+    <string name="day_of_week_medium_saturday">Sat</string>
+
+    <string name="day_of_week_short_sunday">Su</string>
+    <string name="day_of_week_short_monday">Mo</string>
+    <string name="day_of_week_short_tuesday">Tu</string>
+    <string name="day_of_week_short_wednesday">We</string>
+    <string name="day_of_week_short_thursday">Th</string>
+    <string name="day_of_week_short_friday">Fr</string>
+    <string name="day_of_week_short_saturday">Sa</string>
+
+    <string name="day_of_week_shortest_sunday">S</string>
+    <string name="day_of_week_shortest_monday">M</string>
+    <string name="day_of_week_shortest_tuesday">T</string>
+    <string name="day_of_week_shortest_wednesday">W</string>
+    <string name="day_of_week_shortest_thursday">T</string>
+    <string name="day_of_week_shortest_friday">F</string>
+    <string name="day_of_week_shortest_saturday">S</string>
+
+    <string name="am">a.m.</string>
+    <string name="pm">p.m.</string>
+    <string name="yesterday">Yesterday</string>
+    <string name="today">Today</string>
+    <string name="tomorrow">Tomorrow</string>
+
+    <string name="hour_minute_ampm">%-l:%M %p</string>
+    <string name="hour_minute_cap_ampm">%-l:%M %^p</string>
+    <string name="numeric_date">%-m/%-e/%Y</string>
+    <string name="numeric_date_format">M/d/yyyy</string>
+    <string name="month_day_year">%B %-e, %Y</string>
+    <string name="time_of_day">%-l:%M:%S %p</string>
+    <string name="date_and_time">%-l:%M:%S %p %b %-e, %Y</string>
+    <string name="abbrev_month_day_year">%b %-e, %Y</string>
+    <string name="month_day">%B %-e</string>
+    <string name="month">%-B</string>
+    <string name="month_year">%B %Y</string>
+    <string name="abbrev_month_day">%b %-e</string>
+    <string name="abbrev_month">%-b</string>
+    <string name="abbrev_month_year">%b %Y</string>
+</resources>
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index ed81cb4..2860292 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1244,15 +1244,6 @@
     <!-- Displayed to the user when unlocking the phone with a username and password fails. -->
     <string name="lockscreen_glogin_invalid_input">Invalid username or password.</string>
 
-    <!-- A format string for 12-hour time of day (example: "12:30 PM"). -->
-    <string name="status_bar_time_format">"<xliff:g id="hour" example="12">h</xliff:g>:<xliff:g id="minute" example="30">mm</xliff:g> <xliff:g id="ampm" example="AM">AA</xliff:g>"</string>
-
-    <!-- A format string for 12-hour time of day, with lower-case "am" or "pm" (example: "12:30pm"). -->
-    <string name="hour_minute_ampm">"<xliff:g id="hour" example="12">%-l</xliff:g>:<xliff:g id="minute" example="30">%M</xliff:g><xliff:g id="ampm" example="am">%P</xliff:g>"</string>
-
-    <!-- A format string for 12-hour time of day, with capital "AM" or "PM" (example: "12:30PM"). -->
-    <string name="hour_minute_cap_ampm">"<xliff:g id="hour" example="12">%-l</xliff:g>:<xliff:g id="minute" example="30">%M</xliff:g><xliff:g id="ampm" example="AM">%p</xliff:g>"</string>
-
     <!-- A format string for 12-hour time of day, just the hour, not the minute, with lower-case "am" or "pm" (example: "3pm"). -->
     <string name="hour_ampm">"<xliff:g id="hour" example="3">%-l</xliff:g><xliff:g id="ampm" example="pm">%P</xliff:g>"</string>
 
@@ -1353,12 +1344,6 @@
          It is also used by the home screen's search "widget". It should be short -->
     <string name="search_go">Search</string>
 
-    <!-- String used to display the date. This is shown instead of a date if the date is today's date. -->
-    <string name="today">Today</string>
-    <!-- String used to display the date. This is shown instead of a date if the date is yesterday's date. -->
-    <string name="yesterday">Yesterday</string>
-    <!-- String used to display the date. This is shown instead of a date if the date is tomorrow's date. -->
-    <string name="tomorrow">Tomorrow</string>
     <!-- String used to display the date. This is the string to say something happened 1 month ago. -->
     <string name="oneMonthDurationPast">1 month ago</string>
     <!-- String used to display the date. This is the string to say something happened more than 1 month ago. -->
@@ -1492,21 +1477,6 @@
     <!-- Appened to express the value is this unit of time. -->
     <string name="years">years</string>
 
-    <!-- Used in the list of which days of the week a calendar event recurrs on -->
-    <string name="sunday">Sunday</string>
-    <!-- Used in the list of which days of the week a calendar event recurrs on -->
-    <string name="monday">Monday</string>
-    <!-- Used in the list of which days of the week a calendar event recurrs on -->
-    <string name="tuesday">Tuesday</string>
-    <!-- Used in the list of which days of the week a calendar event recurrs on -->
-    <string name="wednesday">Wednesday</string>
-    <!-- Used in the list of which days of the week a calendar event recurrs on -->
-    <string name="thursday">Thursday</string>
-    <!-- Used in the list of which days of the week a calendar event recurrs on -->
-    <string name="friday">Friday</string>
-    <!-- Used in the list of which days of the week a calendar event recurrs on -->
-    <string name="saturday">Saturday</string>
-
     <!-- Calendar spinner item, to select that an event recurs every weekday. -->
     <string name="every_weekday">"Every weekday (Mon\u2013Fri)"</string>
     <!-- Calendar spinner item, to select that an event recurs every day. -->
@@ -1529,16 +1499,6 @@
     <string name="VideoView_error_button">OK</string>
 
 
-    <!-- AM - as in morning - as in 10:30 AM -->
-    <string name="am">"AM"</string>
-
-    <!-- PM - as in afternoon - as in 10:30 PM -->
-    <string name="pm">"PM"</string>
-
-
-    <!-- Numeric form of the day. Example: "12/31/2007" -->
-    <string name="numeric_date">"<xliff:g id="month" example="12">%m</xliff:g>/<xliff:g id="day" example="31">%d</xliff:g>/<xliff:g id="year" example="2008">%Y</xliff:g>"</string>
-
     <!-- Format indicating a range of time, from a time on one day to a time on another day. 
          Example: "Mon, Dec 31, 2007, 8am - Tue, Jan 1, 2008, 5pm" -->
     <string name="wday1_date1_time1_wday2_date2_time2">"<xliff:g id="weekday1" example="Monday">%1$s</xliff:g>, <xliff:g id="date1" example="December 31, 2007">%2$s</xliff:g>, <xliff:g id="time1" example="8am">%3$s</xliff:g> \u2013 <xliff:g id="weekday2" example="Tuesday">%4$s</xliff:g>, <xliff:g id="date2" example="January 1, 2008">%5$s</xliff:g>, <xliff:g id="time2" example="5pm">%6$s</xliff:g>"</string>
@@ -1583,42 +1543,6 @@
          Example: "8:00 - 11:00 am, Mon" -->
     <string name="time_wday">"<xliff:g id="time_range" example="8:00 - 11:00 am">%1$s</xliff:g>, <xliff:g id="weekday" example="Mon">%2$s</xliff:g>"</string>
 
-    <!-- Date format string used in contexts where the user has said they
-         want the month first, as used in the USA, with the month fully
-         spelled out.  You can remove the comma or add a period,
-         or make other punctuation changes appropriate for your locale. -->
-    <string name="full_date_month_first" format="date"><xliff:g id="month" example="December">MMMM</xliff:g> <xliff:g id="day" example="31">d</xliff:g>, <xliff:g id="year" example="1972">yyyy</xliff:g></string>
-
-    <!-- Date format string used in contexts where the user has said they
-         want the day of the month first, as used in Europe, with the month
-         fully spelled out.  You can remove the comma or add a period,
-         or make other punctuation changes appropriate for your locale. -->
-    <string name="full_date_day_first" format="date"><xliff:g id="day" example="31">d</xliff:g> <xliff:g id="month" example="December">MMMM</xliff:g>, <xliff:g id="year" example="1972">yyyy</xliff:g></string>
-
-    <!-- Date format string used in contexts where the user has said they
-         want the month first, as used in the USA, with the month
-         abbreviated.  You can remove the comma or add a period,
-         or make other punctuation changes appropriate for your locale. -->
-    <string name="medium_date_month_first" format="date"><xliff:g id="month" example="Dec.">MMM</xliff:g> <xliff:g id="day" example="31">d</xliff:g>, <xliff:g id="year" example="1972">yyyy</xliff:g></string>
-
-    <!-- Date format string used in contexts where the user has said they
-         want the day of the month first, as used in Europe, with the month
-         abbreviated.  You can remove the comma or add a period,
-         or make other punctuation changes appropriate for your locale. -->
-    <string name="medium_date_day_first" format="date"><xliff:g id="day" example="31">d</xliff:g> <xliff:g id="month" example="December">MMM</xliff:g>, <xliff:g id="year" example="1972">yyyy</xliff:g></string>
-
-    <!-- Time format string used in the status bar when the user has said they
-         want a 12-hour clock with AM and PM.
-         You can remove the colon
-         or make other punctuation changes appropriate for your locale. -->
-    <string name="twelve_hour_time_format" format="date"><xliff:g id="hour" example="11">h</xliff:g>:<xliff:g id="minute" example="59">mm</xliff:g> <xliff:g id="ampm" example="AM">a</xliff:g></string>
-
-    <!-- Time format string used in the status bar when the user has said they
-         want a 24-hour clock.
-         You can remove the colon
-         or make other punctuation changes appropriate for your locale. -->
-    <string name="twenty_four_hour_time_format" format="date"><xliff:g id="hour" example="23">HH</xliff:g>:<xliff:g id="minute" example="59">mm</xliff:g></string>
-
     <!-- Quoted name for 12pm, lowercase -->
     <string name="noon">"noon"</string>
     <!-- Quoted name for 12pm, uppercase first letter -->
@@ -1628,29 +1552,6 @@
     <!-- Quoted name for 12am, uppercase first letter -->
     <string name="Midnight">"Midnight"</string>
 
-    <!-- Date format for month and day of month.
-         Example: "October 9". -->
-    <string name="month_day">"<xliff:g id="month" example="October">%B</xliff:g> <xliff:g id="day" example="9">%-d</xliff:g>"</string>
-
-    <!-- Date format for month alone.
-         Example: "October" -->
-    <string name="month">"<xliff:g id="month" example="October">%B</xliff:g>"</string>
-
-    <!-- Date format for month, day, and year.
-         Example: "October 9, 2007" -->
-    <string name="month_day_year">"<xliff:g id="month" example="October">%B</xliff:g> <xliff:g id="day" example="9">%-d</xliff:g>, <xliff:g id="year" example="2007">%Y</xliff:g>"</string>
-
-    <!-- Date format for month and year.
-         Example: "October 2007" -->
-    <string name="month_year">"<xliff:g id="month" example="October">%B</xliff:g> <xliff:g id="year" example="2007">%Y</xliff:g>"</string>
-
-    <!-- A format string for 24-hour time of day (example "23:59"). -->
-    <string name="time_of_day">"<xliff:g id="hour" example="23">%H</xliff:g>:<xliff:g id="minute" example="59">%M</xliff:g>:<xliff:g id="second" example="59">%S</xliff:g>"</string>
-
-    <!-- Format string for date and 24-hour time of day.
-         Example: 23:59:15 Jan 31 2008 -->
-    <string name="date_and_time">"<xliff:g id="hour" example="23">%H</xliff:g>:<xliff:g id="minute" example="59">%M</xliff:g>:<xliff:g id="second" example="59">%S</xliff:g> <xliff:g id="month" example="Jan">%B</xliff:g> <xliff:g id="day" example="31">%-d</xliff:g>, <xliff:g id="year" example="2008">%Y</xliff:g>"</string>
-
     <!-- Format indicating a range of dates in the same year.
          Example: "Oct 31 - Nov 3" -->
     <string name="same_year_md1_md2">"<xliff:g id="month1" example="Oct">%2$s</xliff:g> <xliff:g id="day1" example="31">%3$s</xliff:g> \u2013 <xliff:g id="month2" example="Nov">%7$s</xliff:g> <xliff:g id="day2" example="3">%8$s</xliff:g>"</string>
@@ -1749,312 +1650,7 @@
           Example: "Tue, Oct 9, 2007, 8:00am - Wed, Oct 10, 2007, 5:00pm" -->
     <string name="same_month_wday1_mdy1_time1_wday2_mdy2_time2">"<xliff:g id="weekday1" example="Wed">%1$s</xliff:g>, <xliff:g id="month1" example="Oct">%2$s</xliff:g> <xliff:g id="day1" example="31">%3$s</xliff:g>, <xliff:g id="year1" example="2007">%4$s</xliff:g>, <xliff:g id="time1" example="8:00am">%5$s</xliff:g> \u2013 <xliff:g id="weekday2" example="Sat">%6$s</xliff:g>, <xliff:g id="month2" example="Nov">%7$s</xliff:g> <xliff:g id="day2" example="3">%8$s</xliff:g>, <xliff:g id="year2" example="2007">%9$s</xliff:g>, <xliff:g id="time2" example="5:00pm">%10$s</xliff:g>"</string>
 
-    <!-- Format string for abbreviated month, day, and year.
-         Example: "Oct 9, 2007" -->
-    <string name="abbrev_month_day_year">"<xliff:g id="month" example="Oct">%b</xliff:g> <xliff:g id="day" example="9">%-d</xliff:g>, <xliff:g id="year" example="2007">%Y</xliff:g>"</string>
-
-    <!-- Format string for abbreviated month and year.
-         Example: "Oct 2007" -->
-    <string name="abbrev_month_year">"<xliff:g id="month" example="Oct">%b</xliff:g> <xliff:g id="year" example="2007">%Y</xliff:g>"</string>
-
-    <!-- Format string for abbreviated month and day.
-         Example: "Oct 9" -->
-    <string name="abbrev_month_day">"<xliff:g id="month" example="Oct">%b</xliff:g> <xliff:g id="day" example="31">%-d</xliff:g>"</string>
-
-    <!-- Format string for abbreviated month alone.
-         Example: "Oct" -->
-    <string name="abbrev_month">"<xliff:g id="month" example="Oct">%b</xliff:g>"</string>
-
-    <!-- The full spelled out version of the day of the week. -->
-    <string name="day_of_week_long_sunday">Sunday</string>
-
-    <!-- The full spelled out version of the day of the week. -->
-    <string name="day_of_week_long_monday">Monday</string>
-
-    <!-- The full spelled out version of the day of the week. -->
-    <string name="day_of_week_long_tuesday">Tuesday</string>
-
-    <!-- The full spelled out version of the day of the week. -->
-    <string name="day_of_week_long_wednesday">Wednesday</string>
-
-    <!-- The full spelled out version of the day of the week. -->
-    <string name="day_of_week_long_thursday">Thursday</string>
-
-    <!-- The full spelled out version of the day of the week. -->
-    <string name="day_of_week_long_friday">Friday</string>
-
-    <!-- The full spelled out version of the day of the week. -->
-    <string name="day_of_week_long_saturday">Saturday</string>
-
-
-    <!-- An abbreviated day of the week.  Three characters typically in western languages.
-         In US English: "Sun" stands for Sunday -->
-    <string name="day_of_week_medium_sunday">Sun</string>
-
-    <!-- An abbreviated day of the week.  Three characters typically in western languages.
-         In US English: "Mon" stands for Monday -->
-    <string name="day_of_week_medium_monday">Mon</string>
-
-    <!-- An abbreviated day of the week.  Three characters typically in western languages.
-         In US English: "Tue" stands for Tuesday -->
-    <string name="day_of_week_medium_tuesday">Tue</string>
-
-    <!-- An abbreviated day of the week.  Three characters typically in western languages.
-         In US English: "Wed" stands for Wednesday -->
-    <string name="day_of_week_medium_wednesday">Wed</string>
-
-    <!-- An abbreviated day of the week.  Three characters typically in western languages.
-         In US English: "Thu" stands for Thursday -->
-    <string name="day_of_week_medium_thursday">Thu</string>
-
-    <!-- An abbreviated day of the week.  Three characters typically in western languages.
-         In US English: "Fri" stands for Friday -->
-    <string name="day_of_week_medium_friday">Fri</string>
-
-    <!-- An abbreviated day of the week.  Three characters typically in western languages.
-         In US English: "Sat" stands for Saturday -->
-    <string name="day_of_week_medium_saturday">Sat</string>
-
-
-    <!-- An abbreviated day of the week.  Two characters typically in western languages.
-         In US English: "Su" stands for Sunday -->
-    <string name="day_of_week_short_sunday">Su</string>
-
-    <!-- An abbreviated day of the week.  Two characters typically in western languages.
-         In US English: "Mo" stands for Monday -->
-    <string name="day_of_week_short_monday">Mo</string>
-
-    <!-- An abbreviated day of the week.  Two characters typically in western languages.
-         In US English: "Tu" stands for Tuesday -->
-    <string name="day_of_week_short_tuesday">Tu</string>
-
-    <!-- An abbreviated day of the week.  Two characters typically in western languages.
-         In US English: "We" stands for Wednesday -->
-    <string name="day_of_week_short_wednesday">We</string>
-
-    <!-- An abbreviated day of the week.  Two characters typically in western languages.
-         In US English: "Th" stands for Thursday -->
-    <string name="day_of_week_short_thursday">Th</string>
-
-    <!-- An abbreviated day of the week.  Two characters typically in western languages.
-         In US English: "Fr" stands for Friday -->
-    <string name="day_of_week_short_friday">Fr</string>
-
-    <!-- An abbreviated day of the week.  Two characters typically in western languages.
-         In US English: "Sa" stands for Saturday -->
-    <string name="day_of_week_short_saturday">Sa</string>
-
-
-    <!-- An abbreviated day of the week.  One character if that is unique.  Two if necessary.
-         In US English: "Su" stands for Sunday -->
-    <string name="day_of_week_shorter_sunday">Su</string>
-
-    <!-- An abbreviated day of the week.  One character if that is unique.  Two if necessary.
-         In US English: "M" stands for Monday -->
-    <string name="day_of_week_shorter_monday">M</string>
-
-    <!-- An abbreviated day of the week.  One character if that is unique.  Two if necessary.
-         In US English: "Tu" stands for Tuesday -->
-    <string name="day_of_week_shorter_tuesday">Tu</string>
-
-    <!-- An abbreviated day of the week.  One character if that is unique.  Two if necessary.
-         In US English: "W" stands for Wednesday -->
-    <string name="day_of_week_shorter_wednesday">W</string>
-
-    <!-- An abbreviated day of the week.  One character if that is unique.  Two if necessary.
-         In US English: "Th" stands for Thursday -->
-    <string name="day_of_week_shorter_thursday">Th</string>
-
-    <!-- An abbreviated day of the week.  One character if that is unique.  Two if necessary.
-         In US English: "F" stands for Friday -->
-    <string name="day_of_week_shorter_friday">F</string>
-
-    <!-- An abbreviated day of the week.  One character if that is unique.  Two if necessary.
-         In US English: "Sa" stands for Saturday -->
-    <string name="day_of_week_shorter_saturday">Sa</string>
-
-
-    <!-- An abbreviated day of the week.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "S" stands for Sunday -->
-    <string name="day_of_week_shortest_sunday">S</string>
-
-    <!-- An abbreviated day of the week.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "M" stands for Monday -->
-    <string name="day_of_week_shortest_monday">M</string>
-
-    <!-- An abbreviated day of the week.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "T" stands for Tuesday -->
-    <string name="day_of_week_shortest_tuesday">T</string>
-
-    <!-- An abbreviated day of the week.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "W" stands for Wednesday -->
-    <string name="day_of_week_shortest_wednesday">W</string>
-
-    <!-- An abbreviated day of the week.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "T" stands for Thursday -->
-    <string name="day_of_week_shortest_thursday">T</string>
-
-    <!-- An abbreviated day of the week.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "F" stands for Friday -->
-    <string name="day_of_week_shortest_friday">F</string>
-
-    <!-- An abbreviated day of the week.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "S" stands for Saturday -->
-    <string name="day_of_week_shortest_saturday">S</string>
-
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_january">January</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_february">February</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_march">March</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_april">April</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_may">May</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_june">June</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_july">July</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_august">August</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_september">September</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_october">October</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_november">November</string>
-
-    <!-- The full spelled out version of the month. -->
-    <string name="month_long_december">December</string>
-
-
-    <!-- An abbreviated month name.
-        In US English: "Jan" stands for January. -->
-    <string name="month_medium_january">Jan</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Feb" stands for February. -->
-    <string name="month_medium_february">Feb</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Mar" stands for March. -->
-    <string name="month_medium_march">Mar</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Apr" stands for April. -->
-    <string name="month_medium_april">Apr</string>
-
-    <!-- An abbreviated month name.
-        In US English: "May" stands for May. -->
-    <string name="month_medium_may">May</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Jun" stands for June. -->
-    <string name="month_medium_june">Jun</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Jul" stands for July. -->
-    <string name="month_medium_july">Jul</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Aug" stands for August. -->
-    <string name="month_medium_august">Aug</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Sep" stands for September. -->
-    <string name="month_medium_september">Sep</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Oct" stands for October. -->
-    <string name="month_medium_october">Oct</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Nov" stands for November. -->
-    <string name="month_medium_november">Nov</string>
-
-    <!-- An abbreviated month name.
-        In US English: "Dec" stands for December. -->
-    <string name="month_medium_december">Dec</string>
-
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "J" stands for January -->
-    <string name="month_shortest_january">J</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-        In US English: "F" stands for February. -->
-    <string name="month_shortest_february">F</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "M" stands for March. -->
-    <string name="month_shortest_march">M</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "A" stands for April. -->
-    <string name="month_shortest_april">A</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "M" stands for May. -->
-    <string name="month_shortest_may">M</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "J" stands for June. -->
-    <string name="month_shortest_june">J</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "J" stands for July. -->
-    <string name="month_shortest_july">J</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "A" stands for August. -->
-    <string name="month_shortest_august">A</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "S" stands for September. -->
-    <string name="month_shortest_september">S</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "O" stands for October. -->
-    <string name="month_shortest_october">O</string>
-
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "N" stands for November. -->
-    <string name="month_shortest_november">N</string>
 
-    <!-- An abbreviated month name.  One character long if it makes sense.  Does not have
-         to be unique.
-         In US English: "D" stands for December. -->
-    <string name="month_shortest_december">D</string>
 
     <!-- Format string for durations like "01:23" (1 minute, 23 seconds) -->
     <string name="elapsed_time_short_format_mm_ss"><xliff:g id="minutes" example="1">%1$02d</xliff:g>:<xliff:g id="seconds" example="23">%2$02d</xliff:g></string>
diff --git a/core/res/res/values/themes.xml b/core/res/res/values/themes.xml
index 9567523..b168fb8 100644
--- a/core/res/res/values/themes.xml
+++ b/core/res/res/values/themes.xml
@@ -50,6 +50,7 @@
         <item name="textColorSecondaryInverseNoDisable">@android:color/secondary_text_light_nodisable</item>
         <item name="textColorHint">@android:color/hint_foreground_dark</item>
         <item name="textColorHintInverse">@android:color/hint_foreground_light</item>
+        <item name="textColorSearchUrl">@android:color/search_url_text</item>
 
         <item name="textAppearanceLarge">@android:style/TextAppearance.Large</item>
         <item name="textAppearanceMedium">@android:style/TextAppearance.Medium</item>
diff --git a/tests/sketch/AndroidManifest.xml b/tests/sketch/AndroidManifest.xml
index c44b54e..1f4333c 100755
--- a/tests/sketch/AndroidManifest.xml
+++ b/tests/sketch/AndroidManifest.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 2008-2009 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.
@@ -14,11 +14,12 @@
      limitations under the License.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-      package="com.android.gesture"
+      package="com.android.gesture.example"
       android:versionCode="1"
       android:versionName="1.0.0">
+      <uses-permission android:name="android.permission.READ_CONTACTS" />
       <application android:icon="@drawable/icon" android:label="@string/app_name">
-        <activity android:name="com.android.gesture.example.GestureEntryDemo"
+        <activity android:name="com.android.gesture.example.GestureEntry"
                   android:label="@string/app_name">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
@@ -26,5 +27,12 @@
             </intent-filter>
         </activity>
         <activity android:name="com.android.gesture.example.GestureLibViewer"/>
+        <activity android:name="com.android.gesture.example.ContactListGestureOverlay"
+                  android:label="@string/overlay_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
     </application>
 </manifest> 
diff --git a/tests/sketch/res/layout/demo.xml b/tests/sketch/res/layout/demo.xml
old mode 100755
new mode 100644
index e516229..8c9161a
--- a/tests/sketch/res/layout/demo.xml
+++ b/tests/sketch/res/layout/demo.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 2009 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.
@@ -13,6 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
+
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
@@ -24,7 +25,7 @@
         android:drawSelectorOnTop="true"
         android:prompt="@string/recognition_result"/>
     
-    <com.android.gesture.GesturePad 
+    <com.android.gesture.GestureOverlay 
         android:id="@+id/drawingpad"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
diff --git a/tests/sketch/res/layout/gestureviewer.xml b/tests/sketch/res/layout/gestureviewer.xml
old mode 100755
new mode 100644
index 5302d34..73d6a35
--- a/tests/sketch/res/layout/gestureviewer.xml
+++ b/tests/sketch/res/layout/gestureviewer.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 2009 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.
@@ -13,6 +13,7 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
+
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
@@ -25,7 +26,7 @@
         android:drawSelectorOnTop="true"
         android:prompt="@string/recognition_result"/>
     
-    <com.android.gesture.GesturePad 
+    <com.android.gesture.GestureOverlay 
         android:id="@+id/drawingpad"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
diff --git a/tests/sketch/res/layout/newgesture_dialog.xml b/tests/sketch/res/layout/newgesture_dialog.xml
old mode 100755
new mode 100644
index 6e45d81..91e7645
--- a/tests/sketch/res/layout/newgesture_dialog.xml
+++ b/tests/sketch/res/layout/newgesture_dialog.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 2009 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.
diff --git a/tests/sketch/res/layout/overlaydemo.xml b/tests/sketch/res/layout/overlaydemo.xml
new file mode 100644
index 0000000..b6bbab3
--- /dev/null
+++ b/tests/sketch/res/layout/overlaydemo.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    >
+    <ListView
+      android:id="@+id/list" 
+      android:layout_width="fill_parent" 
+      android:layout_height="0dip"
+      android:layout_weight="1"/>
+</LinearLayout>
diff --git a/tests/sketch/res/values/strings.xml b/tests/sketch/res/values/strings.xml
index 4c6aa20..42f14da 100755
--- a/tests/sketch/res/values/strings.xml
+++ b/tests/sketch/res/values/strings.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2008 The Android Open Source Project
+<!-- Copyright (C) 2009 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.
@@ -15,6 +15,7 @@
 -->
 <resources>
     <string name="app_name">Gesture Demo</string>
+    <string name="overlay_name">Overlay Demo</string>  
     <string name="recognition_result">Recognition Result</string>
     <string name="clear">Clear</string>
     <string name="newgesture">Add</string>
diff --git a/tests/sketch/src/com/android/gesture/Gesture.java b/tests/sketch/src/com/android/gesture/Gesture.java
index 29c07ad..a5e7a25 100755
--- a/tests/sketch/src/com/android/gesture/Gesture.java
+++ b/tests/sketch/src/com/android/gesture/Gesture.java
@@ -18,343 +18,290 @@
 
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
-import android.graphics.Matrix;
 import android.graphics.Paint;
 import android.graphics.Path;
-import android.graphics.PointF;
 import android.graphics.RectF;
 import android.os.Parcel;
 import android.os.Parcelable;
 
-import com.android.gesture.recognizer.RecognitionUtil;
-
 import org.xmlpull.v1.XmlSerializer;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.StringTokenizer;
 
 /**
- * A single stroke gesture.
+ * A gesture can have a single or multiple strokes
  */
 
 public class Gesture implements Parcelable {
 
-    private RectF mBBX;
-    private float mLength = 0;
-    private int mColor;
-    private float mWidth;
-    private ArrayList<PointF> mPtsBuffer = new ArrayList<PointF>();
-    private long mTimestamp = 0;
-    private long mID;
-    
-    private static final long systemStartupTime = System.currentTimeMillis();
-    private static int instanceCount = 0; 
+    private static final long GESTURE_ID_BASE = System.currentTimeMillis();
+
+    private static final int BITMAP_RENDERING_WIDTH = 2;
+
+    private static final boolean BITMAP_RENDERING_ANTIALIAS = true;
+
+    private static final boolean BITMAP_RENDERING_DITHER = true;
+
+    private static int sGestureCount = 0;
+
+    private RectF mBoundingBox;
+
+    // the same as its instance ID
+    private long mGestureID;
+
+    private ArrayList<GestureStroke> mStrokes = new ArrayList<GestureStroke>();
 
     public Gesture() {
-        mID = systemStartupTime + instanceCount++;
-    }
-
-    public void setColor(int c) {
-        mColor = c;
-    }
-    
-    public void setStrokeWidth(float w) {
-        mWidth = w;
-    }
-    
-    public int getColor() {
-        return mColor;
-    }
-    
-    public float getStrokeWidth() {
-        return mWidth;
-    }
-  
-    public ArrayList<PointF> getPoints() {
-        return this.mPtsBuffer;
-    }
-  
-    public int numOfPoints() {
-        return this.mPtsBuffer.size();
-    }
-
-    public void addPoint(float x, float y) {
-        mPtsBuffer.add(new PointF(x, y));
-        if (mBBX == null) {
-            mBBX = new RectF();
-            mBBX.top = y;
-            mBBX.left = x;
-            mBBX.right = x;
-            mBBX.bottom = y;
-            mLength = 0;
-        }
-        else {
-            PointF lst = mPtsBuffer.get(mPtsBuffer.size()-2);
-            mLength += Math.sqrt(Math.pow(x-lst.x, 2)+Math.pow(y-lst.y, 2));
-            mBBX.union(x, y);
-        }
-        mTimestamp = System.currentTimeMillis();
+        mGestureID = GESTURE_ID_BASE + sGestureCount++;
     }
 
     /**
+     * @return all the strokes of the gesture
+     */
+    public ArrayList<GestureStroke> getStrokes() {
+        return mStrokes;
+    }
+
+    /**
+     * @return the number of strokes included by this gesture
+     */
+    public int getStrokesCount() {
+        return mStrokes.size();
+    }
+
+    /**
+     * Add a stroke to the gesture
+     * 
+     * @param stroke
+     */
+    public void addStroke(GestureStroke stroke) {
+        mStrokes.add(stroke);
+
+        if (mBoundingBox == null) {
+            mBoundingBox = new RectF(stroke.boundingBox);
+        } else {
+            mBoundingBox.union(stroke.boundingBox);
+        }
+    }
+
+    /**
+     * Get the total length of the gesture. When there are multiple strokes in
+     * the gesture, this returns the sum of the lengths of all the strokes
+     * 
      * @return the length of the gesture
      */
     public float getLength() {
-        return this.mLength;
+        int len = 0;
+        ArrayList<GestureStroke> strokes = mStrokes;
+        int count = strokes.size();
+        for (int i = 0; i < count; i++) {
+            GestureStroke stroke = strokes.get(i);
+            len += stroke.length;
+        }
+        return len;
     }
-  
-    public RectF getBBX() {
-        return mBBX;
+
+    /**
+     * @return the bounding box of the gesture
+     */
+    public RectF getBoundingBox() {
+        return mBoundingBox;
     }
-  
-    public void setID(long id) {
-        mID = id;
+
+    /**
+     * Set the id of the gesture
+     * 
+     * @param id
+     */
+    void setID(long id) {
+        mGestureID = id;
     }
-    
+
+    /**
+     * @return the id of the gesture
+     */
     public long getID() {
-        return mID;
+        return mGestureID;
     }
-    
-    public long getTimeStamp() {
-        return mTimestamp;
-    }
-    
-    public void setTimestamp(long t) {
-  	    this.mTimestamp = t;
-    }
-    
+
     /**
      * draw the gesture
+     * 
      * @param canvas
      */
-    public void draw(Canvas canvas) {
-        Paint paint = new Paint();
-        paint.setAntiAlias(true);
-        paint.setDither(true);
-        paint.setColor(mColor);
-        paint.setStyle(Paint.Style.STROKE);
-        paint.setStrokeJoin(Paint.Join.ROUND);
-        paint.setStrokeCap(Paint.Cap.ROUND);
-        paint.setStrokeWidth(mWidth);
-        
-        Path path = null;
-        float mX = 0, mY = 0;
-        Iterator<PointF> it = mPtsBuffer.iterator();
-        while (it.hasNext()) {
-          PointF p = it.next();
-          float x = p.x;
-          float y = p.y;
-          if (path == null) {
-            path = new Path();
-            path.moveTo(x, y);
-            mX = x;
-            mY = y;
-          } else {
-            float dx = Math.abs(x - mX);
-            float dy = Math.abs(y - mY);
-            if (dx >= 3 || dy >= 3) {
-                path.quadTo(mX, mY, (x + mX)/2, (y + mY)/2);
-                mX = x;
-                mY = y;
-            }
-          }
+    void draw(Canvas canvas, Paint paint) {
+        ArrayList<GestureStroke> strokes = mStrokes;
+        int count = strokes.size();
+        for (int i = 0; i < count; i++) {
+            GestureStroke stroke = strokes.get(i);
+            stroke.draw(canvas, paint);
         }
-        
-        canvas.drawPath(path, paint);
     }
-    
+
     /**
-     * convert the gesture to a Path
-     * @param width the width of the bounding box of the target path
-     * @param height the height of the bounding box of the target path
-     * @param numSample the num of points needed
-     * @return the path
-     */
-    public Path toPath(float width, float height, int numSample) {
-        float[] pts = RecognitionUtil.resample(this, numSample);
-        RectF rect = this.getBBX();
-        float scale = height / rect.height();
-        Matrix matrix = new Matrix();
-        matrix.setTranslate(-rect.left, -rect.top);
-        Matrix scalem = new Matrix();
-        scalem.setScale(scale, scale);
-        matrix.postConcat(scalem);
-        Matrix translate = new Matrix();
-        matrix.postConcat(translate);
-        matrix.mapPoints(pts);
-        
-        Path path = null;
-        float mX = 0, mY = 0;
-        for (int i=0; i<pts.length-1; i+=2) {
-          float x = pts[i];
-          float y = pts[i+1];
-          if (path == null) {
-            path = new Path();
-            path.moveTo(x, y);
-            mX = x;
-            mY = y;
-          } else {
-            float dx = Math.abs(x - mX);
-            float dy = Math.abs(y - mY);
-            if (dx >= 3 || dy >= 3) {
-                path.quadTo(mX, mY, (x + mX)/2, (y + mY)/2);
-                mX = x;
-                mY = y;
-            }
-          }
-        }
-        return path;
-    }
-  
-    /**
-     * get a bitmap thumbnail of the gesture with a transparent background
-     * @param w
-     * @param h
-     * @param edge
+     * Create a bitmap of the gesture with a transparent background
+     * 
+     * @param width width of the target bitmap
+     * @param height height of the target bitmap
+     * @param edge the edge
      * @param numSample
-     * @param foreground
-     * @return
+     * @param color
+     * @return the bitmap
      */
-    public Bitmap toBitmap(int w, int h, 
-        int edge, int numSample) {
-        RectF bbx = this.getBBX();
-        Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
-        Path path = this.toPath(w - 2 * edge, h - 2 * edge, numSample);
-        Canvas c = new Canvas(bitmap);
-        //c.drawColor(background);
-        c.translate(edge, edge);
+    public Bitmap toBitmap(int width, int height, int edge, int numSample, int color) {
+        RectF bbx = getBoundingBox();
+        Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+        Canvas canvas = new Canvas(bitmap);
+        canvas.translate(edge, edge);
         Paint paint = new Paint();
-        paint.setAntiAlias(true);
-        paint.setDither(true);
-        paint.setColor(mColor);
+        paint.setAntiAlias(BITMAP_RENDERING_ANTIALIAS);
+        paint.setDither(BITMAP_RENDERING_DITHER);
+        paint.setColor(color);
         paint.setStyle(Paint.Style.STROKE);
         paint.setStrokeJoin(Paint.Join.ROUND);
         paint.setStrokeCap(Paint.Cap.ROUND);
-        paint.setStrokeWidth(2);
-        c.drawPath(path, paint);
+        paint.setStrokeWidth(BITMAP_RENDERING_WIDTH);
+        ArrayList<GestureStroke> strokes = mStrokes;
+        int count = strokes.size();
+        for (int i = 0; i < count; i++) {
+            GestureStroke stroke = strokes.get(i);
+            Path path = stroke.toPath(width - 2 * edge, height - 2 * edge, numSample);
+            canvas.drawPath(path, paint);
+        }
+
         return bitmap;
     }
-    
+
     /**
-     * save the gesture as XML
+     * Create a bitmap of the gesture with a transparent background
+     * 
+     * @param width
+     * @param height
+     * @param edge
+     * @param color
+     * @return the bitmap
+     */
+    public Bitmap toBitmap(int width, int height, int edge, int color) {
+        RectF bbx = getBoundingBox();
+        Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+        Canvas canvas = new Canvas(bitmap);
+        canvas.translate(edge, edge);
+        Paint paint = new Paint();
+        paint.setAntiAlias(BITMAP_RENDERING_ANTIALIAS);
+        paint.setDither(BITMAP_RENDERING_DITHER);
+        paint.setColor(color);
+        paint.setStyle(Paint.Style.STROKE);
+        paint.setStrokeJoin(Paint.Join.ROUND);
+        paint.setStrokeCap(Paint.Cap.ROUND);
+        paint.setStrokeWidth(BITMAP_RENDERING_WIDTH);
+        ArrayList<GestureStroke> strokes = mStrokes;
+        int count = strokes.size();
+        for (int i = 0; i < count; i++) {
+            GestureStroke stroke = strokes.get(i);
+            stroke.draw(canvas, paint);
+        }
+
+        return bitmap;
+    }
+
+    /**
+     * Save the gesture as XML
+     * 
      * @param namespace
      * @param serializer
      * @throws IOException
      */
-    public void toXML(String namespace, XmlSerializer serializer) throws IOException {
-        serializer.startTag(namespace, "stroke");
-        serializer.attribute(namespace, "timestamp", Long.toString(mTimestamp));
-        serializer.attribute(namespace, "id", Long.toString(mID));
-        serializer.attribute(namespace, "color", Integer.toString(mColor));
-        serializer.attribute(namespace, "width", Float.toString(mWidth));
-        Iterator it = this.mPtsBuffer.iterator();
-        String pts = "";
-        while (it.hasNext()) {
-        	PointF fp = (PointF)it.next();
-        	if (pts.length() > 0)
-        		pts += ",";
-        	pts += fp.x + "," + fp.y;
+    void toXML(String namespace, XmlSerializer serializer) throws IOException {
+        serializer.startTag(namespace, GestureConstants.XML_TAG_GESTURE);
+        serializer.attribute(namespace, GestureConstants.XML_TAG_ID, Long.toString(mGestureID));
+        ArrayList<GestureStroke> strokes = mStrokes;
+        int count = strokes.size();
+        for (int i = 0; i < count; i++) {
+            GestureStroke stroke = strokes.get(i);
+            stroke.toXML(namespace, serializer);
         }
-        serializer.text(pts);
-        serializer.endTag(namespace, "stroke");
+        serializer.endTag(namespace, GestureConstants.XML_TAG_GESTURE);
     }
-    
-    
+
+    /**
+     * Create the gesture from a string
+     * 
+     * @param str
+     */
     public void createFromString(String str) {
-        StringTokenizer st = new StringTokenizer(str, "#");
-        
-        String para = st.nextToken();
-        StringTokenizer innerst = new StringTokenizer(para, ",");
-        this.mBBX = new RectF();
-        this.mBBX.left = Float.parseFloat(innerst.nextToken());
-        this.mBBX.top = Float.parseFloat(innerst.nextToken());
-        this.mBBX.right = Float.parseFloat(innerst.nextToken());
-        this.mBBX.bottom = Float.parseFloat(innerst.nextToken());
-        
-        para = st.nextToken();
-        innerst = new StringTokenizer(para, ",");
-        while (innerst.hasMoreTokens()) {
-          String s = innerst.nextToken().trim();
-          if (s.length()==0)
-            break;
-          float x = Float.parseFloat(s);
-          float y = Float.parseFloat(innerst.nextToken());
-          this.mPtsBuffer.add(new PointF(x, y));
+        int startIndex = 0;
+        int endIndex;
+        while ((endIndex = str.indexOf(GestureConstants.STRING_GESTURE_DELIIMITER, startIndex + 1)) != -1) {
+            String token = str.substring(startIndex, endIndex);
+            if (startIndex > 0) { // stroke tokens
+                addStroke(GestureStroke.createFromString(token));
+            } else { // id token
+                mGestureID = Long.parseLong(token);
+            }
+            startIndex = endIndex + 1;
         }
-  
-        para = st.nextToken();
-        this.mColor = Integer.parseInt(para);
-        
-        para = st.nextToken();
-        this.mWidth = Float.parseFloat(para);
-        
-        para = st.nextToken();
-        this.mLength = Float.parseFloat(para);
-        
-        para = st.nextToken();
-        this.mTimestamp = Long.parseLong(para);
     }
-    
+
+    /**
+     * Convert the gesture to string
+     */
     @Override
     public String toString() {
-        String str = "";
-        
-        str += "#" + this.mBBX.left + "," + this.mBBX.top + "," +
-               this.mBBX.right + "," + this.mBBX.bottom;
-        
-        str += "#";
-        Iterator<PointF> it = this.mPtsBuffer.iterator();
-        while (it.hasNext()) {
-          PointF fp = it.next();
-          str += fp.x + "," + fp.y + ","; 
+        StringBuilder str = new StringBuilder();
+        str.append(mGestureID);
+        ArrayList<GestureStroke> strokes = mStrokes;
+        int count = strokes.size();
+        for (int i = 0; i < count; i++) {
+            GestureStroke stroke = strokes.get(i);
+            str.append(GestureConstants.STRING_GESTURE_DELIIMITER);
+            str.append(stroke.toString());
         }
 
-        str += "#";
-        str += this.mColor;
-        
-        str += "#";
-        str += this.mWidth;
-        
-        str += "#";
-        str += this.mLength;
-        
-        str += "#";
-        str += this.mTimestamp;
-  
-        return str;
+        return str.toString();
     }
-    
-    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
+
+    public static final Parcelable.Creator<Gesture> CREATOR = new Parcelable.Creator<Gesture>() {
         public Gesture createFromParcel(Parcel in) {
             String str = in.readString();
-            Gesture stk = new Gesture();
-            stk.createFromString(str);
-            return stk;
+            Gesture gesture = new Gesture();
+            gesture.createFromString(str);
+            return gesture;
         }
-    
+
         public Gesture[] newArray(int size) {
             return new Gesture[size];
         }
     };
-    
-    public static Gesture buildFromArray(byte[] bytes) {
+
+    /**
+     * Build a gesture from a byte array
+     * 
+     * @param bytes
+     * @return the gesture
+     */
+    static Gesture buildFromArray(byte[] bytes) {
         String str = new String(bytes);
-        Gesture stk = new Gesture();
-        stk.createFromString(str);
-        return stk;
+        Gesture gesture = new Gesture();
+        gesture.createFromString(str);
+        return gesture;
     }
-    
-    public static byte[] saveToArray(Gesture stk) {
-        String str = stk.toString();   
+
+    /**
+     * Save a gesture to a byte array
+     * 
+     * @param stroke
+     * @return the byte array
+     */
+    static byte[] saveToArray(Gesture stroke) {
+        String str = stroke.toString();
         return str.getBytes();
     }
-    
+
     public void writeToParcel(Parcel out, int flags) {
-        out.writeString(this.toString());
+        out.writeString(toString());
     }
-      
+
     public int describeContents() {
         return CONTENTS_FILE_DESCRIPTOR;
     }
diff --git a/tests/sketch/src/com/android/gesture/GestureActionListener.java b/tests/sketch/src/com/android/gesture/GestureActionListener.java
new file mode 100644
index 0000000..130ac19
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/GestureActionListener.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+
+public interface GestureActionListener {
+    public void onGesturePerformed(GestureOverlay overlay, Gesture gesture);
+}
diff --git a/tests/sketch/src/com/android/gesture/GestureAdapter.java b/tests/sketch/src/com/android/gesture/GestureAdapter.java
new file mode 100644
index 0000000..3cf9b4c
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/GestureAdapter.java
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+import android.graphics.Color;
+import android.view.MotionEvent;
+import android.view.View;
+
+import java.util.ArrayList;
+
+public class GestureAdapter implements GestureListener {
+
+    public static final int SINGLE_STROKE = 0;
+
+    public static final int MULTIPLE_STROKE = 1;
+
+    private static final float STROKE_LENGTH_THRESHOLD = 100;
+
+    private static final float SQUARENESS_THRESHOLD = 0.24f;
+
+    private static final int UNCERTAIN_GESTURE_COLOR = Color.argb(60, 255, 255, 0);
+
+    private boolean mIsGesturing = false;
+
+    private float mTotalLength;
+
+    private float mX, mY;
+
+    private View mModel;
+
+    private int mGestureType = SINGLE_STROKE;
+
+    private ArrayList<GestureActionListener> mActionListeners = new ArrayList<GestureActionListener>();
+
+    public GestureAdapter(View model) {
+        mModel = model;
+    }
+
+    public void setGestureType(int type) {
+        mGestureType = type;
+    }
+
+    public void onStartGesture(GestureOverlay overlay, MotionEvent event) {
+        if (mGestureType == MULTIPLE_STROKE) {
+            overlay.cancelFadingOut();
+        }
+        mX = event.getX();
+        mY = event.getY();
+        mTotalLength = 0;
+        mIsGesturing = false;
+        if (mGestureType == SINGLE_STROKE || overlay.getCurrentGesture() == null
+                || overlay.getCurrentGesture().getStrokesCount() == 0) {
+            overlay.setGestureColor(UNCERTAIN_GESTURE_COLOR);
+        }
+        mModel.dispatchTouchEvent(event);
+    }
+
+    public void onGesture(GestureOverlay overlay, MotionEvent event) {
+        if (mIsGesturing) {
+            return;
+        }
+        float x = event.getX();
+        float y = event.getY();
+        float dx = x - mX;
+        float dy = y - mY;
+        mTotalLength += (float)Math.sqrt(dx * dx + dy * dy);
+        mX = x;
+        mY = y;
+
+        if (mTotalLength > STROKE_LENGTH_THRESHOLD) {
+            OrientedBoundingBox bbx = GestureUtils.computeOrientedBBX(overlay.getCurrentStroke());
+            if (bbx.squareness > SQUARENESS_THRESHOLD) {
+                mIsGesturing = true;
+                overlay.setGestureColor(GestureOverlay.DEFAULT_GESTURE_COLOR);
+                event = MotionEvent.obtain(event.getDownTime(), System.currentTimeMillis(),
+                        MotionEvent.ACTION_UP, x, y, event.getPressure(), event.getSize(), event
+                                .getMetaState(), event.getXPrecision(), event.getYPrecision(),
+                        event.getDeviceId(), event.getEdgeFlags());
+            }
+        }
+        mModel.dispatchTouchEvent(event);
+    }
+
+    public void onFinishGesture(GestureOverlay overlay, MotionEvent event) {
+        if (mIsGesturing) {
+            overlay.clear(true);
+            ArrayList<GestureActionListener> listeners = mActionListeners;
+            int count = listeners.size();
+            for (int i = 0; i < count; i++) {
+                GestureActionListener listener = listeners.get(i);
+                listener.onGesturePerformed(overlay, overlay.getCurrentGesture());
+            }
+        } else {
+            mModel.dispatchTouchEvent(event);
+            overlay.clear(false);
+        }
+    }
+
+    public void addGestureActionListener(GestureActionListener listener) {
+        mActionListeners.add(listener);
+    }
+
+    public void removeGestureActionListener(GestureActionListener listener) {
+        mActionListeners.remove(listener);
+    }
+
+    public boolean isGesturing() {
+        return mIsGesturing;
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/GestureConstants.java b/tests/sketch/src/com/android/gesture/GestureConstants.java
new file mode 100644
index 0000000..0e17c8a
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/GestureConstants.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2009 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.gesture;
+
+interface GestureConstants {
+    static final String XML_TAG_LIBRARY = "library";
+    static final String XML_TAG_ENTRY = "entry";
+    static final String XML_TAG_GESTURE = "gesture";
+    static final String XML_TAG_STROKE = "stroke";
+    static final String XML_TAG_ID = "id";
+    static final String XML_TAG_NAME = "name";
+    static final String STRING_GESTURE_DELIIMITER = "#";
+    static final String STRING_STROKE_DELIIMITER = ",";
+    static final int STROKE_STRING_BUFFER_SIZE = 1024;
+    static final int STROKE_POINT_BUFFER_SIZE = 100; // number of points
+    static final int IO_BUFFER_SIZE = 8 * 1024; // 8K
+}
diff --git a/tests/sketch/src/com/android/gesture/GestureLibrary.java b/tests/sketch/src/com/android/gesture/GestureLibrary.java
new file mode 100644
index 0000000..32c1ac4
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/GestureLibrary.java
@@ -0,0 +1,332 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+import android.util.Config;
+import android.util.Log;
+import android.util.Xml;
+import android.util.Xml.Encoding;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.Locator;
+import org.xml.sax.SAXException;
+import org.xmlpull.v1.XmlSerializer;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Set;
+
+/**
+ * GestureLibrary maintains gesture examples and makes predictions on a new
+ * gesture
+ */
+public class GestureLibrary {
+
+    public static final int SEQUENCE_INVARIANT = 1;
+
+    public static final int SEQUENCE_SENSITIVE = 2;
+
+    private int mSequenceType = SEQUENCE_SENSITIVE;
+
+    public static final int ORIENTATION_INVARIANT = 1;
+
+    public static final int ORIENTATION_SENSITIVE = 2;
+
+    private int mOrientationStyle = ORIENTATION_SENSITIVE;
+
+    private static final String LOGTAG = "GestureLibrary";
+
+    private static final String NAMESPACE = "";
+
+    private final String mGestureFileName;
+
+    private HashMap<String, ArrayList<Gesture>> mEntryName2gestures = new HashMap<String, ArrayList<Gesture>>();
+
+    private Learner mClassifier;
+
+    private boolean mChanged = false;
+
+    /**
+     * @param path where gesture data is stored
+     */
+    public GestureLibrary(String path) {
+        mGestureFileName = path;
+        mClassifier = new InstanceLearner();
+    }
+
+    /**
+     * Specify whether the gesture library will handle orientation sensitive
+     * gestures. Use ORIENTATION_INVARIANT or ORIENTATION_SENSITIVE
+     * 
+     * @param style
+     */
+    public void setOrientationStyle(int style) {
+        mOrientationStyle = style;
+    }
+
+    public int getOrientationStyle() {
+        return mOrientationStyle;
+    }
+
+    public void setGestureType(int type) {
+        mSequenceType = type;
+    }
+
+    public int getGestureType() {
+        return mSequenceType;
+    }
+
+    /**
+     * Get all the gesture entry names in the library
+     * 
+     * @return a set of strings
+     */
+    public Set<String> getGestureEntries() {
+        return mEntryName2gestures.keySet();
+    }
+
+    /**
+     * Recognize a gesture
+     * 
+     * @param gesture the query
+     * @return a list of predictions of possible entries for a given gesture
+     */
+    public ArrayList<Prediction> recognize(Gesture gesture) {
+        Instance instance = Instance.createInstance(this, gesture, null);
+        return mClassifier.classify(this, instance);
+    }
+
+    /**
+     * Add a gesture for the entry
+     * 
+     * @param entryName entry name
+     * @param gesture
+     */
+    public void addGesture(String entryName, Gesture gesture) {
+        if (Config.DEBUG) {
+            Log.v(LOGTAG, "Add an example for gesture: " + entryName);
+        }
+        ArrayList<Gesture> gestures = mEntryName2gestures.get(entryName);
+        if (gestures == null) {
+            gestures = new ArrayList<Gesture>();
+            mEntryName2gestures.put(entryName, gestures);
+        }
+        gestures.add(gesture);
+        mClassifier.addInstance(Instance.createInstance(this, gesture, entryName));
+        mChanged = true;
+    }
+
+    /**
+     * Remove a gesture from the library. If there are no more gestures for the
+     * given entry, the gesture entry will be removed.
+     * 
+     * @param entryName entry name
+     * @param gesture
+     */
+    public void removeGesture(String entryName, Gesture gesture) {
+        ArrayList<Gesture> gestures = mEntryName2gestures.get(entryName);
+        if (gestures == null) {
+            return;
+        }
+
+        gestures.remove(gesture);
+
+        // if there are no more samples, remove the entry automatically
+        if (gestures.isEmpty()) {
+            mEntryName2gestures.remove(entryName);
+        }
+
+        mClassifier.removeInstance(gesture.getID());
+
+        mChanged = true;
+    }
+
+    /**
+     * Remove a entry of gestures
+     * 
+     * @param entryName the entry name
+     */
+    public void removeEntireEntry(String entryName) {
+        mEntryName2gestures.remove(entryName);
+        mClassifier.removeInstances(entryName);
+        mChanged = true;
+    }
+
+    /**
+     * Get all the gestures of an entry
+     * 
+     * @param entryName
+     * @return the list of gestures that is under this name
+     */
+    @SuppressWarnings("unchecked")
+    public ArrayList<Gesture> getGestures(String entryName) {
+        ArrayList<Gesture> gestures = mEntryName2gestures.get(entryName);
+        if (gestures != null) {
+            return (ArrayList<Gesture>)gestures.clone();
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Save the gesture library
+     */
+    public void save() {
+        if (!mChanged)
+            return;
+
+        try {
+            File file = new File(mGestureFileName);
+            if (!file.getParentFile().exists()) {
+                file.getParentFile().mkdirs();
+            }
+            if (Config.DEBUG) {
+                Log.v(LOGTAG, "Save to " + mGestureFileName);
+            }
+            BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(
+                    mGestureFileName), GestureConstants.IO_BUFFER_SIZE);
+
+            PrintWriter writer = new PrintWriter(outputStream);
+            XmlSerializer serializer = Xml.newSerializer();
+            serializer.setOutput(writer);
+            serializer.startDocument(Encoding.ISO_8859_1.name(), null);
+            serializer.startTag(NAMESPACE, GestureConstants.XML_TAG_LIBRARY);
+            HashMap<String, ArrayList<Gesture>> maps = mEntryName2gestures;
+            Iterator<String> it = maps.keySet().iterator();
+            while (it.hasNext()) {
+                String key = it.next();
+                ArrayList<Gesture> examples = maps.get(key);
+                // save an entry
+                serializer.startTag(NAMESPACE, GestureConstants.XML_TAG_ENTRY);
+                serializer.attribute(NAMESPACE, GestureConstants.XML_TAG_NAME, key);
+                int count = examples.size();
+                for (int i = 0; i < count; i++) {
+                    Gesture gesture = examples.get(i);
+                    // save each gesture in the entry
+                    gesture.toXML(NAMESPACE, serializer);
+                }
+                serializer.endTag(NAMESPACE, GestureConstants.XML_TAG_ENTRY);
+            }
+            serializer.endTag(NAMESPACE, GestureConstants.XML_TAG_LIBRARY);
+            serializer.endDocument();
+            serializer.flush();
+            writer.close();
+            outputStream.close();
+            mChanged = false;
+        } catch (IOException ex) {
+            Log.d(LOGTAG, "Failed to save gestures:", ex);
+        }
+    }
+
+    /**
+     * Load the gesture library
+     */
+    public void load() {
+        File file = new File(mGestureFileName);
+        if (file.exists()) {
+            try {
+                if (Config.DEBUG) {
+                    Log.v(LOGTAG, "Load from " + mGestureFileName);
+                }
+                BufferedInputStream in = new BufferedInputStream(new FileInputStream(
+                        mGestureFileName), GestureConstants.IO_BUFFER_SIZE);
+                Xml.parse(in, Encoding.ISO_8859_1, new CompactInkHandler());
+                in.close();
+            } catch (SAXException ex) {
+                Log.d(LOGTAG, "Failed to load gestures:", ex);
+            } catch (IOException ex) {
+                Log.d(LOGTAG, "Failed to load gestures:", ex);
+            }
+        }
+    }
+
+    private class CompactInkHandler implements ContentHandler {
+        Gesture currentGesture = null;
+
+        StringBuilder buffer = new StringBuilder(GestureConstants.STROKE_STRING_BUFFER_SIZE);
+
+        String entryName;
+
+        ArrayList<Gesture> gestures;
+
+        CompactInkHandler() {
+        }
+
+        public void characters(char[] ch, int start, int length) {
+            buffer.append(ch, start, length);
+        }
+
+        public void endDocument() {
+        }
+
+        public void endElement(String uri, String localName, String qName) {
+            if (localName.equals(GestureConstants.XML_TAG_ENTRY)) {
+                mEntryName2gestures.put(entryName, gestures);
+                gestures = null;
+            } else if (localName.equals(GestureConstants.XML_TAG_GESTURE)) {
+                gestures.add(currentGesture);
+                mClassifier.addInstance(Instance.createInstance(GestureLibrary.this,
+                        currentGesture, entryName));
+                currentGesture = null;
+            } else if (localName.equals(GestureConstants.XML_TAG_STROKE)) {
+                currentGesture.addStroke(GestureStroke.createFromString(buffer.toString()));
+                buffer.setLength(0);
+            }
+        }
+
+        public void endPrefixMapping(String prefix) {
+        }
+
+        public void ignorableWhitespace(char[] ch, int start, int length) {
+        }
+
+        public void processingInstruction(String target, String data) {
+        }
+
+        public void setDocumentLocator(Locator locator) {
+        }
+
+        public void skippedEntity(String name) {
+        }
+
+        public void startDocument() {
+        }
+
+        public void startElement(String uri, String localName, String qName, Attributes attributes) {
+            if (localName.equals(GestureConstants.XML_TAG_ENTRY)) {
+                gestures = new ArrayList<Gesture>();
+                entryName = attributes.getValue(NAMESPACE, GestureConstants.XML_TAG_NAME);
+            } else if (localName.equals(GestureConstants.XML_TAG_GESTURE)) {
+                currentGesture = new Gesture();
+                currentGesture.setID(Long.parseLong(attributes.getValue(NAMESPACE,
+                        GestureConstants.XML_TAG_ID)));
+            }
+        }
+
+        public void startPrefixMapping(String prefix, String uri) {
+        }
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/GestureListener.java b/tests/sketch/src/com/android/gesture/GestureListener.java
index ebb4149..9b50714 100755
--- a/tests/sketch/src/com/android/gesture/GestureListener.java
+++ b/tests/sketch/src/com/android/gesture/GestureListener.java
@@ -18,8 +18,13 @@
 
 import android.view.MotionEvent;
 
+/**
+ * An interface for processing gesture events
+ */
 public interface GestureListener {
-    public void onStartGesture(GesturePad pad, MotionEvent event);
-    public void onGesture(GesturePad pad, MotionEvent event);
-    public void onFinishGesture(GesturePad pad, MotionEvent event);
+    public void onStartGesture(GestureOverlay overlay, MotionEvent event);
+
+    public void onGesture(GestureOverlay overlay, MotionEvent event);
+
+    public void onFinishGesture(GestureOverlay overlay, MotionEvent event);
 }
diff --git a/tests/sketch/src/com/android/gesture/GestureOverlay.java b/tests/sketch/src/com/android/gesture/GestureOverlay.java
new file mode 100755
index 0000000..5cef8c8
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/GestureOverlay.java
@@ -0,0 +1,340 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BlurMaskFilter;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.os.Handler;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.View;
+import java.util.ArrayList;
+
+/**
+ * A (transparent) overlay for gesture input that can be placed on top of other
+ * widgets. The view can also be opaque.
+ */
+
+public class GestureOverlay extends View {
+
+    static final float TOUCH_TOLERANCE = 3;
+
+    private static final int TRANSPARENT_BACKGROUND = Color.argb(0, 0, 0, 0);
+
+    private static final float FADING_ALPHA_CHANGE = 0.03f;
+
+    private static final long FADING_REFRESHING_RATE = 100;
+
+    private static final int GESTURE_STROKE_WIDTH = 12;
+
+    private static final boolean GESTURE_RENDERING_ANTIALIAS = true;
+
+    private static final int BLUR_MASK_RADIUS = 1;
+
+    public static final int DEFAULT_GESTURE_COLOR = Color.argb(255, 255, 255, 0);
+
+    // double buffering
+    private Paint mGesturePaint;
+
+    private Bitmap mBitmap; // with transparent background
+
+    private Canvas mBitmapCanvas;
+
+    // for rendering immediate ink feedback
+    private Path mPath;
+
+    private float mX;
+
+    private float mY;
+
+    // current gesture
+    private Gesture mCurrentGesture = null;
+
+    // gesture event handlers
+    ArrayList<GestureListener> mGestureListeners = new ArrayList<GestureListener>();
+
+    private ArrayList<GesturePoint> mPointBuffer = null;
+
+    // fading out effect
+    private boolean mIsFadingOut = false;
+
+    private float mFadingAlpha = 1;
+
+    private Handler mHandler = new Handler();
+    
+    private Paint mBitmapPaint = new Paint(Paint.DITHER_FLAG);
+
+    private Runnable mFadingOut = new Runnable() {
+        public void run() {
+            if (mIsFadingOut) {
+                mFadingAlpha -= FADING_ALPHA_CHANGE;
+                if (mFadingAlpha <= 0) {
+                    mIsFadingOut = false;
+                    mPath = null;
+                    mCurrentGesture = null;
+                    mBitmap.eraseColor(TRANSPARENT_BACKGROUND);
+                } else {
+                    mHandler.postDelayed(this, FADING_REFRESHING_RATE);
+                }
+                invalidate();
+            }
+        }
+    };
+
+    public GestureOverlay(Context context) {
+        super(context);
+        init();
+    }
+
+    public GestureOverlay(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        init();
+    }
+
+    public ArrayList<GesturePoint> getCurrentStroke() {
+        return mPointBuffer;
+    }
+
+    public Gesture getCurrentGesture() {
+        return mCurrentGesture;
+    }
+
+    /**
+     * Set Gesture color
+     * 
+     * @param color
+     */
+    public void setGestureColor(int color) {
+        mGesturePaint.setColor(color);
+        if (mCurrentGesture != null) {
+            mBitmap.eraseColor(TRANSPARENT_BACKGROUND);
+            mCurrentGesture.draw(mBitmapCanvas, mGesturePaint);
+        }
+    }
+
+    /**
+     * Set the gesture to be shown in the view
+     * 
+     * @param gesture
+     */
+    public void setCurrentGesture(Gesture gesture) {
+        if (mCurrentGesture != null) {
+            clear(false);
+        }
+
+        mCurrentGesture = gesture;
+
+        if (gesture != null) {
+            if (mBitmapCanvas != null) {
+                gesture.draw(mBitmapCanvas, mGesturePaint);
+                invalidate();
+            }
+        }
+    }
+
+    private void init() {
+        mGesturePaint = new Paint();
+        mGesturePaint.setAntiAlias(GESTURE_RENDERING_ANTIALIAS);
+        mGesturePaint.setColor(DEFAULT_GESTURE_COLOR);
+        mGesturePaint.setStyle(Paint.Style.STROKE);
+        mGesturePaint.setStrokeJoin(Paint.Join.ROUND);
+        mGesturePaint.setStrokeCap(Paint.Cap.ROUND);
+        mGesturePaint.setStrokeWidth(GESTURE_STROKE_WIDTH);
+        mGesturePaint
+                .setMaskFilter(new BlurMaskFilter(BLUR_MASK_RADIUS, BlurMaskFilter.Blur.NORMAL));
+
+        mPath = null;
+    }
+
+    @Override
+    protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) {
+        super.onSizeChanged(width, height, oldWidth, oldHeight);
+        if (width <= 0 || height <= 0) {
+            return;
+        }
+        int targetWidth = width > oldWidth ? width : oldWidth;
+        int targetHeight = height > oldHeight ? height : oldHeight;
+        mBitmap = Bitmap.createBitmap(targetWidth, targetHeight, Bitmap.Config.ARGB_8888);
+        mBitmapCanvas = new Canvas(mBitmap);
+        mBitmapCanvas.drawColor(TRANSPARENT_BACKGROUND);
+        if (mCurrentGesture != null) {
+            mCurrentGesture.draw(mBitmapCanvas, mGesturePaint);
+        }
+    }
+
+    public void addGestureListener(GestureListener listener) {
+        mGestureListeners.add(listener);
+    }
+
+    public void removeGestureListener(GestureListener listener) {
+        mGestureListeners.remove(listener);
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+
+        // draw double buffer
+        if (mIsFadingOut) {
+            mBitmapPaint.setAlpha((int) (255 * mFadingAlpha));
+            canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
+        } else {
+            mBitmapPaint.setAlpha(255);
+            canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
+        }
+
+        // draw the current stroke
+        if (mPath != null) {
+            canvas.drawPath(mPath, mGesturePaint);
+        }
+    }
+
+    /**
+     * Clear up the overlay
+     * 
+     * @param fadeOut whether the gesture on the overlay should fade out
+     *            gradually or disappear immediately
+     */
+    public void clear(boolean fadeOut) {
+        if (fadeOut) {
+            mFadingAlpha = 1;
+            mIsFadingOut = true;
+            mHandler.removeCallbacks(mFadingOut);
+            mHandler.postDelayed(mFadingOut, FADING_REFRESHING_RATE);
+        } else {
+            mPath = null;
+            mCurrentGesture = null;
+            if (mBitmap != null) {
+                mBitmap.eraseColor(TRANSPARENT_BACKGROUND);
+                invalidate();
+            }
+        }
+    }
+    
+    public void cancelFadingOut() {
+        mIsFadingOut = false;
+        mHandler.removeCallbacks(mFadingOut);
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+
+        if (!isEnabled()) {
+            return true;
+        }
+
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_DOWN:
+                touch_start(event);
+                invalidate();
+                break;
+            case MotionEvent.ACTION_MOVE:
+                touch_move(event);
+                invalidate();
+                break;
+            case MotionEvent.ACTION_UP:
+                touch_up(event);
+                invalidate();
+                break;
+        }
+
+        return true;
+    }
+
+    private void touch_start(MotionEvent event) {
+        // pass the event to handlers
+        ArrayList<GestureListener> listeners = mGestureListeners;
+        int count = listeners.size();
+        for (int i = 0; i < count; i++) {
+            GestureListener listener = listeners.get(i);
+            listener.onStartGesture(this, event);
+        }
+        
+        // if there is fading out going on, stop it.
+        if (mIsFadingOut) {
+            mIsFadingOut = false;
+            mHandler.removeCallbacks(mFadingOut);
+            mBitmap.eraseColor(TRANSPARENT_BACKGROUND);
+            mCurrentGesture = null;
+        }
+
+        float x = event.getX();
+        float y = event.getY();
+
+        mX = x;
+        mY = y;
+
+        if (mCurrentGesture == null) {
+            mCurrentGesture = new Gesture();
+        }
+
+        mPointBuffer = new ArrayList<GesturePoint>();
+        mPointBuffer.add(new GesturePoint(x, y, event.getEventTime()));
+
+        mPath = new Path();
+        mPath.moveTo(x, y);
+    }
+
+    private void touch_move(MotionEvent event) {
+        float x = event.getX();
+        float y = event.getY();
+
+        float dx = Math.abs(x - mX);
+        float dy = Math.abs(y - mY);
+        if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
+            mPath.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
+            mX = x;
+            mY = y;
+        }
+
+        mPointBuffer.add(new GesturePoint(x, y, event.getEventTime()));
+
+        // pass the event to handlers
+        ArrayList<GestureListener> listeners = mGestureListeners;
+        int count = listeners.size();
+        for (int i = 0; i < count; i++) {
+            GestureListener listener = listeners.get(i);
+            listener.onGesture(this, event);
+        }
+    }
+
+    private void touch_up(MotionEvent event) {
+        // add the stroke to the current gesture
+        mCurrentGesture.addStroke(new GestureStroke(mPointBuffer));
+        mPointBuffer = null;
+
+        // add the stroke to the double buffer
+        mGesturePaint.setDither(true);
+        mBitmapCanvas.drawPath(mPath, mGesturePaint);
+        mGesturePaint.setDither(false);
+        mPath = null;
+
+        // pass the event to handlers
+        ArrayList<GestureListener> listeners = mGestureListeners;
+        int count = listeners.size();
+        for (int i = 0; i < count; i++) {
+            GestureListener listener = listeners.get(i);
+            listener.onFinishGesture(this, event);
+        }
+    }
+
+}
diff --git a/tests/sketch/src/com/android/gesture/GesturePad.java b/tests/sketch/src/com/android/gesture/GesturePad.java
index 45a09e6..04dbe3a 100755
--- a/tests/sketch/src/com/android/gesture/GesturePad.java
+++ b/tests/sketch/src/com/android/gesture/GesturePad.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2008-2009 Google Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,64 +18,67 @@
 
 import android.content.Context;
 import android.graphics.Bitmap;
+import android.graphics.BlurMaskFilter;
 import android.graphics.Canvas;
 import android.graphics.Color;
-import android.graphics.Matrix;
 import android.graphics.Paint;
 import android.graphics.Path;
-import android.graphics.PointF;
 import android.os.Handler;
 import android.util.AttributeSet;
 import android.view.MotionEvent;
 import android.view.View;
 import java.util.ArrayList;
-import java.util.Iterator;
+
 
 /**
- * A view for rendering and processing gestures
+ * A (transparent) view for gesture input that can be placed on top of other
+ * widgets. The background of the view is customizable. 
+ * 
+ * @author liyang@google.com (Yang Li)
+ *
  */
 
 public class GesturePad extends View {
 
-    public static final float TOUCH_TOLERANCE = 4;
-    public static final int default_foreground = Color.argb(255, 255, 255, 0);
-    private int         background = Color.argb(0, 0, 0, 0);
-    private int         foreground = default_foreground;
-    private int         uncertain_foreground = Color.argb(55, 255, 255, 0);
-    private Bitmap      mBitmap;
-    private Canvas      mCanvas;
-    private Path        mPath;
-    private Paint       mBitmapPaint;
-    private Paint       mPaint;
-    private Paint       mDebugPaint;
-    private float       mX, mY;
-    private boolean     mEnableInput = true; 
-    private boolean     mEnableRendering = true;
-    private boolean     mCacheGesture = true;
-    private Gesture       mCurrentGesture = null;
-    ArrayList<GestureListener> mGestureListeners = new ArrayList<GestureListener>();
+    private static final float TOUCH_TOLERANCE = 4;
+    public static final int DEFAULT_GESTURE_COLOR = Color.argb(255, 255, 255, 0);
+    
+    // double buffering 
+    private Paint mGesturePaint;
+    private Bitmap mBitmap; // with transparent background
+    private Canvas mBitmapCanvas;
 
-    private boolean     mShouldFadingOut = true;
-    private boolean     mIsFadingOut = false;
-    private float       mFadingAlpha = 1;
+    // for rendering immediate ink feedback
+    private Path mPath;
+    private float mX;
+    private float mY;
+
+    // current gesture
+    private Gesture mCurrentGesture = null;
     
-    private boolean     reconstruct = false;
-    
-    private ArrayList<Path> debug = new ArrayList<Path>();
+    // gesture event handlers
+    ArrayList<GestureListener> mGestureListeners =
+                                new ArrayList<GestureListener>();
+    private ArrayList<GesturePoint> mPointBuffer = null;
+
+    // fading out effect
+    private boolean mIsFadingOut = false;
+    private float mFadingAlpha = 1;
     private Handler mHandler = new Handler();
-    
     private Runnable mFadingOut = new Runnable() {
-      public void run() {
-          mFadingAlpha -= 0.03f;
-          if (mFadingAlpha <= 0) {
-              mIsFadingOut = false;
-              mPath.reset();
-          } else {
-              mHandler.postDelayed(this, 100);
-          }
-          invalidate();
-      }
-   };
+        public void run() {
+            mFadingAlpha -= 0.03f;
+            if (mFadingAlpha <= 0) {
+                mIsFadingOut = false;
+                mPath = null;
+                mCurrentGesture = null;
+                mBitmap.eraseColor(Color.argb(0, 0, 0, 0));
+            } else {
+                mHandler.postDelayed(this, 100);
+            }
+            invalidate();
+        }
+    };
 
     public GesturePad(Context context) {
         super(context);
@@ -87,82 +90,76 @@
         init();
     }
     
-    public boolean isEnableRendering() {
-        return this.mEnableRendering;
+    public ArrayList<GesturePoint> getCurrentStroke() {
+        return this.mPointBuffer;
     }
     
     public Gesture getCurrentGesture() {
         return mCurrentGesture;
     }
     
-    public Paint getPaint() {
-        return mPaint;
+    /**
+     * Set Gesture color
+     * @param c
+     */
+    public void setGestureColor(int c) {
+        this.mGesturePaint.setColor(c);
+        if (mCurrentGesture != null) {
+            mBitmap.eraseColor(Color.argb(0, 0, 0, 0));
+            mCurrentGesture.draw(mBitmapCanvas, mGesturePaint);
+        }
     }
     
-    public void setColor(int c) {
-        this.foreground = c;
-    }
-    
-    public void setFadingAlpha(float f) {
-        mFadingAlpha = f;
-    }
-    
-    public void setCurrentGesture(Gesture stk) {
-        this.mCurrentGesture = stk;
-        reconstruct = true;
+    /**
+     * Set the gesture to be shown in the view
+     * @param gesture
+     */
+    public void setCurrentGesture(Gesture gesture) {
+        if (this.mCurrentGesture != null) {
+            clear(false);
+        }
+        
+        this.mCurrentGesture = gesture;
+        
+        if (this.mCurrentGesture != null) {
+            if (mBitmapCanvas != null) {
+                this.mCurrentGesture.draw(mBitmapCanvas, mGesturePaint);
+                this.invalidate();
+            }
+        }
     }
     
     private void init() {
-        mDebugPaint = new Paint();
-        mDebugPaint.setColor(Color.WHITE);
-        mDebugPaint.setStrokeWidth(4);
-        mDebugPaint.setAntiAlias(true);
-        mDebugPaint.setStyle(Paint.Style.STROKE);
+        mGesturePaint = new Paint();
+        mGesturePaint.setAntiAlias(true);
+        mGesturePaint.setDither(true);
+        mGesturePaint.setColor(DEFAULT_GESTURE_COLOR);
+        mGesturePaint.setStyle(Paint.Style.STROKE);
+        mGesturePaint.setStrokeJoin(Paint.Join.ROUND);
+        mGesturePaint.setStrokeCap(Paint.Cap.ROUND);
+        mGesturePaint.setStrokeWidth(12);
+        mGesturePaint.setMaskFilter(
+            new BlurMaskFilter(1, BlurMaskFilter.Blur.NORMAL));
         
-        mPaint = new Paint();
-        mPaint.setAntiAlias(true);
-        mPaint.setDither(true);
-        mPaint.setColor(foreground);
-        mPaint.setStyle(Paint.Style.STROKE);
-        mPaint.setStrokeJoin(Paint.Join.ROUND);
-        mPaint.setStrokeCap(Paint.Cap.ROUND);
-        mPaint.setStrokeWidth(12);
-        
-        mBitmapPaint = new Paint(Paint.DITHER_FLAG);
-        mPath = new Path();
-        
-        reconstruct = false;
+        mPath = null;
     }
-
-    public void cacheGesture(boolean b) {
-        mCacheGesture = b;
-    }
-      
-    public void enableRendering(boolean b) {
-        mEnableRendering = b;
-    }
-  
     
     @Override
     protected void onSizeChanged(int w, int h, int oldw, int oldh) {
         // TODO Auto-generated method stub
         super.onSizeChanged(w, h, oldw, oldh);
-        
-        if (w <=0 || h <=0)
+        if (w <= 0 || h <= 0) {
             return;
-        
-        int width = w>oldw? w : oldw;
-        int height = h>oldh? h : oldh;
-        Bitmap newBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
-        mCanvas = new Canvas(newBitmap);
-        
-        if (mBitmap != null) {
-            mCanvas.drawColor(background);
-            mCanvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
-            mCanvas.drawPath(mPath, mPaint);
         }
-        
-        mBitmap = newBitmap;
+        int width = w > oldw? w : oldw;
+        int height = h > oldh? h : oldh;
+        mBitmap = Bitmap.createBitmap(
+            width, height, Bitmap.Config.ARGB_8888);
+        mBitmapCanvas = new Canvas(mBitmap);
+        mBitmapCanvas.drawColor(Color.argb(0, 0, 0, 0));
+        if (mCurrentGesture != null) {
+            mCurrentGesture.draw(mBitmapCanvas, mGesturePaint);
+        }
     }
 
     public void addGestureListener(GestureListener l) {
@@ -175,111 +172,50 @@
   
     @Override
     protected void onDraw(Canvas canvas) {
-        canvas.drawColor(background);
-        
-        if (mCacheGesture)
-            canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
-        
+        super.onDraw(canvas);
+
+        // draw double buffer
+        Paint paint = new Paint(Paint.DITHER_FLAG);
         if (mIsFadingOut) {
-            int color = foreground;
-            int alpha = (int)(Color.alpha(color) * mFadingAlpha);
-            mPaint.setColor(Color.argb(alpha, 
-                Color.red(color), 
-                Color.green(color), 
-                Color.blue(color)));
-        } else if (mEnableRendering == false) {
-            mPaint.setColor(uncertain_foreground);
+            paint.setAlpha((int)(255 * mFadingAlpha));
+            canvas.drawBitmap(mBitmap, 0, 0, paint);
         } else {
-            mPaint.setColor(foreground);
+            canvas.drawBitmap(mBitmap, 0, 0, paint);
         }
         
-        if (reconstruct) {
-            
-            if (this.mCurrentGesture != null) {
-                float xedge = 30;
-                float yedge = 30;
-                float w = this.getWidth() - 2 * xedge;
-                float h = this.getHeight() - 2 * yedge;
-                float sx =  w / this.mCurrentGesture.getBBX().width();
-                float sy = h / mCurrentGesture.getBBX().height();
-                float scale = sx>sy?sy:sx;
-                convertFromStroke(mCurrentGesture);
-                Matrix matrix = new Matrix();
-                matrix.preTranslate(-mCurrentGesture.getBBX().centerX(), -mCurrentGesture.getBBX().centerY());
-                matrix.postScale(scale, scale);
-                matrix.postTranslate(this.getWidth()/2, this.getHeight()/2);
-                this.mPath.transform(matrix);
-            } else {
-                mPath.reset();
-            }
-            
-            reconstruct = false;
-        }
-        
-        canvas.drawPath(mPath, mPaint);
-        
-        Iterator<Path> it = debug.iterator();
-        while (it.hasNext()) {
-            Path path = it.next();
-            canvas.drawPath(path, mDebugPaint);
+        // draw the current stroke
+        if (mPath != null) {
+            canvas.drawPath(mPath, mGesturePaint);
         }
     }
-    
-    public void clearDebugPath() {
-        debug.clear();
-    }
-    
-    public void addDebugPath(Path path) {
-        debug.add(path);
-    }
-    
-    public void addDebugPath(ArrayList<Path> paths) {
-        debug.addAll(paths);
-    }
-    
-    public void clear() {
-        mPath = new Path();
-        this.mCurrentGesture = null;
-        mCanvas.drawColor(background);
-        this.invalidate();
-    }
-    
-    private void convertFromStroke(Gesture stk) {
-        mPath = null;
-        Iterator it = stk.getPoints().iterator();
-        while (it.hasNext()) {
-            PointF p = (PointF) it.next();
-            if (mPath == null) {
-                mPath = new Path();
-                mPath.moveTo(p.x, p.y);
-                mX = p.x;
-                mY = p.y;
-            } else {
-                float dx = Math.abs(p.x - mX);
-                float dy = Math.abs(p.y - mY);
-                if (dx >= TOUCH_TOLERANCE || dy >= TOUCH_TOLERANCE) {
-                    mPath.quadTo(mX, mY, (p.x + mX)/2, (p.y + mY)/2);
-                    mX = p.x;
-                    mY = p.y;
-                }
+
+    /**
+     * Clear up the gesture pad
+     * @param fadeOut whether the gesture on the pad should fade out gradually
+     * or disappear immediately
+     */
+    public void clear(boolean fadeOut) {
+        if (fadeOut) {
+            mFadingAlpha = 1;
+            mIsFadingOut = true;
+            mHandler.removeCallbacks(mFadingOut);
+            mHandler.postDelayed(mFadingOut, 100);
+        } else {
+            mPath = null;
+            this.mCurrentGesture = null;
+            if (mBitmap != null) {
+                mBitmap.eraseColor(Color.argb(0, 0, 0, 0));
+                this.invalidate();
             }
         }
-        mPath.lineTo(mX, mY);
-    }
-    
-    public void setEnableInput(boolean b) {
-        mEnableInput = b;
-    }
-    
-    public boolean isEnableInput() {
-        return mEnableInput;
     }
     
     @Override
     public boolean onTouchEvent(MotionEvent event) {
       
-        if(mEnableInput == false) 
+        if(this.isEnabled() == false) { 
             return true;
+        }
         
         switch (event.getAction()) {
             case MotionEvent.ACTION_DOWN:
@@ -295,28 +231,41 @@
                 invalidate();
                 break;
         }
+        
         return true;
     }
     
     private void touch_start(MotionEvent event) {
-        mIsFadingOut = false;
-        mHandler.removeCallbacks(mFadingOut);
+        // if there is fading-out effect, stop it.
+        if (mIsFadingOut) {
+            mIsFadingOut = false;
+            mHandler.removeCallbacks(mFadingOut);
+            mBitmap.eraseColor(Color.argb(0, 0, 0, 0));
+            this.mCurrentGesture = null;
+        }
       
         float x = event.getX();
         float y = event.getY();
 
-        mCurrentGesture = new Gesture();
-        mCurrentGesture.addPoint(x, y);
-        
-        mPath.reset();
-        mPath.moveTo(x, y);
         mX = x;
         mY = y;
         
-        Iterator<GestureListener> it = mGestureListeners.iterator();
-        while (it.hasNext()) {
-            it.next().onStartGesture(this, event);
+        // pass the event to handlers
+        int count = mGestureListeners.size();
+        for (int i = 0; i < count; i++) {
+            GestureListener listener = mGestureListeners.get(i);
+            listener.onStartGesture(this, event);
         }
+
+        if (mCurrentGesture == null) {
+            mCurrentGesture = new Gesture();
+        }
+        
+        mPointBuffer = new ArrayList<GesturePoint>();
+        mPointBuffer.add(new GesturePoint(x, y, event.getEventTime()));
+
+        mPath = new Path();
+        mPath.moveTo(x, y);
     }
     
     private void touch_move(MotionEvent event) {
@@ -331,41 +280,32 @@
             mY = y;
         }
         
-        mCurrentGesture.addPoint(x, y);
-        
-        Iterator<GestureListener> it = mGestureListeners.iterator();
-        while (it.hasNext()) {
-            it.next().onGesture(this, event);
-        }
-    }
-    
-    public void setFadingOut(boolean b) {
-        mShouldFadingOut = b;
-        mIsFadingOut = false;
-    }
-    
-    public boolean shouldFadingOut() {
-        return mShouldFadingOut;
-    }
-    
-    private void touch_up(MotionEvent event) {
-        mPath.lineTo(mX, mY);
-        
-        if (mCacheGesture)
-            mCanvas.drawPath(mPath, mPaint);
-        
-        // kill this so we don't double draw
-        if (shouldFadingOut()) {
-            mFadingAlpha = 1;
-            mIsFadingOut = true;
-            mHandler.removeCallbacks(mFadingOut);
-            mHandler.postDelayed(mFadingOut, 100);
-        }
-        
-        Iterator<GestureListener> it = mGestureListeners.iterator();
-        while (it.hasNext()) {
-            it.next().onFinishGesture(this, event);
+        mPointBuffer.add(new GesturePoint(x, y, event.getEventTime()));
+
+        // pass the event to handlers
+        int count = mGestureListeners.size();
+        for (int i = 0; i < count; i++) {
+            GestureListener listener = mGestureListeners.get(i);
+            listener.onGesture(this, event);
         }
     }
 
+    
+    private void touch_up(MotionEvent event) {
+        // add the stroke to the current gesture
+        mCurrentGesture.addStroke(new GestureStroke(mPointBuffer));
+        mPointBuffer = null;
+
+        // add the stroke to the double buffer
+        mBitmapCanvas.drawPath(mPath, mGesturePaint);
+        mPath = null;
+        
+        // pass the event to handlers
+        int count = mGestureListeners.size();
+        for (int i = 0; i < count; i++) {
+            GestureListener listener = mGestureListeners.get(i);
+            listener.onFinishGesture(this, event);
+        }
+    }
+    
 }
diff --git a/tests/sketch/src/com/android/gesture/GesturePoint.java b/tests/sketch/src/com/android/gesture/GesturePoint.java
new file mode 100644
index 0000000..d06eff47
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/GesturePoint.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+/**
+ * A timed point of a gesture stroke
+ */
+
+public class GesturePoint {
+    public final float xpos;
+
+    public final float ypos;
+
+    public final long timestamp;
+
+    public GesturePoint(float x, float y, long t) {
+        xpos = x;
+        ypos = y;
+        timestamp = t;
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/GestureProcessor.java b/tests/sketch/src/com/android/gesture/GestureProcessor.java
new file mode 100644
index 0000000..feddead
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/GestureProcessor.java
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+import android.graphics.Color;
+import android.view.MotionEvent;
+import android.view.View;
+
+import java.util.ArrayList;
+
+public class GestureProcessor implements GestureListener {
+
+    public static final int SINGLE_STROKE = 0;
+
+    public static final int MULTIPLE_STROKE = 1;
+
+    private static final float STROKE_LENGTH_THRESHOLD = 100;
+
+    private static final float SQUARENESS_THRESHOLD = 0.24f;
+
+    private static final int UNCERTAIN_GESTURE_COLOR = Color.argb(60, 255, 255, 0);
+
+    private boolean mIsGesturing = false;
+
+    private float mTotalLength;
+
+    private float mX, mY;
+
+    private View mModel;
+
+    private int mGestureType = SINGLE_STROKE;
+
+    private ArrayList<GestureActionListener> mActionListeners = new ArrayList<GestureActionListener>();
+
+    public GestureProcessor(View model) {
+        mModel = model;
+    }
+
+    /**
+     * 
+     * @param type SINGLE_STROKE or MULTIPLE_STROKE
+     */
+    public void setGestureType(int type) {
+        mGestureType = type;
+    }
+
+    public void onStartGesture(GestureOverlay overlay, MotionEvent event) {
+        if (mGestureType == MULTIPLE_STROKE) {
+            overlay.cancelFadingOut();
+        }
+        mX = event.getX();
+        mY = event.getY();
+        mTotalLength = 0;
+        mIsGesturing = false;
+        if (mGestureType == SINGLE_STROKE || overlay.getCurrentGesture() == null
+                || overlay.getCurrentGesture().getStrokesCount() == 0) {
+            overlay.setGestureColor(UNCERTAIN_GESTURE_COLOR);
+        }
+        mModel.dispatchTouchEvent(event);
+    }
+
+    public void onGesture(GestureOverlay overlay, MotionEvent event) {
+        if (mIsGesturing) {
+            return;
+        }
+        float x = event.getX();
+        float y = event.getY();
+        float dx = x - mX;
+        float dy = y - mY;
+        mTotalLength += (float)Math.sqrt(dx * dx + dy * dy);
+        mX = x;
+        mY = y;
+
+        if (mTotalLength > STROKE_LENGTH_THRESHOLD) {
+            OrientedBoundingBox bbx = GestureUtils.computeOrientedBBX(overlay.getCurrentStroke());
+            if (bbx.squareness > SQUARENESS_THRESHOLD) {
+                mIsGesturing = true;
+                overlay.setGestureColor(GestureOverlay.DEFAULT_GESTURE_COLOR);
+                event = MotionEvent.obtain(event.getDownTime(), System.currentTimeMillis(),
+                        MotionEvent.ACTION_UP, x, y, event.getPressure(), event.getSize(), event
+                                .getMetaState(), event.getXPrecision(), event.getYPrecision(),
+                        event.getDeviceId(), event.getEdgeFlags());
+            }
+        }
+        mModel.dispatchTouchEvent(event);
+    }
+
+    public void onFinishGesture(GestureOverlay overlay, MotionEvent event) {
+        if (mIsGesturing) {
+            overlay.clear(true);
+            ArrayList<GestureActionListener> listeners = mActionListeners;
+            int count = listeners.size();
+            for (int i = 0; i < count; i++) {
+                GestureActionListener listener = listeners.get(i);
+                listener.onGesturePerformed(overlay, overlay.getCurrentGesture());
+            }
+        } else {
+            mModel.dispatchTouchEvent(event);
+            overlay.clear(false);
+        }
+    }
+
+    public void addGestureActionListener(GestureActionListener listener) {
+        mActionListeners.add(listener);
+    }
+
+    public void removeGestureActionListener(GestureActionListener listener) {
+        mActionListeners.remove(listener);
+    }
+
+    public boolean isGesturing() {
+        return mIsGesturing;
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/GestureStroke.java b/tests/sketch/src/com/android/gesture/GestureStroke.java
new file mode 100644
index 0000000..b1081e5
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/GestureStroke.java
@@ -0,0 +1,244 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+import android.graphics.Canvas;
+import android.graphics.Matrix;
+import android.graphics.Paint;
+import android.graphics.Path;
+import android.graphics.RectF;
+
+import org.xmlpull.v1.XmlSerializer;
+
+import java.io.IOException;
+import java.util.ArrayList;
+
+/**
+ * A gesture stroke started on a touch down and ended on a touch up.
+ */
+public class GestureStroke {
+    public final RectF boundingBox;
+
+    public final float length;
+
+    public final float[] xPoints;
+
+    public final float[] yPoints;
+
+    public final long[] timestamps;
+
+    private Path mCachedPath;
+
+    /**
+     * Construct a gesture stroke from a list of gesture points
+     * 
+     * @param pts
+     */
+    public GestureStroke(ArrayList<GesturePoint> pts) {
+        xPoints = new float[pts.size()];
+        yPoints = new float[pts.size()];
+        timestamps = new long[pts.size()];
+
+        RectF bx = null;
+        float len = 0;
+        int index = 0;
+        int count = pts.size();
+        float[] xpts = xPoints;
+        float[] ypts = yPoints;
+        long[] times = timestamps;
+
+        for (int i = 0; i < count; i++) {
+            GesturePoint p = pts.get(i);
+            xpts[index] = p.xpos;
+            ypts[index] = p.ypos;
+            times[index] = p.timestamp;
+
+            if (bx == null) {
+                bx = new RectF();
+                bx.top = p.ypos;
+                bx.left = p.xpos;
+                bx.right = p.xpos;
+                bx.bottom = p.ypos;
+                len = 0;
+            } else {
+                len += Math.sqrt(Math.pow(p.xpos - xpts[index - 1], 2)
+                        + Math.pow(p.ypos - ypts[index - 1], 2));
+                bx.union(p.xpos, p.ypos);
+            }
+            index++;
+        }
+
+        boundingBox = bx;
+        length = len;
+    }
+
+    /**
+     * Draw the gesture with a given canvas and paint
+     * 
+     * @param canvas
+     */
+    void draw(Canvas canvas, Paint paint) {
+        if (mCachedPath == null) {
+            float[] xpts = xPoints;
+            float[] ypts = yPoints;
+            int count = xpts.length;
+            Path path = null;
+            float mX = 0, mY = 0;
+            for (int i = 0; i < count; i++) {
+                float x = xpts[i];
+                float y = ypts[i];
+                if (path == null) {
+                    path = new Path();
+                    path.moveTo(x, y);
+                    mX = x;
+                    mY = y;
+                } else {
+                    float dx = Math.abs(x - mX);
+                    float dy = Math.abs(y - mY);
+                    if (dx >= 3 || dy >= 3) {
+                        path.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
+                        mX = x;
+                        mY = y;
+                    }
+                }
+            }
+
+            mCachedPath = path;
+        }
+
+        canvas.drawPath(mCachedPath, paint);
+    }
+
+    /**
+     * Convert the stroke to a Path based on the number of points
+     * 
+     * @param width the width of the bounding box of the target path
+     * @param height the height of the bounding box of the target path
+     * @param numSample the number of points needed
+     * @return the path
+     */
+    public Path toPath(float width, float height, int numSample) {
+        float[] pts = GestureUtils.sequentialFeaturize(this, numSample);
+        RectF rect = boundingBox;
+        float scale = height / rect.height();
+        Matrix matrix = new Matrix();
+        matrix.setTranslate(-rect.left, -rect.top);
+        Matrix scaleMatrix = new Matrix();
+        scaleMatrix.setScale(scale, scale);
+        matrix.postConcat(scaleMatrix);
+        Matrix translate = new Matrix();
+        matrix.postConcat(translate);
+        matrix.mapPoints(pts);
+
+        Path path = null;
+        float mX = 0;
+        float mY = 0;
+        int count = pts.length;
+        for (int i = 0; i < count; i += 2) {
+            float x = pts[i];
+            float y = pts[i + 1];
+            if (path == null) {
+                path = new Path();
+                path.moveTo(x, y);
+                mX = x;
+                mY = y;
+            } else {
+                float dx = Math.abs(x - mX);
+                float dy = Math.abs(y - mY);
+                if (dx >= GestureOverlay.TOUCH_TOLERANCE || dy >= GestureOverlay.TOUCH_TOLERANCE) {
+                    path.quadTo(mX, mY, (x + mX) / 2, (y + mY) / 2);
+                    mX = x;
+                    mY = y;
+                }
+            }
+        }
+        return path;
+    }
+
+    /**
+     * Save the gesture stroke as XML
+     * 
+     * @param namespace
+     * @param serializer
+     * @throws IOException
+     */
+    void toXML(String namespace, XmlSerializer serializer) throws IOException {
+        serializer.startTag(namespace, GestureConstants.XML_TAG_STROKE);
+        serializer.text(toString());
+        serializer.endTag(namespace, GestureConstants.XML_TAG_STROKE);
+    }
+
+    /**
+     * Create a gesture stroke from a string
+     * 
+     * @param str
+     * @return the gesture stroke
+     */
+    public static GestureStroke createFromString(String str) {
+        ArrayList<GesturePoint> points = new ArrayList<GesturePoint>(
+                GestureConstants.STROKE_POINT_BUFFER_SIZE);
+        int endIndex;
+        int startIndex = 0;
+        while ((endIndex = str.indexOf(GestureConstants.STRING_STROKE_DELIIMITER, startIndex + 1)) != -1) {
+
+            // parse x
+            String token = str.substring(startIndex, endIndex);
+            float x = Float.parseFloat(token);
+            startIndex = endIndex + 1;
+
+            // parse y
+            endIndex = str.indexOf(GestureConstants.STRING_STROKE_DELIIMITER, startIndex + 1);
+            token = str.substring(startIndex, endIndex);
+            float y = Float.parseFloat(token);
+            startIndex = endIndex + 1;
+
+            // parse t
+            endIndex = str.indexOf(GestureConstants.STRING_STROKE_DELIIMITER, startIndex + 1);
+            token = str.substring(startIndex, endIndex);
+            long time = Long.parseLong(token);
+            startIndex = endIndex + 1;
+
+            points.add(new GesturePoint(x, y, time));
+        }
+        return new GestureStroke(points);
+    }
+
+    /**
+     * Convert the stroke to string
+     */
+    @Override
+    public String toString() {
+        StringBuilder str = new StringBuilder(GestureConstants.STROKE_STRING_BUFFER_SIZE);
+        float[] xpts = xPoints;
+        float[] ypts = yPoints;
+        long[] times = timestamps;
+        int count = xpts.length;
+        for (int i = 0; i < count; i++) {
+            str.append(xpts[i] + GestureConstants.STRING_STROKE_DELIIMITER + ypts[i]
+                    + GestureConstants.STRING_STROKE_DELIIMITER + times[i]
+                    + GestureConstants.STRING_STROKE_DELIIMITER);
+        }
+        return str.toString();
+    }
+
+    /**
+     * Invalidate the cached path that is used for rendering the stroke
+     */
+    public void invalidate() {
+        mCachedPath = null;
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/GestureUtils.java b/tests/sketch/src/com/android/gesture/GestureUtils.java
new file mode 100755
index 0000000..7c3237a
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/GestureUtils.java
@@ -0,0 +1,358 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+import android.graphics.RectF;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class GestureUtils {
+
+    private static final int SEQUENCE_SAMPLE_SIZE = 16;
+
+    protected static float[] spatialFeaturize(Gesture gesture, int sampleSize) {
+        float[] sample = new float[sampleSize * sampleSize];
+        Arrays.fill(sample, 0);
+
+        RectF rect = gesture.getBoundingBox();
+        float sx = sampleSize / rect.width();
+        float sy = sampleSize / rect.height();
+        float scale = sx < sy ? sx : sy;
+        android.graphics.Matrix trans = new android.graphics.Matrix();
+        trans.setScale(scale, scale);
+        android.graphics.Matrix translate1 = new android.graphics.Matrix();
+        translate1.setTranslate(-rect.centerX(), -rect.centerY());
+        trans.preConcat(translate1);
+        android.graphics.Matrix translate2 = new android.graphics.Matrix();
+        translate2.setTranslate(sampleSize / 2, sampleSize / 2);
+        trans.postConcat(translate2);
+
+        ArrayList<GestureStroke> strokes = gesture.getStrokes();
+        int count = strokes.size();
+        int size;
+        for (int index = 0; index < count; index++) {
+            GestureStroke stroke = strokes.get(index);
+            float[] pts = sequentialFeaturize(stroke, SEQUENCE_SAMPLE_SIZE);
+            trans.mapPoints(pts);
+
+            size = pts.length;
+            for (int i = 0; i < size; i += 2) {
+                float x = pts[i];
+                int xFloor = (int) Math.floor(x);
+                int xCeiling = (int) Math.ceil(x);
+                float y = pts[i + 1];
+                int yFloor = (int) Math.floor(y);
+                int yCeiling = (int) Math.ceil(y);
+
+                if (yFloor >= 0 && yFloor < sampleSize && xFloor >= 0 && xFloor < sampleSize) {
+                    int pos = yFloor * sampleSize + xFloor;
+                    float value = (1 - x + xFloor) * (1 - y + yFloor);
+                    if (sample[pos] < value) {
+                        sample[pos] = value;
+                    }
+                }
+
+                if (yFloor >= 0 && yFloor < sampleSize && xCeiling >= 0 && xCeiling < sampleSize) {
+                    int pos = yFloor * sampleSize + xCeiling;
+                    float value = (1 - xCeiling + x) * (1 - y + yFloor);
+                    if (sample[pos] < value) {
+                        sample[pos] = value;
+                    }
+                }
+
+                if (yCeiling >= 0 && yCeiling < sampleSize && xFloor >= 0 && xFloor < sampleSize) {
+                    int pos = yCeiling * sampleSize + xFloor;
+                    float value = (1 - x + xFloor) * (1 - yCeiling + y);
+                    if (sample[pos] < value) {
+                        sample[pos] = value;
+                    }
+
+                }
+
+                if (yCeiling >= 0 && yCeiling < sampleSize && xCeiling >= 0
+                        && xCeiling < sampleSize) {
+                    int pos = yCeiling * sampleSize + xCeiling;
+                    float value = (1 - xCeiling + x) * (1 - yCeiling + y);
+                    if (sample[pos] < value) {
+                        sample[pos] = value;
+                    }
+                }
+            }
+        }
+
+        return sample;
+    }
+
+    /**
+     * Featurize a stroke into a vector of a given number of elements
+     * 
+     * @param stroke
+     * @param sampleSize
+     * @return a float array
+     */
+    protected static float[] sequentialFeaturize(GestureStroke stroke, int sampleSize) {
+        final float increment = stroke.length / (sampleSize - 1);
+        int vectorLength = sampleSize * 2;
+        float[] vector = new float[vectorLength];
+        float distanceSoFar = 0;
+        float[] xpts = stroke.xPoints;
+        float[] ypts = stroke.yPoints;
+        float lstPointX = xpts[0];
+        float lstPointY = ypts[0];
+        int index = 0;
+        float currentPointX = Float.MIN_VALUE;
+        float currentPointY = Float.MIN_VALUE;
+        vector[index] = lstPointX;
+        index++;
+        vector[index] = lstPointY;
+        index++;
+        int i = 0;
+        int count = xpts.length;
+        while (i < count) {
+            if (currentPointX == Float.MIN_VALUE) {
+                i++;
+                if (i >= count) {
+                    break;
+                }
+                currentPointX = xpts[i];
+                currentPointY = ypts[i];
+            }
+            float deltaX = currentPointX - lstPointX;
+            float deltaY = currentPointY - lstPointY;
+            float distance = (float) Math.sqrt(deltaX * deltaX + deltaY * deltaY);
+            if (distanceSoFar + distance >= increment) {
+                float ratio = (increment - distanceSoFar) / distance;
+                float nx = lstPointX + ratio * deltaX;
+                float ny = lstPointY + ratio * deltaY;
+                vector[index] = nx;
+                index++;
+                vector[index] = ny;
+                index++;
+                lstPointX = nx;
+                lstPointY = ny;
+                distanceSoFar = 0;
+            } else {
+                lstPointX = currentPointX;
+                lstPointY = currentPointY;
+                currentPointX = Float.MIN_VALUE;
+                currentPointY = Float.MIN_VALUE;
+                distanceSoFar += distance;
+            }
+        }
+
+        for (i = index; i < vectorLength; i += 2) {
+            vector[i] = lstPointX;
+            vector[i + 1] = lstPointY;
+        }
+        return vector;
+    }
+
+    /**
+     * Calculate the centroid 
+     * 
+     * @param points
+     * @return the centroid
+     */
+    public static float[] computeCentroid(float[] points) {
+        float centerX = 0;
+        float centerY = 0;
+        int count = points.length;
+        for (int i = 0; i < count; i++) {
+            centerX += points[i];
+            i++;
+            centerY += points[i];
+        }
+        float[] center = new float[2];
+        center[0] = 2 * centerX / count;
+        center[1] = 2 * centerY / count;
+
+        return center;
+    }
+
+    /**
+     * calculate the variance-covariance matrix, treat each point as a sample
+     * 
+     * @param points
+     * @return the covariance matrix
+     */
+    protected static double[][] computeCoVariance(float[] points) {
+        double[][] array = new double[2][2];
+        array[0][0] = 0;
+        array[0][1] = 0;
+        array[1][0] = 0;
+        array[1][1] = 0;
+        int count = points.length;
+        for (int i = 0; i < count; i++) {
+            float x = points[i];
+            i++;
+            float y = points[i];
+            array[0][0] += x * x;
+            array[0][1] += x * y;
+            array[1][0] = array[0][1];
+            array[1][1] += y * y;
+        }
+        array[0][0] /= (count / 2);
+        array[0][1] /= (count / 2);
+        array[1][0] /= (count / 2);
+        array[1][1] /= (count / 2);
+
+        return array;
+    }
+
+    public static float computeTotalLength(float[] points) {
+        float sum = 0;
+        int count = points.length - 4;
+        for (int i = 0; i < count; i += 2) {
+            float dx = points[i + 2] - points[i];
+            float dy = points[i + 3] - points[i + 1];
+            sum += Math.sqrt(dx * dx + dy * dy);
+        }
+        return sum;
+    }
+
+    public static double computeStraightness(float[] points) {
+        float totalLen = computeTotalLength(points);
+        float dx = points[2] - points[0];
+        float dy = points[3] - points[1];
+        return Math.sqrt(dx * dx + dy * dy) / totalLen;
+    }
+
+    public static double computeStraightness(float[] points, float totalLen) {
+        float dx = points[2] - points[0];
+        float dy = points[3] - points[1];
+        return Math.sqrt(dx * dx + dy * dy) / totalLen;
+    }
+
+    /**
+     * Calculate the squared Euclidean distance between two vectors
+     * 
+     * @param vector1
+     * @param vector2
+     * @return the distance
+     */
+    protected static double euclideanDistance(float[] vector1, float[] vector2) {
+        double squaredDistance = 0;
+        int size = vector1.length;
+        for (int i = 0; i < size; i++) {
+            float difference = vector1[i] - vector2[i];
+            squaredDistance += difference * difference;
+        }
+        return squaredDistance / size;
+    }
+
+    /**
+     * Calculate the cosine distance between two instances
+     * 
+     * @param in1
+     * @param in2
+     * @return the distance between 0 and Math.PI
+     */
+    protected static double cosineDistance(Instance in1, Instance in2) {
+        float sum = 0;
+        float[] vector1 = in1.vector;
+        float[] vector2 = in2.vector;
+        int len = vector1.length;
+        for (int i = 0; i < len; i++) {
+            sum += vector1[i] * vector2[i];
+        }
+        return Math.acos(sum / (in1.magnitude * in2.magnitude));
+    }
+
+    public static OrientedBoundingBox computeOrientedBBX(ArrayList<GesturePoint> pts) {
+        GestureStroke stroke = new GestureStroke(pts);
+        float[] points = sequentialFeaturize(stroke, SEQUENCE_SAMPLE_SIZE);
+        return computeOrientedBBX(points);
+    }
+
+    public static OrientedBoundingBox computeOrientedBBX(float[] points) {
+        float[] meanVector = computeCentroid(points);
+        return computeOrientedBBX(points, meanVector);
+    }
+
+    public static OrientedBoundingBox computeOrientedBBX(float[] points, float[] centroid) {
+
+        android.graphics.Matrix tr = new android.graphics.Matrix();
+        tr.setTranslate(-centroid[0], -centroid[1]);
+        tr.mapPoints(points);
+
+        double[][] array = computeCoVariance(points);
+        double[] targetVector = computeOrientation(array);
+
+        float angle;
+        if (targetVector[0] == 0 && targetVector[1] == 0) {
+            angle = -90;
+        } else { // -PI<alpha<PI
+            angle = (float) Math.atan2(targetVector[1], targetVector[0]);
+            angle = (float) (180 * angle / Math.PI);
+            android.graphics.Matrix trans = new android.graphics.Matrix();
+            trans.setRotate(-angle);
+            trans.mapPoints(points);
+        }
+
+        float minx = Float.MAX_VALUE;
+        float miny = Float.MAX_VALUE;
+        float maxx = Float.MIN_VALUE;
+        float maxy = Float.MIN_VALUE;
+        int count = points.length;
+        for (int i = 0; i < count; i++) {
+            if (points[i] < minx) {
+                minx = points[i];
+            }
+            if (points[i] > maxx) {
+                maxx = points[i];
+            }
+            i++;
+            if (points[i] < miny) {
+                miny = points[i];
+            }
+            if (points[i] > maxy) {
+                maxy = points[i];
+            }
+        }
+
+        OrientedBoundingBox bbx = new OrientedBoundingBox(angle, centroid[0], centroid[1], maxx
+                - minx, maxy - miny);
+        return bbx;
+    }
+
+    private static double[] computeOrientation(double[][] covarianceMatrix) {
+        double[] targetVector = new double[2];
+        if (covarianceMatrix[0][1] == 0 || covarianceMatrix[1][0] == 0) {
+            targetVector[0] = 1;
+            targetVector[1] = 0;
+        }
+
+        // lamda^2 + a * lamda + b = 0
+        double a = -covarianceMatrix[0][0] - covarianceMatrix[1][1];
+        double b = covarianceMatrix[0][0] * covarianceMatrix[1][1] - covarianceMatrix[0][1]
+                * covarianceMatrix[1][0];
+        double value = a / 2;
+        double rightside = Math.sqrt(Math.pow(value, 2) - b);
+        double lambda1 = -value + rightside;
+        double lambda2 = -value - rightside;
+        if (lambda1 == lambda2) {
+            targetVector[0] = 0;
+            targetVector[1] = 0;
+        } else {
+            double lambda = lambda1 > lambda2 ? lambda1 : lambda2;
+            targetVector[0] = 1;
+            targetVector[1] = (lambda - covarianceMatrix[0][0]) / covarianceMatrix[0][1];
+        }
+        return targetVector;
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/Instance.java b/tests/sketch/src/com/android/gesture/Instance.java
new file mode 100755
index 0000000..4eb10f9
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/Instance.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+/**
+ * An instance represents a sample if the label is available or a query if the
+ * label is null.
+ */
+public class Instance {
+
+    private static final int SEQUENCE_SAMPLE_SIZE = 16;
+
+    private static final int PATCH_SAMPLE_SIZE = 8;
+
+    private final static float[] ORIENTATIONS = {
+            0, 45, 90, 135, 180, -0, -45, -90, -135, -180
+    };
+
+    // the feature vector
+    public final float[] vector;
+
+    // the label can be null
+    public final String label;
+
+    // the length of the vector
+    public final float magnitude;
+
+    // the id of the instance
+    public final long instanceID;
+
+    private Instance(long id, float[] sample, String sampleName) {
+        instanceID = id;
+        vector = sample;
+        label = sampleName;
+        float sum = 0;
+        int size = sample.length;
+        for (int i = 0; i < size; i++) {
+            sum += sample[i] * sample[i];
+        }
+        magnitude = (float) Math.sqrt(sum);
+    }
+
+    /**
+     * create a learning instance for a single stroke gesture
+     * 
+     * @param gesture
+     * @param label
+     * @return the instance
+     */
+    public static Instance createInstance(GestureLibrary gesturelib, Gesture gesture, String label) {
+        float[] pts;
+        if (gesturelib.getGestureType() == GestureLibrary.SEQUENCE_SENSITIVE) {
+            pts = sequenceSampler(gesturelib, gesture);
+        } else {
+            pts = spatialSampler(gesture);
+        }
+        return new Instance(gesture.getID(), pts, label);
+    }
+
+    private static float[] spatialSampler(Gesture gesture) {
+        float[] pts = GestureUtils.spatialFeaturize(gesture, PATCH_SAMPLE_SIZE);
+        return pts;
+    }
+
+    private static float[] sequenceSampler(GestureLibrary gesturelib, Gesture gesture) {
+        float[] pts = GestureUtils.sequentialFeaturize(gesture.getStrokes().get(0),
+                SEQUENCE_SAMPLE_SIZE);
+        float[] center = GestureUtils.computeCentroid(pts);
+        float orientation = (float) Math.atan2(pts[1] - center[1], pts[0] - center[0]);
+        orientation *= 180 / Math.PI;
+
+        float adjustment = -orientation;
+        if (gesturelib.getOrientationStyle() == GestureLibrary.ORIENTATION_SENSITIVE) {
+            int count = ORIENTATIONS.length;
+            for (int i = 0; i < count; i++) {
+                float delta = ORIENTATIONS[i] - orientation;
+                if (Math.abs(delta) < Math.abs(adjustment)) {
+                    adjustment = delta;
+                }
+            }
+        }
+
+        android.graphics.Matrix m = new android.graphics.Matrix();
+        m.setTranslate(-center[0], -center[1]);
+        android.graphics.Matrix rotation = new android.graphics.Matrix();
+        rotation.setRotate(adjustment);
+        m.postConcat(rotation);
+        m.mapPoints(pts);
+        return pts;
+    }
+
+}
diff --git a/tests/sketch/src/com/android/gesture/InstanceLearner.java b/tests/sketch/src/com/android/gesture/InstanceLearner.java
new file mode 100644
index 0000000..3bd875b
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/InstanceLearner.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+import android.util.Config;
+import android.util.Log;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.TreeMap;
+
+/**
+ * An implementation of an instance-based learner
+ */
+
+class InstanceLearner extends Learner {
+
+    private static final String LOGTAG = "InstanceLearner";
+
+    @Override
+    ArrayList<Prediction> classify(GestureLibrary lib, Instance instance) {
+        ArrayList<Prediction> predictions = new ArrayList<Prediction>();
+        ArrayList<Instance> instances = getInstances();
+        int count = instances.size();
+        TreeMap<String, Double> label2score = new TreeMap<String, Double>();
+        for (int i = 0; i < count; i++) {
+            Instance sample = instances.get(i);
+            if (sample.vector.length != instance.vector.length) {
+                continue;
+            }
+            double distance;
+            if (lib.getGestureType() == GestureLibrary.SEQUENCE_SENSITIVE) {
+                distance = GestureUtils.cosineDistance(sample, instance);
+            } else {
+                distance = GestureUtils.euclideanDistance(sample.vector, instance.vector);
+            }
+            double weight;
+            if (distance == 0) {
+                weight = Double.MAX_VALUE;
+            } else {
+                weight = 1 / distance;
+            }
+            Double score = label2score.get(sample.label);
+            if (score == null || weight > score) {
+                label2score.put(sample.label, weight);
+            }
+        }
+
+        double sum = 0;
+        Iterator<String> lableIterator = label2score.keySet().iterator();
+        while (lableIterator.hasNext()) {
+            String name = lableIterator.next();
+            double score = label2score.get(name);
+            sum += score;
+            predictions.add(new Prediction(name, score));
+        }
+
+        // normalize
+        Iterator<Prediction> predictionIterator = predictions.iterator();
+        while (predictionIterator.hasNext()) {
+            Prediction name = predictionIterator.next();
+            name.predictionScore /= sum;
+        }
+
+        Collections.sort(predictions, new Comparator<Prediction>() {
+            public int compare(Prediction object1, Prediction object2) {
+                double score1 = object1.predictionScore;
+                double score2 = object2.predictionScore;
+                if (score1 > score2) {
+                    return -1;
+                } else if (score1 < score2) {
+                    return 1;
+                } else {
+                    return 0;
+                }
+            }
+        });
+
+        if (Config.DEBUG) {
+            predictionIterator = predictions.iterator();
+            while (predictionIterator.hasNext()) {
+                Prediction name = predictionIterator.next();
+                Log.v(LOGTAG, "prediction [" + name.gestureName + " = " + name.predictionScore + "]");
+            }
+        }
+
+        return predictions;
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/Learner.java b/tests/sketch/src/com/android/gesture/Learner.java
new file mode 100755
index 0000000..63f3156
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/Learner.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+import java.util.ArrayList;
+
+/**
+ * The abstract class of a gesture learner
+ */
+abstract class Learner {
+
+    private final ArrayList<Instance> mInstances = new ArrayList<Instance>();
+
+    /**
+     * Add an instance to the learner
+     * 
+     * @param instance
+     */
+    void addInstance(Instance instance) {
+        mInstances.add(instance);
+    }
+
+    /**
+     * Retrieve all the instances
+     * 
+     * @return instances
+     */
+    ArrayList<Instance> getInstances() {
+        return mInstances;
+    }
+
+    /**
+     * Remove an instance based on its id
+     * 
+     * @param id
+     */
+    void removeInstance(long id) {
+        ArrayList<Instance> instances = mInstances;
+        int count = instances.size();
+        for (int i = 0; i < count; i++) {
+            Instance instance = instances.get(i);
+            if (id == instance.instanceID) {
+                instances.remove(instance);
+                return;
+            }
+        }
+    }
+
+    /**
+     * Remove all the instances of a category
+     * 
+     * @param name the category name
+     */
+    void removeInstances(String name) {
+        ArrayList<Instance> toDelete = new ArrayList<Instance>();
+        ArrayList<Instance> instances = mInstances;
+        int count = instances.size();
+        for (int i = 0; i < count; i++) {
+            Instance instance = instances.get(i);
+            if (instance.label.equals(name)) {
+                toDelete.add(instance);
+            }
+        }
+        mInstances.removeAll(toDelete);
+    }
+
+    abstract ArrayList<Prediction> classify(GestureLibrary library, Instance instance);
+}
diff --git a/tests/sketch/src/com/android/gesture/OrientedBoundingBox.java b/tests/sketch/src/com/android/gesture/OrientedBoundingBox.java
new file mode 100644
index 0000000..fe1984c
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/OrientedBoundingBox.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+import android.graphics.Matrix;
+import android.graphics.Path;
+
+/**
+ * An oriented bounding box
+ */
+public class OrientedBoundingBox {
+
+    public final float squareness;
+
+    public final float width;
+    public final float height;
+
+    public final float orientation; // -PI<alpha<PI
+
+    public final float centerX;
+    public final float centerY;
+
+    OrientedBoundingBox(float angle, float cx, float cy, float w, float h) {
+        orientation = angle;
+        width = w;
+        height = h;
+        centerX = cx;
+        centerY = cy;
+        float ratio = w / h;
+        if (ratio > 1) {
+            squareness = 1 / ratio;
+        } else {
+            squareness = ratio;
+        }
+    }
+
+    public Path toPath() {
+        Path path = new Path();
+        float[] point = new float[2];
+        point[0] = -width / 2;
+        point[1] = height / 2;
+        Matrix matrix = new Matrix();
+        matrix.setRotate(orientation);
+        matrix.postTranslate(centerX, centerY);
+        matrix.mapPoints(point);
+        path.moveTo(point[0], point[1]);
+
+        point[0] = -width / 2;
+        point[1] = -height / 2;
+        matrix.mapPoints(point);
+        path.lineTo(point[0], point[1]);
+
+        point[0] = width / 2;
+        point[1] = -height / 2;
+        matrix.mapPoints(point);
+        path.lineTo(point[0], point[1]);
+
+        point[0] = width / 2;
+        point[1] = height / 2;
+        matrix.mapPoints(point);
+        path.lineTo(point[0], point[1]);
+
+        path.close();
+
+        return path;
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/Prediction.java b/tests/sketch/src/com/android/gesture/Prediction.java
new file mode 100755
index 0000000..60cca8b
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/Prediction.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture;
+
+public class Prediction {
+    public final String gestureName;
+
+    public double predictionScore;
+
+    Prediction(String label, double score) {
+        gestureName = label;
+        predictionScore = score;
+    }
+
+    @Override
+    public String toString() {
+        return gestureName;
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/example/ContactAdapter.java b/tests/sketch/src/com/android/gesture/example/ContactAdapter.java
new file mode 100644
index 0000000..008a972
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/example/ContactAdapter.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture.example;
+
+import android.app.Activity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+
+class ContactAdapter extends ArrayAdapter<ContactItem> {
+
+    private LayoutInflater mInflater;
+
+    public ContactAdapter(Activity activity, ArrayList<ContactItem> contacts) {
+        super(activity, 0, contacts);
+        mInflater = activity.getLayoutInflater();
+    }
+
+    @Override
+    public ContactItem getItem(int position) {
+        return super.getItem(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return getItem(position).itemID;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        final ContactItem info = getItem(position);
+
+        View view = convertView;
+        if (view == null) {
+            view = mInflater.inflate(android.R.layout.simple_list_item_1, parent, false);
+            view.setTag(view.findViewById(android.R.id.text1));
+        }
+
+        final TextView textView = (TextView)view.getTag();
+        textView.setText(info.toString());
+
+        return view;
+    }
+
+    public int search(String query) {
+        if (query != null && query.length() > 0) {
+            int start = 0;
+            int end = getCount() - 1;
+            int index = binarySearch(query, start, end);
+            for (index = index - 1; index >= 0; index--) {
+                String str = getItem(index).toString().toLowerCase();
+                if (!str.startsWith(query)) {
+                    return index + 1;
+                }
+                if (index == 0) {
+                    return 0;
+                }
+            }
+            return -1;
+        } else {
+            return -1;
+        }
+    }
+
+    private int binarySearch(String prefix, int start, int end) {
+        if (start > end) {
+            return -1;
+        }
+        int mid = (start + end) / 2;
+        String str = getItem(mid).toString().toLowerCase();
+        if (prefix.compareTo(str) <= 0) {
+            if (str.startsWith(prefix)) {
+                return mid;
+            } else {
+                return binarySearch(prefix, start, mid - 1);
+            }
+        } else {
+            return binarySearch(prefix, mid + 1, end);
+        }
+    }
+
+}
diff --git a/tests/sketch/src/com/android/gesture/example/ContactItem.java b/tests/sketch/src/com/android/gesture/example/ContactItem.java
new file mode 100644
index 0000000..557c4d9
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/example/ContactItem.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture.example;
+
+
+class ContactItem {
+    final String itemName;
+
+    final long itemID;
+
+    public ContactItem(long id, String name) {
+        itemID = id;
+        itemName = name;
+    }
+
+    @Override
+    public String toString() {
+        return itemName;
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/example/ContactListGestureOverlay.java b/tests/sketch/src/com/android/gesture/example/ContactListGestureOverlay.java
new file mode 100644
index 0000000..50d349a
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/example/ContactListGestureOverlay.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture.example;
+
+import android.app.Activity;
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Intent;
+import android.database.Cursor;
+import android.os.Bundle;
+import android.os.Environment;
+import android.provider.Contacts.People;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.Window;
+import android.widget.AdapterView;
+import android.widget.ListView;
+
+import com.android.gesture.Gesture;
+import com.android.gesture.GestureActionListener;
+import com.android.gesture.GestureProcessor;
+import com.android.gesture.GestureLibrary;
+import com.android.gesture.GestureOverlay;
+import com.android.gesture.Prediction;
+
+import java.io.File;
+import java.util.ArrayList;
+
+public class ContactListGestureOverlay extends Activity {
+
+    static final String GESTURE_FILE_NAME = Environment.getExternalStorageDirectory().getAbsolutePath()
+            + File.separator + "gestureOverlay.xml";
+
+    private static final String SORT_ORDER = People.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
+
+    private static final String[] CONTACTS_PROJECTION = new String[] {
+            People._ID, // 0
+            People.DISPLAY_NAME, // 1
+    };
+
+    private GestureOverlay mOverlay;
+
+    private ContactAdapter mContactAdapter;
+
+    private GestureProcessor mGestureProcessor;
+
+    private GestureLibrary mLibrary;
+
+    private ListView mContactList;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+        setContentView(R.layout.overlaydemo);
+
+        setProgressBarIndeterminateVisibility(true);
+
+        // load the gesture library
+        mLibrary = new GestureLibrary(GESTURE_FILE_NAME);
+        mLibrary.load();
+
+        // load the contact list
+        mContactList = (ListView)this.findViewById(R.id.list);
+        registerForContextMenu(mContactList);
+        mContactList.setTextFilterEnabled(true);
+        mContactList.setVerticalScrollBarEnabled(true);
+        mContactList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
+                if (!mGestureProcessor.isGesturing()) {
+                    Intent intent = new Intent(Intent.ACTION_VIEW, ContentUris.withAppendedId(
+                            People.CONTENT_URI, id));
+                    startActivity(intent);
+                }
+            }
+        });
+        ContentResolver resolver = getContentResolver();
+        Cursor cursor = resolver.query(People.CONTENT_URI, CONTACTS_PROJECTION, null, null,
+                SORT_ORDER);
+        ArrayList<ContactItem> list = new ArrayList<ContactItem>();
+        while (cursor.moveToNext()) {
+            list.add(new ContactItem(cursor.getLong(0), cursor.getString(1)));
+        }
+        mContactAdapter = new ContactAdapter(this, list);
+        mContactList.setAdapter(mContactAdapter);
+
+        setProgressBarIndeterminateVisibility(false);
+
+        // add a gesture overlay on top of the ListView
+        mOverlay = new GestureOverlay(this);
+        mGestureProcessor = new GestureProcessor(mContactList);
+        mGestureProcessor.addGestureActionListener(new GestureActionListener() {
+            public void onGesturePerformed(GestureOverlay overlay, Gesture gesture) {
+                ArrayList<Prediction> predictions = mLibrary.recognize(gesture);
+                if (!predictions.isEmpty()) {
+                    int index = mContactAdapter.search(predictions.get(0).gestureName);
+                    if (index != -1) {
+                        mContactList.setSelection(index);
+                    }
+                }
+            }
+        });
+        mOverlay.addGestureListener(mGestureProcessor);
+        ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(
+                ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
+        this.addContentView(mOverlay, params);
+    }
+}
diff --git a/tests/sketch/src/com/android/gesture/example/GestureEntry.java b/tests/sketch/src/com/android/gesture/example/GestureEntry.java
new file mode 100644
index 0000000..6a54b49
--- /dev/null
+++ b/tests/sketch/src/com/android/gesture/example/GestureEntry.java
@@ -0,0 +1,209 @@
+/*
+ * Copyright (C) 2008-2009 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.gesture.example;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Environment;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
+import android.widget.Spinner;
+import android.widget.AdapterView.OnItemSelectedListener;
+
+import com.android.gesture.Gesture;
+import com.android.gesture.GestureLibrary;
+import com.android.gesture.GestureListener;
+import com.android.gesture.GestureOverlay;
+import com.android.gesture.Prediction;
+
+import java.io.File;
+import java.util.ArrayList;
+
+public class GestureEntry extends Activity {
+
+    private static final String PARCEL_KEY = "gesture";
+
+    static final String GESTURE_FILE_NAME = Environment.getExternalStorageDirectory().getAbsolutePath()
+            + File.separator + "gestureEntry.xml";
+
+    private static final int DIALOG_NEW_ENTRY = 1;
+
+    private static final int NEW_ID = Menu.FIRST;
+
+    private static final int VIEW_ID = Menu.FIRST + 1;
+
+    private GestureOverlay mGesturePad;
+
+    private Spinner mRecognitionResult;
+
+    private GestureLibrary mGestureLibrary;
+
+    private boolean mChangedByRecognizer = false;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.demo);
+
+        // init the gesture library
+        mGestureLibrary = new GestureLibrary(GESTURE_FILE_NAME);
+        mGestureLibrary.load();
+
+        // create the spinner for showing the recognition results
+        // the spinner also allows a user to correct a prediction
+        mRecognitionResult = (Spinner) findViewById(R.id.spinner);
+        mRecognitionResult.setOnItemSelectedListener(new OnItemSelectedListener() {
+
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                // correct the recognition result by adding the new example
+                if (!mChangedByRecognizer) {
+                    mGestureLibrary.addGesture(parent.getSelectedItem().toString(), mGesturePad
+                            .getCurrentGesture());
+                } else {
+                    mChangedByRecognizer = false;
+                }
+            }
+
+            public void onNothingSelected(AdapterView<?> parent) {
+
+            }
+
+        });
+
+        // create the area for drawing a gesture
+        mGesturePad = (GestureOverlay) findViewById(R.id.drawingpad);
+        mGesturePad.setBackgroundColor(Color.BLACK);
+        mGesturePad.addGestureListener(new GestureListener() {
+            public void onFinishGesture(GestureOverlay pad, MotionEvent event) {
+                recognize(pad.getCurrentGesture());
+                pad.clear(true);
+            }
+
+            public void onGesture(GestureOverlay pad, MotionEvent event) {
+            }
+
+            public void onStartGesture(GestureOverlay pad, MotionEvent event) {
+            }
+        });
+
+        if (savedInstanceState != null) {
+            Gesture g = (Gesture) savedInstanceState.getParcelable(PARCEL_KEY);
+            if (g != null) {
+                mGesturePad.setCurrentGesture(g);
+            }
+        }
+    }
+
+    @Override
+    protected Dialog onCreateDialog(int id) {
+        LayoutInflater factory = LayoutInflater.from(this);
+        final View textEntryView = factory.inflate(R.layout.newgesture_dialog, null);
+        return new AlertDialog.Builder(GestureEntry.this).setTitle(
+                R.string.newgesture_text_entry).setView(textEntryView).setPositiveButton(
+                R.string.newgesture_dialog_ok, new DialogInterface.OnClickListener() {
+                    public void onClick(DialogInterface dialog, int whichButton) {
+                        EditText edittext = (EditText) ((AlertDialog) dialog)
+                                .findViewById(R.id.gesturename_edit);
+                        String text = edittext.getText().toString().trim();
+                        if (text.length() > 0) {
+                            mGestureLibrary.addGesture(text, mGesturePad.getCurrentGesture());
+                        }
+                    }
+                }).setNegativeButton(R.string.newgesture_dialog_cancel,
+                new DialogInterface.OnClickListener() {
+                    public void onClick(DialogInterface dialog, int whichButton) {
+                    }
+                }).create();
+    }
+
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        super.onCreateOptionsMenu(menu);
+        menu.add(0, NEW_ID, 0, R.string.newgesture).setShortcut('0', 'n').setIcon(
+                android.R.drawable.ic_menu_add);
+        menu.add(0, VIEW_ID, 0, R.string.viewgesture).setShortcut('1', 'v').setIcon(
+                android.R.drawable.ic_menu_view);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case NEW_ID:
+                if (mGesturePad.getCurrentGesture() != null) {
+                    showDialog(DIALOG_NEW_ENTRY);
+                }
+                break;
+
+            case VIEW_ID:
+                startActivityForResult(new Intent(this, GestureLibViewer.class), VIEW_ID);
+                break;
+        }
+
+        return super.onOptionsItemSelected(item);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        mGestureLibrary.load();
+        mGesturePad.clear(false);
+    }
+
+    @Override
+    protected void onPause() {
+        super.onPause();
+        mGestureLibrary.save();
+    }
+
+    @Override
+    protected void onPrepareDialog(int id, Dialog dialog) {
+        super.onPrepareDialog(id, dialog);
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        super.onSaveInstanceState(outState);
+        Gesture gesture = mGesturePad.getCurrentGesture();
+        if (gesture != null) {
+            outState.putParcelable(PARCEL_KEY, gesture);
+        }
+        mGestureLibrary.save();
+    }
+
+    private void recognize(Gesture ink) {
+        mChangedByRecognizer = true;
+        ArrayList<Prediction> predictions = mGestureLibrary.recognize(ink);
+        ArrayAdapter<Prediction> adapter = new ArrayAdapter<Prediction>(this,
+                android.R.layout.simple_spinner_item, predictions);
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        mRecognitionResult.setAdapter(adapter);
+    }
+
+}
diff --git a/tests/sketch/src/com/android/gesture/example/GestureEntryDemo.java b/tests/sketch/src/com/android/gesture/example/GestureEntryDemo.java
old mode 100755
new mode 100644
index 8fee21a..52a2ba8
--- a/tests/sketch/src/com/android/gesture/example/GestureEntryDemo.java
+++ b/tests/sketch/src/com/android/gesture/example/GestureEntryDemo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2009 Google Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,29 +21,34 @@
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.graphics.Color;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.MotionEvent;
 import android.view.View;
+import android.view.View.OnClickListener;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
+import android.widget.Button;
 import android.widget.EditText;
 import android.widget.Spinner;
 import android.widget.AdapterView.OnItemSelectedListener;
 
 import com.android.gesture.Gesture;
-import com.android.gesture.GestureLib;
+import com.android.gesture.GestureLibrary;
 import com.android.gesture.GestureListener;
 import com.android.gesture.GesturePad;
-import com.android.gesture.R;
-import com.android.gesture.recognizer.Prediction;
+import com.android.gesture.Prediction;
 
 import java.util.ArrayList;
 
 /**
  * The demo shows how to construct a gesture-based user interface on Android.
+ * 
+ * @author liyang@google.com (Yang Li)
+ *
  */
 
 public class GestureEntryDemo extends Activity {
@@ -52,31 +57,35 @@
     private static final int NEW_ID = Menu.FIRST;
     private static final int VIEW_ID = Menu.FIRST + 1;
 
-    GesturePad  mView;
-    Spinner     mResult;
-    GestureLib  mRecognizer;
-    boolean     mChangedByRecognizer = false;
+    private GesturePad mGesturePad;
+    private Spinner mRecognitionResult;
+    private GestureLibrary mGestureLibrary;
+    private boolean mChangedByRecognizer = false;
     
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.demo);
         
-        // init the recognizer
-        mRecognizer = new GestureLib("/sdcard/gestureentry");
-        mRecognizer.load();
+        // init the gesture library
+        mGestureLibrary = new GestureLibrary(
+            "/sdcard/gestureentry/gestures.xml");
+        mGestureLibrary.load();
         
         // create the spinner for showing the recognition results
         // the spinner also allows a user to correct a prediction
-        mResult = (Spinner) findViewById(R.id.spinner);
-        mResult.setOnItemSelectedListener(new OnItemSelectedListener() {
+        mRecognitionResult = (Spinner) findViewById(R.id.spinner);
+        mRecognitionResult.setOnItemSelectedListener(
+            new OnItemSelectedListener() {
 
-            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+            public void onItemSelected(
+                AdapterView<?> parent, View view, int position, long id) {
                 // TODO Auto-generated method stub
                 // correct the recognition result by adding the new example
                 if (mChangedByRecognizer == false) {
-                    mRecognizer.addGesture(parent.getSelectedItem().toString(), 
-                      mView.getCurrentGesture());
+                    mGestureLibrary.addGesture(
+                        parent.getSelectedItem().toString(), 
+                        mGesturePad.getCurrentGesture());
                 } else {
                     mChangedByRecognizer = false;
                 }
@@ -90,28 +99,35 @@
         });
         
         // create the area for drawing a gesture
-        mView = (GesturePad)this.findViewById(R.id.drawingpad);
-        mView.cacheGesture(false);
-        mView.setFadingOut(false);
-        mView.addGestureListener(new GestureListener() {
-            public void onFinishGesture(GesturePad patch, MotionEvent event) {
+        mGesturePad = (GesturePad)this.findViewById(R.id.drawingpad);
+        mGesturePad.setBackgroundColor(Color.BLACK);
+        mGesturePad.addGestureListener(new GestureListener() {
+            public void onFinishGesture(GesturePad pad, MotionEvent event) {
                 // TODO Auto-generated method stub
-                recognize(patch.getCurrentGesture());
+                recognize(pad.getCurrentGesture());
             }
-            public void onGesture(GesturePad patch, MotionEvent event) {
+            public void onGesture(GesturePad pad, MotionEvent event) {
               // TODO Auto-generated method stub
-              
             }
-            public void onStartGesture(GesturePad patch, MotionEvent event) {
-              // TODO Auto-generated method stub
-              
+            public void onStartGesture(GesturePad pad, MotionEvent event) {
+                // TODO Auto-generated method stub
             }
         });
         
+        Button clear = (Button)this.findViewById(R.id.clear);
+        clear.setOnClickListener(new OnClickListener() {
+            public void onClick(View v) {
+                // TODO Auto-generated method stub
+                mGesturePad.clear(false);
+                mGesturePad.invalidate();
+            }
+        });
         
         if (savedInstanceState != null) {
-            mView.setCurrentGesture(
-                (Gesture)savedInstanceState.getParcelable("gesture"));
+            Gesture g = (Gesture)savedInstanceState.getParcelable("gesture");
+            if (g != null) {
+                mGesturePad.setCurrentGesture(g);
+            }
         }
     }
     
@@ -129,10 +145,12 @@
                 public void onClick(DialogInterface dialog, int whichButton) {
                     /* User clicked OK so do some stuff */
                     EditText edittext =
-                      (EditText)((AlertDialog)dialog).findViewById(R.id.gesturename_edit);
+                      (EditText)((AlertDialog)dialog).findViewById(
+                          R.id.gesturename_edit);
                     String text = edittext.getText().toString().trim();
                     if (text.length() > 0) {
-                        mRecognizer.addGesture(text, mView.getCurrentGesture());
+                        mGestureLibrary.addGesture(
+                            text, mGesturePad.getCurrentGesture());
                     }
                 }
             })
@@ -164,7 +182,7 @@
         switch (item.getItemId()) {
             case NEW_ID:
                 // if there has been a gesture on the canvas
-                if (mView.getCurrentGesture() != null) {
+                if (mGesturePad.getCurrentGesture() != null) {
                     showDialog(DIALOG_NEW_ENTRY);
                 }
                 break;
@@ -180,16 +198,17 @@
     
     
     @Override
-    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
-        mRecognizer.load();
-        mView.clear();
+    protected void onActivityResult(
+        int requestCode, int resultCode, Intent data) {
+        mGestureLibrary.load();
+        mGesturePad.clear(false);
     }
     
     @Override
     protected void onPause() {
         // TODO Auto-generated method stub
         super.onPause();
-        mRecognizer.save();
+        mGestureLibrary.save();
     }
     
     
@@ -203,18 +222,20 @@
     protected void onSaveInstanceState(Bundle outState) {
         // TODO Auto-generated method stub
         super.onSaveInstanceState(outState);
-        outState.putParcelable("gesture", mView.getCurrentGesture());
-        mRecognizer.save();
+        Gesture gesture = mGesturePad.getCurrentGesture();
+        if (gesture != null)
+            outState.putParcelable("gesture", gesture);
+        mGestureLibrary.save();
     }
 
     public void recognize(Gesture ink) {
         mChangedByRecognizer = true;
-        ArrayList<Prediction> predictions = mRecognizer.recognize(ink);
-        ArrayAdapter adapter = new ArrayAdapter(this, 
+        ArrayList<Prediction> predictions = mGestureLibrary.recognize(ink);
+        ArrayAdapter<Prediction> adapter = new ArrayAdapter<Prediction>(this, 
                     android.R.layout.simple_spinner_item, predictions);
         adapter.setDropDownViewResource(
                     android.R.layout.simple_spinner_dropdown_item);
-        mResult.setAdapter(adapter);
+        mRecognitionResult.setAdapter(adapter);
     }
 
 }
diff --git a/tests/sketch/src/com/android/gesture/example/GestureLibViewer.java b/tests/sketch/src/com/android/gesture/example/GestureLibViewer.java
old mode 100755
new mode 100644
index 7ae7fc5..ca54110
--- a/tests/sketch/src/com/android/gesture/example/GestureLibViewer.java
+++ b/tests/sketch/src/com/android/gesture/example/GestureLibViewer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2008-2009 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.
@@ -17,8 +17,6 @@
 package com.android.gesture.example;
 
 import android.app.Activity;
-import android.graphics.Matrix;
-import android.graphics.Path;
 import android.os.Bundle;
 import android.view.KeyEvent;
 import android.view.View;
@@ -30,228 +28,156 @@
 import android.widget.AdapterView.OnItemSelectedListener;
 
 import com.android.gesture.Gesture;
-import com.android.gesture.GestureLib;
-import com.android.gesture.GesturePad;
-import com.android.gesture.R;
-import com.android.gesture.recognizer.Instance;
+import com.android.gesture.GestureLibrary;
+import com.android.gesture.GestureOverlay;
 
 import java.util.ArrayList;
 import java.util.Collections;
 
 /**
- * GestureLibViewer is for viewing existing gestures and 
+ * GestureLibViewer gives an example on how to browse existing gestures and
  * removing unwanted gestures.
  */
 
-public class GestureLibViewer  extends Activity {
-  
-    GesturePad          mView;
-    Spinner             mResult;
-    GestureLib          mRecognizer;
-    ArrayList<Gesture>  mSamples;
-    int                 mCurrentGestureIndex;
+public class GestureLibViewer extends Activity {
+
+    private GestureOverlay mGesturePad;
+
+    private Spinner mGestureCategory;
+
+    private GestureLibrary mGesureLibrary;
+
+    private ArrayList<Gesture> mGestures;
+
+    private int mCurrentGestureIndex;
+
+    private class RemoveGestureListener implements OnClickListener {
+        public void onClick(View v) {
+            if (mGestures.isEmpty()) {
+                return;
+            }
+
+            String name = (String) mGestureCategory.getSelectedItem();
+            Gesture gesture = mGestures.get(mCurrentGestureIndex);
+            mGesureLibrary.removeGesture(name, gesture);
+
+            mGestures = mGesureLibrary.getGestures(name);
+
+            if (mGestures == null) {
+                // delete the entire entry
+                mCurrentGestureIndex = 0;
+                ArrayList<String> list = new ArrayList<String>();
+                list.addAll(mGesureLibrary.getGestureEntries());
+                Collections.sort(list);
+                ArrayAdapter<String> adapter = new ArrayAdapter<String>(GestureLibViewer.this,
+                        android.R.layout.simple_spinner_item, list);
+                adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+                mGestureCategory.setAdapter(adapter);
+            } else {
+                if (mCurrentGestureIndex > mGestures.size() - 1) {
+                    mCurrentGestureIndex--;
+                }
+                gesture = mGestures.get(mCurrentGestureIndex);
+                mGesturePad.setCurrentGesture(gesture);
+                mGesturePad.invalidate();
+            }
+        }
+    }
     
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.gestureviewer);
-        
-        // create the area for drawing a glyph
-        mView = (GesturePad)this.findViewById(R.id.drawingpad);
-        mView.cacheGesture(false);
-        mView.setFadingOut(false);
-        mView.setEnableInput(false);
-        
-        // init the recognizer
-        mRecognizer = new GestureLib("/sdcard/gestureentry");
-        mRecognizer.load();
 
-        mResult = (Spinner) findViewById(R.id.spinner);
+        // create the area for drawing a gesture
+        mGesturePad = (GestureOverlay) findViewById(R.id.drawingpad);
+        mGesturePad.setEnabled(false);
+
+        // init the gesture library
+        mGesureLibrary = new GestureLibrary(GestureEntry.GESTURE_FILE_NAME);
+        mGesureLibrary.load();
+
+        mGestureCategory = (Spinner) findViewById(R.id.spinner);
         ArrayList<String> list = new ArrayList<String>();
-        list.addAll(mRecognizer.getLabels());
-        Collections.sort(list);
-        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
-                    android.R.layout.simple_spinner_item, 
-                    list);
-        adapter.setDropDownViewResource(
-                    android.R.layout.simple_spinner_dropdown_item);
-        mResult.setAdapter(adapter);
-        mSamples = mRecognizer.getGestures(list.get(0));
-        if (mSamples.isEmpty() == false) {
+        if (!mGesureLibrary.getGestureEntries().isEmpty()) {
+            list.addAll(mGesureLibrary.getGestureEntries());
+            Collections.sort(list);
+            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
+                    android.R.layout.simple_spinner_item, list);
+            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+            mGestureCategory.setAdapter(adapter);
+            mGestures = mGesureLibrary.getGestures(list.get(0));
             mCurrentGestureIndex = 0;
-            Gesture gesture = mSamples.get(mCurrentGestureIndex);
-            mView.setCurrentGesture(gesture);
-            mView.clearDebugPath();
-            mView.addDebugPath(
-                toPath(mRecognizer.getClassifier().getInstance(gesture.getID())));
+            Gesture gesture = mGestures.get(mCurrentGestureIndex);
+            mGesturePad.setCurrentGesture(gesture);
         }
-        
-        mResult.setOnItemSelectedListener(new OnItemSelectedListener() {
+
+        mGestureCategory.setOnItemSelectedListener(new OnItemSelectedListener() {
             public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
-                // TODO Auto-generated method stub
-                mSamples = mRecognizer.getGestures(
-                    (String)mResult.getSelectedItem());
-                if (mSamples.isEmpty() == false) {
+                mGestures = mGesureLibrary.getGestures((String) mGestureCategory.getSelectedItem());
+                if (!mGestures.isEmpty()) {
                     mCurrentGestureIndex = 0;
-                    Gesture gesture = mSamples.get(mCurrentGestureIndex);
-                    mView.setCurrentGesture(gesture);
-                    mView.clearDebugPath();
-                    mView.addDebugPath(
-                        toPath(mRecognizer.getClassifier().getInstance(gesture.getID())));
+                    Gesture gesture = mGestures.get(mCurrentGestureIndex);
+                    mGesturePad.setCurrentGesture(gesture);
                 }
-                mView.invalidate();
+                mGesturePad.invalidate();
             }
-  
+
             public void onNothingSelected(AdapterView<?> parent) {
-              // TODO Auto-generated method stub
-              
             }
-          
+
         });
-        
-        Button remove = (Button)this.findViewById(R.id.remove);
-        remove.setOnClickListener(new OnClickListener() {
-            public void onClick(View v) {
-                // TODO Auto-generated method stub
-                if (mSamples.isEmpty())
-                    return;
-                
-                String name = (String)mResult.getSelectedItem();
-                Gesture gesture = mSamples.get(mCurrentGestureIndex);
-                mRecognizer.removeGesture(name, gesture);
-                
-                mSamples = mRecognizer.getGestures(name);
-                
-                if (mSamples == null) {
-                    // delete the entire entry
-                    mCurrentGestureIndex = 0;
-                    ArrayList<String> list = new ArrayList<String>();
-                    list.addAll(mRecognizer.getLabels());
-                    Collections.sort(list);
-                    ArrayAdapter<String> adapter = new ArrayAdapter<String>(
-                                GestureLibViewer.this, 
-                                android.R.layout.simple_spinner_item, 
-                                list);
-                    adapter.setDropDownViewResource(
-                                android.R.layout.simple_spinner_dropdown_item);
-                    mResult.setAdapter(adapter);
-                } else {
-                    if (mCurrentGestureIndex > mSamples.size()-1) {
-                        mCurrentGestureIndex--;
-                    }
-                    gesture = mSamples.get(mCurrentGestureIndex);
-                    mView.setCurrentGesture(gesture);
-                    mView.clearDebugPath();
-                    mView.addDebugPath(
-                        toPath(mRecognizer.getClassifier().getInstance(gesture.getID())));
-                    mView.invalidate();
-                }
-            }
-        });
-        
-        Button next = (Button)this.findViewById(R.id.next);
+
+        Button remove = (Button) findViewById(R.id.remove);
+        remove.setOnClickListener(new RemoveGestureListener());
+
+        Button next = (Button) findViewById(R.id.next);
         next.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
-                // TODO Auto-generated method stub
-                if (mCurrentGestureIndex >= mSamples.size()-1)
+                if (mCurrentGestureIndex >= mGestures.size() - 1) {
                     return;
-                
+                }
                 mCurrentGestureIndex++;
-                Gesture gesture = mSamples.get(mCurrentGestureIndex);
-                mView.setCurrentGesture(gesture);
-                mView.clearDebugPath();
-                mView.addDebugPath(
-                    toPath(mRecognizer.getClassifier().getInstance(gesture.getID())));
-                mView.invalidate();
+                Gesture gesture = mGestures.get(mCurrentGestureIndex);
+                mGesturePad.setCurrentGesture(gesture);
+                mGesturePad.invalidate();
             }
         });
 
-        Button previous = (Button)this.findViewById(R.id.previous);
+        Button previous = (Button) findViewById(R.id.previous);
         previous.setOnClickListener(new OnClickListener() {
             public void onClick(View v) {
-                // TODO Auto-generated method stub
-                if (mCurrentGestureIndex >= 1 &&
-                    mSamples.isEmpty() == false) {
+                if (mCurrentGestureIndex >= 1 && !mGestures.isEmpty()) {
                     mCurrentGestureIndex--;
-                    Gesture gesture = mSamples.get(mCurrentGestureIndex);
-                    mView.setCurrentGesture(gesture);
-                    mView.clearDebugPath();
-                    mView.addDebugPath(
-                        toPath(mRecognizer.getClassifier().getInstance(gesture.getID())));
-                    mView.invalidate();
+                    Gesture gesture = mGestures.get(mCurrentGestureIndex);
+                    mGesturePad.setCurrentGesture(gesture);
+                    mGesturePad.invalidate();
                 }
             }
         });
     }
-    
-    public static ArrayList<Path> toPath(Instance instance) {
-        ArrayList<Path> paths = new ArrayList();
-        Path path = null;
-        float minx = 0, miny = 0;
-        float mX = 0, mY = 0;
-        for (int i=0; i<instance.vector.length; i+=2) {
-            float x = instance.vector[i];
-            float y = instance.vector[i+1];
-            if (x < minx)
-                minx = x;
-            if (y < miny)
-                miny = y;
-            if (path == null) {
-              path = new Path();
-              path.moveTo(x, y);
-              mX = x;
-              mY = y;
-            } else {
-              float dx = Math.abs(x - mX);
-              float dy = Math.abs(y - mY);
-              if (dx >= 3 || dy >= 3) {
-                  path.quadTo(mX, mY, (x + mX)/2, (y + mY)/2);
-                  mX = x;
-                  mY = y;
-              }
-            }
-        }
-        Matrix matrix = new Matrix();
-        matrix.setTranslate(-minx + 10, -miny + 10);
-        path.transform(matrix);
-        paths.add(path);
-        
-        path = new Path();
-        path.moveTo(instance.vector[0]-5, instance.vector[1]-5);
-        path.lineTo(instance.vector[0]-5, instance.vector[1]+5);
-        path.lineTo(instance.vector[0]+5, instance.vector[1]+5);
-        path.lineTo(instance.vector[0]+5, instance.vector[1]-5);
-        path.close();
-        path.transform(matrix);
-        paths.add(path);
-        
-        return paths;
-    }
-    
+
     @Override
     public boolean onKeyUp(int keyCode, KeyEvent event) {
-      // TODO Auto-generated method stub
-      if (keyCode == KeyEvent.KEYCODE_BACK) {
-          mRecognizer.save();
-          this.setResult(RESULT_OK);
-          finish();
-          return true;
-      }
-      else
-        return false;
+        if (keyCode == KeyEvent.KEYCODE_BACK) {
+            mGesureLibrary.save();
+            setResult(RESULT_OK);
+            finish();
+            return true;
+        } else {
+            return false;
+        }
     }
-    
+
     @Override
     protected void onPause() {
-        // TODO Auto-generated method stub
         super.onPause();
-        mRecognizer.save();
+        mGesureLibrary.save();
     }
 
     @Override
     protected void onSaveInstanceState(Bundle outState) {
-        // TODO Auto-generated method stub
         super.onSaveInstanceState(outState);
-        mRecognizer.save();
+        mGesureLibrary.save();
     }
 }