diff options
130 files changed, 10750 insertions, 2663 deletions
@@ -220,3 +220,54 @@ the Apache2 License. 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 a5b13f9eb5ae..c82363498242 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 863cbcc4d113..78bbb4f42c19 100644 --- a/core/java/android/app/DatePickerDialog.java +++ b/core/java/android/app/DatePickerDialog.java @@ -46,7 +46,6 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener, 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 @@ public class DatePickerDialog extends AlertDialog implements OnClickListener, 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 edf69eea8a86..3ea9b4a89bbc 100644 --- a/core/java/android/pim/EventRecurrence.java +++ b/core/java/android/pim/EventRecurrence.java @@ -408,13 +408,13 @@ public class EventRecurrence 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 14ef8108ad5d..ed5520d1b69c 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -2171,6 +2171,13 @@ public final class Settings { 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 @@ public final class Settings { return "android-" + Long.toHexString(androidId); } } - diff --git a/core/java/android/text/format/DateFormat.java b/core/java/android/text/format/DateFormat.java index 0dc96c369b78..3156d8b33092 100644 --- a/core/java/android/text/format/DateFormat.java +++ b/core/java/android/text/format/DateFormat.java @@ -242,64 +242,48 @@ public class DateFormat { /** * 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 @@ public class DateFormat { } 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 8a7cdd92950f..9073d82ea41a 100644 --- a/core/java/android/text/format/DateUtils.java +++ b/core/java/android/text/format/DateUtils.java @@ -62,15 +62,6 @@ public class DateUtils 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 @@ public class DateUtils 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 @@ public class DateUtils 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 @@ public class DateUtils * 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 @@ public class DateUtils * 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 @@ public class DateUtils * 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 @@ public class DateUtils 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 @@ public class DateUtils } /** - * 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 @@ public class DateUtils } /** + * 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 @@ public class DateUtils 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 class DateUtils */ 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 8f1235518bed..8eae111ee5d3 100644 --- a/core/java/android/text/format/Time.java +++ b/core/java/android/text/format/Time.java @@ -135,6 +135,7 @@ public class Time { 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 @@ public class Time { 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 923e1aa05cc8..7c208e968077 100644 --- a/core/jni/android_text_format_Time.cpp +++ b/core/jni/android_text_format_Time.cpp @@ -44,6 +44,7 @@ static jfieldID g_timezoneField = 0; 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 jstring android_text_format_Time_format(JNIEnv* env, jobject This, 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 @@ static jstring android_text_format_Time_format(JNIEnv* env, jobject This, 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 @@ static jstring android_text_format_Time_format(JNIEnv* env, jobject This, 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 @@ int register_android_text_format_Time(JNIEnv* env) 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 000000000000..1bbbdcae236e --- /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 000000000000..608b3a7e401e --- /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 000000000000..6ed2a88b1075 --- /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 000000000000..f477d56570ea --- /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 000000000000..f477d56570ea --- /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 35a3f9a9cb50..c3860d46fbff 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 000000000000..38097bd67a5c --- /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 000000000000..ad35feecf65c --- /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 000000000000..c8e0de8ec41f --- /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 000000000000..c8e0de8ec41f --- /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 000000000000..c8e0de8ec41f --- /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 000000000000..c8e0de8ec41f --- /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 674c64b91c4e..d121801a8574 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 000000000000..9d2a0aa907d5 --- /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 000000000000..7ed029c998dc --- /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 9da879b34a16..d4822227a54f 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 000000000000..2fb3ef6b3697 --- /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 000000000000..0c544afffc6f --- /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 000000000000..0c544afffc6f --- /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 000000000000..823c3c169d66 --- /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 000000000000..bcd976cde6b8 --- /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 000000000000..f3059489d20d --- /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 6850a5d2835b..1c6eda2de7a2 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 000000000000..f3059489d20d --- /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 000000000000..633c761dba73 --- /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 000000000000..967a63911cc3 --- /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 000000000000..8668fdac775d --- /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 7b60a39f042b..6032321e381f 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 000000000000..967a63911cc3 --- /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 a9f267a308b1..c55e0ed5df4f 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 000000000000..ae2863553417 --- /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 000000000000..b5403364503d --- /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 000000000000..5fa5d5453857 --- /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 000000000000..589c801b815f --- /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 000000000000..1213ed8f629c --- /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 000000000000..1213ed8f629c --- /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 c664d1ae8dd9..736caf7b8b9c 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 000000000000..1b1aafa9eeea --- /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 000000000000..8c6a34f7a6cf --- /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 000000000000..6085c6fdc0e6 --- /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 000000000000..0a15fedefe68 --- /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 000000000000..4129d6c627ae --- /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 000000000000..e3dd7472900d --- /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 000000000000..e3dd7472900d --- /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 f80a4f4cd156..cb040f2dd544 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 000000000000..b8e94fc0e304 --- /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 000000000000..b8e94fc0e304 --- /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 8da040e410f6..877ecbd48907 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 000000000000..17d94320198d --- /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 000000000000..17d94320198d --- /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 96b897a495d5..06b85e872ed1 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 000000000000..629937b01261 --- /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 000000000000..d47a18f6f98d --- /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 000000000000..f89e81988b91 --- /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 7bed159c51ca..a28b12ca69bf 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 000000000000..c3050c6cee2d --- /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 000000000000..b9e040743a45 --- /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 000000000000..b9e040743a45 --- /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 3a9e32c52471..4437f295a9c8 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 000000000000..0ae8b4804c18 --- /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 000000000000..0ae8b4804c18 --- /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 50d245b5d8e1..2cd484119fb7 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 000000000000..cf0c29e8ccb2 --- /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 000000000000..d42dc8feabfe --- /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 000000000000..1ed2c8168ec0 --- /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 000000000000..8faeb44af4e9 --- /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 000000000000..8faeb44af4e9 --- /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 fac6cb7ea753..2a15c43d9b32 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 000000000000..05bc5d3b5d17 --- /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 000000000000..e24b070392ba --- /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 000000000000..7f98ae28596d --- /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 000000000000..45702457b9cc --- /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 000000000000..cc680f60db38 --- /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 000000000000..acc012122ea3 --- /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 000000000000..888df361ae33 --- /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 000000000000..2a28b32d0457 --- /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 000000000000..18e37a94e69d --- /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 54b0b97d9691..ee7b3cd1005c 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 000000000000..18e37a94e69d --- /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 514e304f1b25..a7422281864c 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 43eec1b0b36a..b92beec54f27 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 8150067fec6a..96369f4099a4 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 000000000000..f3059489d20d --- /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 ed81cb46a991..2860292a70a5 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 9567523445e8..b168fb88eee2 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/include/utils/backup_helpers.h b/include/utils/backup_helpers.h index 73b9989126c0..0c59fec59ca7 100644 --- a/include/utils/backup_helpers.h +++ b/include/utils/backup_helpers.h @@ -25,8 +25,28 @@ namespace android { int back_up_files(int oldSnapshotFD, int oldDataStream, int newSnapshotFD, char const* fileBase, char const* const* files, int fileCount); +// the sizes of all of these match. +typedef struct { + int type; // == APP_MAGIC_V1 + int packageLen; // length of the name of the package that follows, not including the null. + int cookie; +} app_header_v1; + +typedef struct { + int type; // ENTITY_MAGIC_V1 + int keyLen; // length of the key name, not including the null terminator + int dataSize; // size of the data, not including the padding +} entity_header_v1; + +typedef struct { + int type; // FOOTER_MAGIC_V1 + int entityCount; // the number of entities that were written + int cookie; +} app_footer_v1; + + /** - * Reads the data. + * Writes the data. * * If an error occurs, it poisons this object and all write calls will fail * with the error that occurred. @@ -38,12 +58,12 @@ public: // does not close fd ~BackupDataWriter(); - status_t WriteAppHeader(const String8& packageName); + status_t WriteAppHeader(const String8& packageName, int cookie); status_t WriteEntityHeader(const String8& key, size_t dataSize); status_t WriteEntityData(const void* data, size_t size); - status_t WriteAppFooter(); + status_t WriteAppFooter(int cookie); private: explicit BackupDataWriter(); @@ -55,6 +75,44 @@ private: int m_entityCount; }; +/** + * Reads the data. + * + * If an error occurs, it poisons this object and all write calls will fail + * with the error that occurred. + */ +class BackupDataReader +{ +public: + BackupDataReader(int fd); + // does not close fd + ~BackupDataReader(); + + status_t Status(); + status_t ReadNextHeader(); + + status_t ReadAppHeader(String8* packageName, int* cookie); + bool HasEntities(); + status_t ReadEntityHeader(String8* key, size_t* dataSize); + status_t ReadEntityData(void* data, size_t size); + status_t ReadAppFooter(int* cookie); + +private: + explicit BackupDataReader(); + status_t skip_padding(); + + int m_fd; + status_t m_status; + ssize_t m_pos; + int m_entityCount; + union { + int type; + app_header_v1 app; + entity_header_v1 entity; + app_footer_v1 footer; + } m_header; +}; + #define TEST_BACKUP_HELPERS 0 #if TEST_BACKUP_HELPERS @@ -62,6 +120,7 @@ int backup_helper_test_empty(); int backup_helper_test_four(); int backup_helper_test_files(); int backup_helper_test_data_writer(); +int backup_helper_test_data_reader(); #endif } // namespace android diff --git a/libs/utils/backup_data.cpp b/libs/utils/backup_data.cpp index c7f1fdb58ee4..dd044496c363 100644 --- a/libs/utils/backup_data.cpp +++ b/libs/utils/backup_data.cpp @@ -14,12 +14,16 @@ * limitations under the License. */ +#define LOG_TAG "backup_data" + #include <utils/backup_helpers.h> #include <utils/ByteOrder.h> #include <stdio.h> #include <unistd.h> +#include <cutils/log.h> + namespace android { /* @@ -39,22 +43,6 @@ namespace android { #define ENTITY_MAGIC_V1 0x61746144 // Data (little endian) #define FOOTER_MAGIC_V1 0x746f6f46 // Foot (little endian) -typedef struct { - int type; // == APP_MAGIC_V1 - int packageLen; // length of the name of the package that follows, not including the null. -} app_header_v1; - -typedef struct { - int type; // ENTITY_MAGIC_V1 - int keyLen; // length of the key name, not including the null terminator - int dataSize; // size of the data, not including the padding -} entity_header_v1; - -typedef struct { - int type; // FOOTER_MAGIC_V1 - int entityCount; // the number of entities that were written -} app_footer_v1; - const static int ROUND_UP[4] = { 0, 3, 2, 1 }; static inline size_t @@ -102,7 +90,7 @@ BackupDataWriter::write_padding_for(int n) } status_t -BackupDataWriter::WriteAppHeader(const String8& packageName) +BackupDataWriter::WriteAppHeader(const String8& packageName, int cookie) { if (m_status != NO_ERROR) { return m_status; @@ -122,6 +110,7 @@ BackupDataWriter::WriteAppHeader(const String8& packageName) header.type = tolel(APP_MAGIC_V1); header.packageLen = tolel(nameLen); + header.cookie = cookie; amt = write(m_fd, &header, sizeof(app_header_v1)); if (amt != sizeof(app_header_v1)) { @@ -204,7 +193,7 @@ BackupDataWriter::WriteEntityData(const void* data, size_t size) } status_t -BackupDataWriter::WriteAppFooter() +BackupDataWriter::WriteAppFooter(int cookie) { if (m_status != NO_ERROR) { return m_status; @@ -222,6 +211,7 @@ BackupDataWriter::WriteAppFooter() footer.type = tolel(FOOTER_MAGIC_V1); footer.entityCount = tolel(m_entityCount); + footer.cookie = cookie; amt = write(m_fd, &footer, sizeof(app_footer_v1)); if (amt != sizeof(app_footer_v1)) { @@ -233,4 +223,206 @@ BackupDataWriter::WriteAppFooter() return NO_ERROR; } + +BackupDataReader::BackupDataReader(int fd) + :m_fd(fd), + m_status(NO_ERROR), + m_pos(0), + m_entityCount(0) +{ + memset(&m_header, 0, sizeof(m_header)); +} + +BackupDataReader::~BackupDataReader() +{ +} + +status_t +BackupDataReader::Status() +{ + return m_status; +} + +#define CHECK_SIZE(actual, expected) \ + do { \ + if ((actual) != (expected)) { \ + if ((actual) == 0) { \ + m_status = EIO; \ + } else { \ + m_status = errno; \ + } \ + return m_status; \ + } \ + } while(0) +#define SKIP_PADDING() \ + do { \ + status_t err = skip_padding(); \ + if (err != NO_ERROR) { \ + m_status = err; \ + return err; \ + } \ + } while(0) + +status_t +BackupDataReader::ReadNextHeader() +{ + if (m_status != NO_ERROR) { + return m_status; + } + + int amt; + + SKIP_PADDING(); + amt = read(m_fd, &m_header, sizeof(m_header)); + CHECK_SIZE(amt, sizeof(m_header)); + + // validate and fix up the fields. + m_header.type = fromlel(m_header.type); + switch (m_header.type) + { + case APP_MAGIC_V1: + m_header.app.packageLen = fromlel(m_header.app.packageLen); + if (m_header.app.packageLen < 0) { + LOGD("App header at %d has packageLen<0: 0x%08x\n", (int)m_pos, + (int)m_header.app.packageLen); + m_status = EINVAL; + } + m_header.app.cookie = m_header.app.cookie; + break; + case ENTITY_MAGIC_V1: + m_header.entity.keyLen = fromlel(m_header.entity.keyLen); + if (m_header.entity.keyLen <= 0) { + LOGD("Entity header at %d has keyLen<=0: 0x%08x\n", (int)m_pos, + (int)m_header.entity.keyLen); + m_status = EINVAL; + } + m_header.entity.dataSize = fromlel(m_header.entity.dataSize); + if (m_header.entity.dataSize < 0) { + LOGD("Entity header at %d has dataSize<0: 0x%08x\n", (int)m_pos, + (int)m_header.entity.dataSize); + m_status = EINVAL; + } + m_entityCount++; + break; + case FOOTER_MAGIC_V1: + m_header.footer.entityCount = fromlel(m_header.footer.entityCount); + if (m_header.footer.entityCount < 0) { + LOGD("Entity header at %d has entityCount<0: 0x%08x\n", (int)m_pos, + (int)m_header.footer.entityCount); + m_status = EINVAL; + } + m_header.footer.cookie = m_header.footer.cookie; + break; + default: + LOGD("Chunk header at %d has invalid type: 0x%08x", (int)m_pos, (int)m_header.type); + m_status = EINVAL; + } + m_pos += sizeof(m_header); + + return m_status; +} + +status_t +BackupDataReader::ReadAppHeader(String8* packageName, int* cookie) +{ + if (m_status != NO_ERROR) { + return m_status; + } + if (m_header.type != APP_MAGIC_V1) { + return EINVAL; + } + size_t size = m_header.app.packageLen; + char* buf = packageName->lockBuffer(size); + if (packageName == NULL) { + packageName->unlockBuffer(); + m_status = ENOMEM; + return m_status; + } + int amt = read(m_fd, buf, size+1); + CHECK_SIZE(amt, (int)size+1); + packageName->unlockBuffer(size); + m_pos += size+1; + *cookie = m_header.app.cookie; + return NO_ERROR; +} + +bool +BackupDataReader::HasEntities() +{ + return m_status == NO_ERROR && m_header.type == ENTITY_MAGIC_V1; +} + +status_t +BackupDataReader::ReadEntityHeader(String8* key, size_t* dataSize) +{ + if (m_status != NO_ERROR) { + return m_status; + } + if (m_header.type != ENTITY_MAGIC_V1) { + return EINVAL; + } + size_t size = m_header.app.packageLen; + char* buf = key->lockBuffer(size); + if (key == NULL) { + key->unlockBuffer(); + m_status = ENOMEM; + return m_status; + } + int amt = read(m_fd, buf, size+1); + CHECK_SIZE(amt, (int)size+1); + key->unlockBuffer(size); + m_pos += size+1; + *dataSize = m_header.entity.dataSize; + SKIP_PADDING(); + return NO_ERROR; +} + +status_t +BackupDataReader::ReadEntityData(void* data, size_t size) +{ + if (m_status != NO_ERROR) { + return m_status; + } + int amt = read(m_fd, data, size); + CHECK_SIZE(amt, (int)size); + m_pos += size; + return NO_ERROR; +} + +status_t +BackupDataReader::ReadAppFooter(int* cookie) +{ + if (m_status != NO_ERROR) { + return m_status; + } + if (m_header.type != FOOTER_MAGIC_V1) { + return EINVAL; + } + if (m_header.footer.entityCount != m_entityCount) { + LOGD("entity count mismatch actual=%d expected=%d", m_entityCount, + m_header.footer.entityCount); + m_status = EINVAL; + return m_status; + } + *cookie = m_header.footer.cookie; + return NO_ERROR; +} + +status_t +BackupDataReader::skip_padding() +{ + ssize_t amt; + ssize_t paddingSize; + + paddingSize = padding_extra(m_pos); + if (paddingSize > 0) { + uint32_t padding; + amt = read(m_fd, &padding, paddingSize); + CHECK_SIZE(amt, paddingSize); + m_pos += amt; + } + return NO_ERROR; +} + + } // namespace android diff --git a/libs/utils/backup_helper_file.cpp b/libs/utils/backup_helper_file.cpp index 1fa6a0f02ae9..bf569455df5b 100644 --- a/libs/utils/backup_helper_file.cpp +++ b/libs/utils/backup_helper_file.cpp @@ -599,13 +599,14 @@ backup_helper_test_four() // hexdump -v -e '" " 8/1 " 0x%02x," "\n"' data_writer.data const unsigned char DATA_GOLDEN_FILE[] = { 0x41, 0x70, 0x70, 0x31, 0x0b, 0x00, 0x00, 0x00, - 0x6e, 0x6f, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x00, 0x44, 0x61, 0x74, 0x61, - 0x0b, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, - 0x6e, 0x6f, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x00, 0x6e, 0x6f, 0x5f, 0x70, + 0xdd, 0xcc, 0xbb, 0xaa, 0x6e, 0x6f, 0x5f, 0x70, + 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x00, + 0x44, 0x61, 0x74, 0x61, 0x0b, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x6e, 0x6f, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x00, - 0x41, 0x70, 0x70, 0x31, 0x0c, 0x00, 0x00, 0x00, + 0x6e, 0x6f, 0x5f, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x00, 0x41, 0x70, 0x70, 0x31, + 0x0c, 0x00, 0x00, 0x00, 0xdd, 0xcc, 0xbb, 0xaa, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x5f, 0x33, 0x00, 0xbc, 0xbc, 0xbc, 0x44, 0x61, 0x74, 0x61, 0x0c, 0x00, 0x00, 0x00, @@ -614,15 +615,16 @@ const unsigned char DATA_GOLDEN_FILE[] = { 0x00, 0xbc, 0xbc, 0xbc, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x5f, 0x33, 0x00, 0xbc, 0xbc, 0xbc, 0x41, 0x70, 0x70, 0x31, - 0x0d, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x64, - 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x32, 0x5f, - 0x5f, 0x00, 0xbc, 0xbc, 0x44, 0x61, 0x74, 0x61, - 0x0d, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x0d, 0x00, 0x00, 0x00, 0xdd, 0xcc, 0xbb, 0xaa, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x32, 0x5f, 0x5f, 0x00, 0xbc, 0xbc, - 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x74, - 0x6f, 0x5f, 0x32, 0x5f, 0x5f, 0x00, 0xbc, 0xbc, - 0x41, 0x70, 0x70, 0x31, 0x0a, 0x00, 0x00, 0x00, + 0x44, 0x61, 0x74, 0x61, 0x0d, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x70, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x32, 0x5f, + 0x5f, 0x00, 0xbc, 0xbc, 0x70, 0x61, 0x64, 0x64, + 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x5f, 0x32, 0x5f, + 0x5f, 0x00, 0xbc, 0xbc, 0x41, 0x70, 0x70, 0x31, + 0x0a, 0x00, 0x00, 0x00, 0xdd, 0xcc, 0xbb, 0xaa, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x31, 0x00, 0xbc, 0x44, 0x61, 0x74, 0x61, 0x0a, 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, @@ -630,6 +632,7 @@ const unsigned char DATA_GOLDEN_FILE[] = { 0x6f, 0x31, 0x00, 0xbc, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x31, 0x00, 0xbc, 0x46, 0x6f, 0x6f, 0x74, 0x04, 0x00, 0x00, 0x00, + 0x99, 0x99, 0x77, 0x77 }; const int DATA_GOLDEN_FILE_SIZE = sizeof(DATA_GOLDEN_FILE); @@ -639,7 +642,7 @@ test_write_header_and_entity(BackupDataWriter& writer, const char* str) int err; String8 text(str); - err = writer.WriteAppHeader(text); + err = writer.WriteAppHeader(text, 0xaabbccdd); if (err != 0) { fprintf(stderr, "WriteAppHeader failed with %s\n", strerror(err)); return err; @@ -685,7 +688,7 @@ backup_helper_test_data_writer() err |= test_write_header_and_entity(writer, "padded_to_2__"); err |= test_write_header_and_entity(writer, "padded_to1"); - writer.WriteAppFooter(); + writer.WriteAppFooter(0x77779999); close(fd); @@ -697,6 +700,162 @@ backup_helper_test_data_writer() return err; } +int +test_read_header_and_entity(BackupDataReader& reader, const char* str) +{ + int err; + int bufSize = strlen(str)+1; + char* buf = (char*)malloc(bufSize); + String8 string; + int cookie = 0x11111111; + size_t actualSize; + + // printf("\n\n---------- test_read_header_and_entity -- %s\n\n", str); + + err = reader.ReadNextHeader(); + if (err != 0) { + fprintf(stderr, "ReadNextHeader (for app header) failed with %s\n", strerror(err)); + goto done; + } + + err = reader.ReadAppHeader(&string, &cookie); + if (err != 0) { + fprintf(stderr, "ReadAppHeader failed with %s\n", strerror(err)); + goto done; + } + if (string != str) { + fprintf(stderr, "ReadAppHeader expected packageName '%s' got '%s'\n", str, string.string()); + err = EINVAL; + goto done; + } + if (cookie != (int)0xaabbccdd) { + fprintf(stderr, "ReadAppHeader expected cookie 0x%08x got 0x%08x\n", 0xaabbccdd, cookie); + err = EINVAL; + goto done; + } + + err = reader.ReadNextHeader(); + if (err != 0) { + fprintf(stderr, "ReadNextHeader (for entity header) failed with %s\n", strerror(err)); + goto done; + } + + err = reader.ReadEntityHeader(&string, &actualSize); + if (err != 0) { + fprintf(stderr, "ReadEntityHeader failed with %s\n", strerror(err)); + goto done; + } + if (string != str) { + fprintf(stderr, "ReadEntityHeader expected key '%s' got '%s'\n", str, string.string()); + err = EINVAL; + goto done; + } + if ((int)actualSize != bufSize) { + fprintf(stderr, "ReadEntityHeader expected dataSize 0x%08x got 0x%08x\n", bufSize, + actualSize); + err = EINVAL; + goto done; + } + + err = reader.ReadEntityData(buf, bufSize); + if (err != NO_ERROR) { + fprintf(stderr, "ReadEntityData failed with %s\n", strerror(err)); + goto done; + } + + if (0 != memcmp(buf, str, bufSize)) { + fprintf(stderr, "ReadEntityData expected '%s' but got something starting with " + "%02x %02x %02x %02x\n", str, buf[0], buf[1], buf[2], buf[3]); + err = EINVAL; + goto done; + } + + // The next read will confirm whether it got the right amount of data. + +done: + if (err != NO_ERROR) { + fprintf(stderr, "test_read_header_and_entity failed with %s\n", strerror(err)); + } + free(buf); + return err; +} + +int +backup_helper_test_data_reader() +{ + int err; + int fd; + const char* filename = SCRATCH_DIR "data_reader.data"; + + system("rm -r " SCRATCH_DIR); + mkdir(SCRATCH_DIR, 0777); + mkdir(SCRATCH_DIR "data", 0777); + + fd = creat(filename, 0666); + if (fd == -1) { + fprintf(stderr, "error creating: %s\n", strerror(errno)); + return errno; + } + + err = write(fd, DATA_GOLDEN_FILE, DATA_GOLDEN_FILE_SIZE); + if (err != DATA_GOLDEN_FILE_SIZE) { + fprintf(stderr, "Error \"%s\" writing golden file %s\n", strerror(errno), filename); + return errno; + } + + close(fd); + + fd = open(filename, O_RDONLY); + if (fd == -1) { + fprintf(stderr, "Error \"%s\" opening golden file %s for read\n", strerror(errno), + filename); + return errno; + } + + { + BackupDataReader reader(fd); + + err = 0; + + if (err == NO_ERROR) { + err = test_read_header_and_entity(reader, "no_padding_"); + } + + if (err == NO_ERROR) { + err = test_read_header_and_entity(reader, "padded_to__3"); + } + + if (err == NO_ERROR) { + err = test_read_header_and_entity(reader, "padded_to_2__"); + } + + if (err == NO_ERROR) { + err = test_read_header_and_entity(reader, "padded_to1"); + } + + if (err == NO_ERROR) { + err = reader.ReadNextHeader(); + if (err != 0) { + fprintf(stderr, "ReadNextHeader (for app header) failed with %s\n", strerror(err)); + } + + if (err == NO_ERROR) { + int cookie; + err |= reader.ReadAppFooter(&cookie); + if (cookie != 0x77779999) { + fprintf(stderr, "app footer cookie expected=0x%08x actual=0x%08x\n", + 0x77779999, cookie); + err = EINVAL; + } + } + } + } + + close(fd); + + return err; +} + static int get_mod_time(const char* filename, struct timeval times[2]) { diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java index 760b6b5134e8..407b4b36a810 100755 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/MediaNames.java @@ -23,7 +23,8 @@ package com.android.mediaframeworktest; * */ public class MediaNames { - + //A directory to hold all kinds of media files + public static final String MEDIA_SAMPLE_POOL = "/sdcard/media_api/samples/"; //Audio files public static final String MP3CBR = "/sdcard/media_api/music/MP3CBR.mp3"; public static final String MP3VBR = "/sdcard/media_api/music/MP3VBR.mp3"; diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/CodecTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/CodecTest.java index d9e17ea64363..cbd44ab9a970 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/CodecTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/CodecTest.java @@ -34,6 +34,7 @@ import android.util.Log; import java.io.IOException; import java.io.InputStream; +import java.util.Random; /** * Junit / Instrumentation test case for the media player api @@ -50,8 +51,9 @@ public class CodecTest { private static final Object lock = new Object(); private static final Object prepareDone = new Object(); private static final Object videoSizeChanged = new Object(); + private static final Object onCompletion = new Object(); private static boolean onPrepareSuccess = false; - + private static boolean onCompleteSuccess = false; public static String printCpuInfo(){ String cm = "dumpsys cpuinfo"; @@ -725,8 +727,75 @@ public class CodecTest { } return onPrepareSuccess; } - - - -} + static MediaPlayer.OnCompletionListener mCompletionListener = new MediaPlayer.OnCompletionListener() { + public void onCompletion(MediaPlayer mp) { + synchronized (onCompletion) { + Log.v(TAG, "notify the completion callback"); + onCompletion.notify(); + onCompleteSuccess = true; + } + } + }; + + // For each media file, forward twice and backward once, then play to the end + public static boolean playMediaSamples(String filePath) throws Exception { + int duration = 0; + int curPosition = 0; + int nextPosition = 0; + int waittime = 0; + Random r = new Random(); + initializeMessageLooper(); + synchronized (lock) { + try { + lock.wait(WAIT_FOR_COMMAND_TO_COMPLETE); + } catch(Exception e) { + Log.v(TAG, "looper was interrupted."); + return false; + } + } + try { + mMediaPlayer.setOnCompletionListener(mCompletionListener); + Log.v(TAG, "playMediaSamples: sample file name " + filePath); + mMediaPlayer.setDataSource(filePath); + mMediaPlayer.setDisplay(MediaFrameworkTest.mSurfaceView.getHolder()); + mMediaPlayer.prepare(); + duration = mMediaPlayer.getDuration(); + Log.v(TAG, "playMediaSamples: duration = " + duration); + // start to play + mMediaPlayer.start(); + // randomly play for time within (0, duration/3) + Thread.sleep(r.nextInt(duration/3)); + mMediaPlayer.pause(); + Log.v(TAG, "playMediaSamples: current position after pause: " + + mMediaPlayer.getCurrentPosition()); + // seek to position (0, 2/3*duration) + nextPosition = mMediaPlayer.getCurrentPosition() + r.nextInt(duration/3); + mMediaPlayer.seekTo(nextPosition); + Log.v(TAG, "playMediaSamples: current position after the first seek:" + + mMediaPlayer.getCurrentPosition()); + // play for another short time + mMediaPlayer.start(); + Thread.sleep(r.nextInt(duration/6)); + Log.v(TAG, "playMediaSamples: position after the second play:" + + mMediaPlayer.getCurrentPosition()); + // seek to a random position (0, duration) + mMediaPlayer.seekTo(r.nextInt(duration)); + Log.v(TAG, "playMediaSamples: current position after the second seek:" + + mMediaPlayer.getCurrentPosition()); + waittime = duration - mMediaPlayer.getCurrentPosition(); + synchronized(onCompletion){ + try { + onCompletion.wait(waittime + 30000); + }catch (Exception e) { + Log.v(TAG, "playMediaSamples are interrupted"); + return false; + } + } + terminateMessageLooper(); + }catch (Exception e) { + Log.v(TAG, "playMediaSamples:" + e.getMessage()); + } + return onCompleteSuccess; + } +} diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPlayerApiTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPlayerApiTest.java index 8be7058babf7..94c69a87c582 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPlayerApiTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPlayerApiTest.java @@ -26,6 +26,8 @@ import android.test.suitebuilder.annotation.LargeTest; import android.test.suitebuilder.annotation.MediumTest; import android.test.suitebuilder.annotation.Suppress; +import java.io.File; + /** * Junit / Instrumentation test case for the media player api @@ -456,4 +458,29 @@ public class MediaPlayerApiTest extends ActivityInstrumentationTestCase<MediaFra CodecTest.prepareAsyncCallback(MediaNames.STREAM_H264_480_360_1411k, true); assertTrue("StreamH264PrepareAsyncCallback", onPrepareSuccess); } + + //Provide a tool to play all kinds of media files in a directory + @Suppress + @LargeTest + public void testMediaSamples() throws Exception { + // load directory files + boolean onCompleteSuccess = false; + File dir = new File(MediaNames.MEDIA_SAMPLE_POOL); + String[] children = dir.list(); + if (children == null) { + Log.v("MediaPlayerApiTest:testMediaSamples", "dir is empty"); + return; + } else { + for (int i = 0; i < children.length; i++) { + //Get filename of directory + String filename = children[i]; + Log.v("MediaPlayerApiTest", + "testMediaSamples: file to be played: " + + dir + "/" + filename); + onCompleteSuccess = + CodecTest.playMediaSamples(dir + "/" + filename); + assertTrue("testMediaSamples", onCompleteSuccess); + } + } + } } diff --git a/tests/backup/backup_helper_test.cpp b/tests/backup/backup_helper_test.cpp index 66240e383fbf..108590931473 100644 --- a/tests/backup/backup_helper_test.cpp +++ b/tests/backup/backup_helper_test.cpp @@ -23,6 +23,7 @@ Test TESTS[] = { { "backup_helper_test_four", backup_helper_test_four, 0, false }, { "backup_helper_test_files", backup_helper_test_files, 0, false }, { "backup_helper_test_data_writer", backup_helper_test_data_writer, 0, false }, + { "backup_helper_test_data_reader", backup_helper_test_data_reader, 0, false }, { 0, NULL, 0, false} }; diff --git a/tests/sketch/AndroidManifest.xml b/tests/sketch/AndroidManifest.xml index c44b54e5e201..1f4333c5d86a 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 index e516229234d9..8c9161ae2429 100755..100644 --- 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 index 5302d34cd253..73d6a357d204 100755..100644 --- 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 index 6e45d81a424d..91e76458bd77 100755..100644 --- 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 000000000000..b6bbab33ee13 --- /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 4c6aa205ae3d..42f14da8818c 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 29c07adbc18a..a5e7a2556a91 100755 --- a/tests/sketch/src/com/android/gesture/Gesture.java +++ b/tests/sketch/src/com/android/gesture/Gesture.java @@ -18,343 +18,290 @@ package com.android.gesture; 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++; + mGestureID = GESTURE_ID_BASE + sGestureCount++; } - 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; + /** + * @return all the strokes of the gesture + */ + public ArrayList<GestureStroke> getStrokes() { + return mStrokes; } - - public int numOfPoints() { - return this.mPtsBuffer.size(); + + /** + * @return the number of strokes included by this gesture + */ + public int getStrokesCount() { + return mStrokes.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); + /** + * 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); } - mTimestamp = System.currentTimeMillis(); } /** + * 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 + * 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 color + * @return the bitmap */ - 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; - } - } + 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(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); + Path path = stroke.toPath(width - 2 * edge, height - 2 * edge, numSample); + canvas.drawPath(path, paint); } - return path; + + return bitmap; } - + /** - * get a bitmap thumbnail of the gesture with a transparent background - * @param w - * @param h + * Create a bitmap of the gesture with a transparent background + * + * @param width + * @param height * @param 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 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); + stroke.draw(canvas, paint); + } + return bitmap; } - + /** - * save the gesture as XML + * 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 000000000000..130ac190fde9 --- /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 000000000000..3cf9b4cbb09c --- /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 000000000000..0e17c8ac0e86 --- /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 000000000000..32c1ac4fdb6a --- /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 ebb41494a2ff..9b5071401fd0 100755 --- a/tests/sketch/src/com/android/gesture/GestureListener.java +++ b/tests/sketch/src/com/android/gesture/GestureListener.java @@ -18,8 +18,13 @@ package com.android.gesture; 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 000000000000..5cef8c870ad1 --- /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 45a09e6eca98..04dbe3a38ebc 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 @@ 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.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 boolean mShouldFadingOut = true; - private boolean mIsFadingOut = false; - private float mFadingAlpha = 1; + private static final float TOUCH_TOLERANCE = 4; + public static final int DEFAULT_GESTURE_COLOR = Color.argb(255, 255, 255, 0); - private boolean reconstruct = false; + // 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; - 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 @@ public class GesturePad extends View { init(); } - public boolean isEnableRendering() { - return this.mEnableRendering; + public ArrayList<GesturePoint> getCurrentStroke() { + return this.mPointBuffer; } public Gesture getCurrentGesture() { return mCurrentGesture; } - public Paint getPaint() { - return mPaint; - } - - public void setColor(int c) { - this.foreground = c; - } - - public void setFadingAlpha(float f) { - mFadingAlpha = f; + /** + * 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 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); - - 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); + 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)); - mBitmapPaint = new Paint(Paint.DITHER_FLAG); - mPath = new Path(); - - reconstruct = false; - } - - public void cacheGesture(boolean b) { - mCacheGesture = b; - } - - public void enableRendering(boolean b) { - mEnableRendering = b; + mPath = null; } - @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 @@ public class GesturePad extends View { @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); - } - - 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.drawBitmap(mBitmap, 0, 0, paint); } - 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 @@ public class GesturePad extends View { 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 @@ public class GesturePad extends View { mY = y; } - mCurrentGesture.addPoint(x, y); - - Iterator<GestureListener> it = mGestureListeners.iterator(); - while (it.hasNext()) { - it.next().onGesture(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); } } - - 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); - } + // 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; - Iterator<GestureListener> it = mGestureListeners.iterator(); - while (it.hasNext()) { - it.next().onFinishGesture(this, event); + // 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 000000000000..d06eff47811c --- /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 000000000000..feddeadb8c49 --- /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 000000000000..b1081e55236d --- /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 000000000000..7c3237a3d807 --- /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 000000000000..4eb10f9962dd --- /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 000000000000..3bd875b7a517 --- /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 000000000000..63f315640ad3 --- /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 000000000000..fe1984c2086d --- /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 000000000000..60cca8b127e1 --- /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 000000000000..008a972c773c --- /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 000000000000..557c4d9d8348 --- /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 000000000000..50d349a9a402 --- /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 000000000000..6a54b493ed4a --- /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 index 8fee21ac490b..52a2ba8fa5cd 100755..100644 --- 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.AlertDialog; 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 @@ public class GestureEntryDemo extends Activity { 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 @@ public class GestureEntryDemo extends Activity { }); // 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 class GestureEntryDemo extends Activity { 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 @@ public class GestureEntryDemo extends Activity { 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 @@ public class GestureEntryDemo extends Activity { @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 @@ public class GestureEntryDemo extends Activity { 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 index 7ae7fc5e84d3..ca541105e603 100755..100644 --- 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.Spinner; 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(); } } |