am bfa6ddd0
: Merge "Support deprecated language codes."
* commit 'bfa6ddd02d699f43915cba8027ab324d234b4836': Support deprecated language codes.
This commit is contained in:
@ -1569,7 +1569,7 @@ public class Resources {
|
||||
|
||||
String locale = null;
|
||||
if (mConfiguration.locale != null) {
|
||||
locale = mConfiguration.locale.toLanguageTag();
|
||||
locale = adjustLanguageTag(localeToLanguageTag(mConfiguration.locale));
|
||||
}
|
||||
int width, height;
|
||||
if (mMetrics.widthPixels >= mMetrics.heightPixels) {
|
||||
@ -1650,6 +1650,47 @@ public class Resources {
|
||||
}
|
||||
}
|
||||
|
||||
// Locale.toLanguageTag() is not available in Java6. LayoutLib overrides
|
||||
// this method to enable users to use Java6.
|
||||
private String localeToLanguageTag(Locale locale) {
|
||||
return locale.toLanguageTag();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@code Locale.toLanguageTag} will transform the obsolete (and deprecated)
|
||||
* language codes "in", "ji" and "iw" to "id", "yi" and "he" respectively.
|
||||
*
|
||||
* All released versions of android prior to "L" used the deprecated language
|
||||
* tags, so we will need to support them for backwards compatibility.
|
||||
*
|
||||
* Note that this conversion needs to take place *after* the call to
|
||||
* {@code toLanguageTag} because that will convert all the deprecated codes to
|
||||
* the new ones, even if they're set manually.
|
||||
*/
|
||||
private static String adjustLanguageTag(String languageTag) {
|
||||
final int separator = languageTag.indexOf('-');
|
||||
final String language;
|
||||
final String remainder;
|
||||
|
||||
if (separator == -1) {
|
||||
language = languageTag;
|
||||
remainder = "";
|
||||
} else {
|
||||
language = languageTag.substring(0, separator);
|
||||
remainder = languageTag.substring(separator);
|
||||
}
|
||||
|
||||
if ("id".equals(language)) {
|
||||
return "in" + remainder;
|
||||
} else if ("yi".equals(language)) {
|
||||
return "ji" + remainder;
|
||||
} else if ("he".equals(language)) {
|
||||
return "iw" + remainder;
|
||||
} else {
|
||||
return languageTag;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the system resources configuration if they have previously
|
||||
* been initialized.
|
||||
|
Reference in New Issue
Block a user