|
|
|
|
|
|
|
|
final DisplayMetrics metrics = context.getResources().getDisplayMetrics(); |
|
|
final DisplayMetrics metrics = context.getResources().getDisplayMetrics(); |
|
|
final Configuration config = context.getResources().getConfiguration(); |
|
|
final Configuration config = context.getResources().getConfiguration(); |
|
|
|
|
|
|
|
|
final String language = getIanaLocaleCode(locale.getLanguage(), mJavaToIanaLanguageCode); |
|
|
|
|
|
|
|
|
final String language = getIanaLanguageCode(locale.getLanguage()); |
|
|
final String country = getIanaLocaleCode(locale.getCountry(), mJavaToIanaCountryCode); |
|
|
final String country = getIanaLocaleCode(locale.getCountry(), mJavaToIanaCountryCode); |
|
|
config.locale = new Locale(language, country, locale.getVariant()); |
|
|
config.locale = new Locale(language, country, locale.getVariant()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void onSynthDataComplete(); |
|
|
void onSynthDataComplete(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static String getIanaLanguageCode(String code) { |
|
|
|
|
|
return getIanaLocaleCode(code, mJavaToIanaLanguageCode); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private static String getIanaLocaleCode(String code, final Map<String, String> javaToIana) { |
|
|
private static String getIanaLocaleCode(String code, final Map<String, String> javaToIana) { |
|
|
final String iana = javaToIana.get(code); |
|
|
final String iana = javaToIana.get(code); |
|
|
if (iana != null) { |
|
|
if (iana != null) { |
|
|
|
|
|
|
|
|
private static final Map<String, String> mJavaToIanaCountryCode = new HashMap<String, String>(); |
|
|
private static final Map<String, String> mJavaToIanaCountryCode = new HashMap<String, String>(); |
|
|
static { |
|
|
static { |
|
|
mJavaToIanaLanguageCode.put("afr", "af"); |
|
|
mJavaToIanaLanguageCode.put("afr", "af"); |
|
|
mJavaToIanaLanguageCode.put("aka", "ak"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("amh", "am"); |
|
|
mJavaToIanaLanguageCode.put("amh", "am"); |
|
|
mJavaToIanaLanguageCode.put("arg", "an"); |
|
|
mJavaToIanaLanguageCode.put("arg", "an"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("asm", "as"); |
|
|
mJavaToIanaLanguageCode.put("aze", "az"); |
|
|
mJavaToIanaLanguageCode.put("aze", "az"); |
|
|
mJavaToIanaLanguageCode.put("bul", "bg"); |
|
|
mJavaToIanaLanguageCode.put("bul", "bg"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("ben", "bn"); |
|
|
mJavaToIanaLanguageCode.put("bos", "bs"); |
|
|
mJavaToIanaLanguageCode.put("bos", "bs"); |
|
|
mJavaToIanaLanguageCode.put("cat", "ca"); |
|
|
mJavaToIanaLanguageCode.put("cat", "ca"); |
|
|
mJavaToIanaLanguageCode.put("ces", "cs"); |
|
|
mJavaToIanaLanguageCode.put("ces", "cs"); |
|
|
mJavaToIanaLanguageCode.put("cym", "cy"); |
|
|
mJavaToIanaLanguageCode.put("cym", "cy"); |
|
|
mJavaToIanaLanguageCode.put("dan", "da"); |
|
|
mJavaToIanaLanguageCode.put("dan", "da"); |
|
|
mJavaToIanaLanguageCode.put("deu", "de"); |
|
|
mJavaToIanaLanguageCode.put("deu", "de"); |
|
|
mJavaToIanaLanguageCode.put("div", "dv"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("ell", "el"); |
|
|
mJavaToIanaLanguageCode.put("ell", "el"); |
|
|
mJavaToIanaLanguageCode.put("eng", "en"); |
|
|
mJavaToIanaLanguageCode.put("eng", "en"); |
|
|
mJavaToIanaLanguageCode.put("epo", "eo"); |
|
|
mJavaToIanaLanguageCode.put("epo", "eo"); |
|
|
mJavaToIanaLanguageCode.put("spa", "es"); |
|
|
mJavaToIanaLanguageCode.put("spa", "es"); |
|
|
mJavaToIanaLanguageCode.put("est", "et"); |
|
|
mJavaToIanaLanguageCode.put("est", "et"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("eus", "eu"); |
|
|
mJavaToIanaLanguageCode.put("fas", "fa"); |
|
|
mJavaToIanaLanguageCode.put("fas", "fa"); |
|
|
mJavaToIanaLanguageCode.put("fin", "fi"); |
|
|
mJavaToIanaLanguageCode.put("fin", "fi"); |
|
|
mJavaToIanaLanguageCode.put("fra", "fr"); |
|
|
mJavaToIanaLanguageCode.put("fra", "fr"); |
|
|
mJavaToIanaLanguageCode.put("gla", "gd"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("gle", "ga"); |
|
|
mJavaToIanaLanguageCode.put("gle", "ga"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("gla", "gd"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("guj", "gu"); |
|
|
mJavaToIanaLanguageCode.put("hin", "hi"); |
|
|
mJavaToIanaLanguageCode.put("hin", "hi"); |
|
|
mJavaToIanaLanguageCode.put("hrv", "hr"); |
|
|
mJavaToIanaLanguageCode.put("hrv", "hr"); |
|
|
mJavaToIanaLanguageCode.put("hat", "ht"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("hun", "hu"); |
|
|
mJavaToIanaLanguageCode.put("hun", "hu"); |
|
|
mJavaToIanaLanguageCode.put("hye", "hy"); |
|
|
mJavaToIanaLanguageCode.put("hye", "hy"); |
|
|
mJavaToIanaLanguageCode.put("ina", "ia"); |
|
|
mJavaToIanaLanguageCode.put("ina", "ia"); |
|
|
|
|
|
|
|
|
mJavaToIanaLanguageCode.put("isl", "is"); |
|
|
mJavaToIanaLanguageCode.put("isl", "is"); |
|
|
mJavaToIanaLanguageCode.put("ita", "it"); |
|
|
mJavaToIanaLanguageCode.put("ita", "it"); |
|
|
mJavaToIanaLanguageCode.put("kat", "ka"); |
|
|
mJavaToIanaLanguageCode.put("kat", "ka"); |
|
|
mJavaToIanaLanguageCode.put("kaz", "kk"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("kal", "kl"); |
|
|
mJavaToIanaLanguageCode.put("kal", "kl"); |
|
|
mJavaToIanaLanguageCode.put("kan", "kn"); |
|
|
mJavaToIanaLanguageCode.put("kan", "kn"); |
|
|
mJavaToIanaLanguageCode.put("kor", "ko"); |
|
|
mJavaToIanaLanguageCode.put("kor", "ko"); |
|
|
|
|
|
|
|
|
mJavaToIanaLanguageCode.put("lav", "lv"); |
|
|
mJavaToIanaLanguageCode.put("lav", "lv"); |
|
|
mJavaToIanaLanguageCode.put("mkd", "mk"); |
|
|
mJavaToIanaLanguageCode.put("mkd", "mk"); |
|
|
mJavaToIanaLanguageCode.put("mal", "ml"); |
|
|
mJavaToIanaLanguageCode.put("mal", "ml"); |
|
|
mJavaToIanaLanguageCode.put("mlt", "mt"); |
|
|
|
|
|
|
|
|
mJavaToIanaLanguageCode.put("msa", "ms"); |
|
|
mJavaToIanaLanguageCode.put("nep", "ne"); |
|
|
mJavaToIanaLanguageCode.put("nep", "ne"); |
|
|
mJavaToIanaLanguageCode.put("nld", "nl"); |
|
|
mJavaToIanaLanguageCode.put("nld", "nl"); |
|
|
mJavaToIanaLanguageCode.put("nor", "no"); |
|
|
mJavaToIanaLanguageCode.put("nor", "no"); |
|
|
|
|
|
|
|
|
mJavaToIanaLanguageCode.put("por", "pt"); |
|
|
mJavaToIanaLanguageCode.put("por", "pt"); |
|
|
mJavaToIanaLanguageCode.put("ron", "ro"); |
|
|
mJavaToIanaLanguageCode.put("ron", "ro"); |
|
|
mJavaToIanaLanguageCode.put("rus", "ru"); |
|
|
mJavaToIanaLanguageCode.put("rus", "ru"); |
|
|
mJavaToIanaLanguageCode.put("kin", "rw"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("sin", "si"); |
|
|
mJavaToIanaLanguageCode.put("sin", "si"); |
|
|
mJavaToIanaLanguageCode.put("slk", "sk"); |
|
|
mJavaToIanaLanguageCode.put("slk", "sk"); |
|
|
mJavaToIanaLanguageCode.put("slv", "sl"); |
|
|
mJavaToIanaLanguageCode.put("slv", "sl"); |
|
|
|
|
|
|
|
|
mJavaToIanaLanguageCode.put("swa", "sw"); |
|
|
mJavaToIanaLanguageCode.put("swa", "sw"); |
|
|
mJavaToIanaLanguageCode.put("tam", "ta"); |
|
|
mJavaToIanaLanguageCode.put("tam", "ta"); |
|
|
mJavaToIanaLanguageCode.put("tel", "te"); |
|
|
mJavaToIanaLanguageCode.put("tel", "te"); |
|
|
mJavaToIanaLanguageCode.put("tsn", "tn"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("tur", "tr"); |
|
|
mJavaToIanaLanguageCode.put("tur", "tr"); |
|
|
mJavaToIanaLanguageCode.put("tat", "tt"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("urd", "ur"); |
|
|
mJavaToIanaLanguageCode.put("urd", "ur"); |
|
|
mJavaToIanaLanguageCode.put("vie", "vi"); |
|
|
mJavaToIanaLanguageCode.put("vie", "vi"); |
|
|
mJavaToIanaLanguageCode.put("wol", "wo"); |
|
|
|
|
|
mJavaToIanaLanguageCode.put("zho", "zh"); |
|
|
mJavaToIanaLanguageCode.put("zho", "zh"); |
|
|
mJavaToIanaLanguageCode.put("yue", "zh"); |
|
|
|
|
|
|
|
|
|
|
|
mJavaToIanaCountryCode.put("JAM", "JM"); |
|
|
mJavaToIanaCountryCode.put("JAM", "JM"); |
|
|
mJavaToIanaCountryCode.put("MEX", "MX"); |
|
|
mJavaToIanaCountryCode.put("MEX", "MX"); |