When you specify a Locale in Android, it will change the strings offered for Date, etc. So if I change my locale to French, France, my Android datepicker will show "Mardi" instead of "Monday".
Where are these translations stored? I've traced the code all the way to libcore.icu.LocaleData, but I can't figure out where it is getting the translations. For instance, in the below code, (link) where are they finding they populating public String[] longMonthNames;
? I've grepped the repo and can't find the resources.
package libcore.icu;
public final class LocaleData {
// A cache for the locale-specific data.
private static final HashMap<String, LocaleData> localeDataCache = new HashMap<String, LocaleData>();
static {
// Ensure that we pull in the locale data for the root locale, en_US, and the
// user's default locale. (All devices must support the root locale and en_US,
// and they're used for various system things like HTTP headers.) Pre-populating
// the cache is especially useful on Android because we'll share this via the Zygote.
get(Locale.ROOT);
get(Locale.US);
get(Locale.getDefault());
}
// Used by Calendar.
public Integer firstDayOfWeek;
public Integer minimalDaysInFirstWeek;
// Used by DateFormatSymbols.
public String[] amPm; // "AM", "PM".
public String[] eras; // "BC", "AD".
public String[] longMonthNames; // "January", ...
public String[] shortMonthNames; // "Jan", ...
public String[] tinyMonthNames; // "J", ...
public String[] longStandAloneMonthNames; // "January", ...
public String[] shortStandAloneMonthNames; // "Jan", ...
public String[] tinyStandAloneMonthNames; // "J", ...
The reason I need to do this is because I need to overwrite some of the