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;
|
String locale = null;
|
||||||
if (mConfiguration.locale != null) {
|
if (mConfiguration.locale != null) {
|
||||||
locale = mConfiguration.locale.toLanguageTag();
|
locale = adjustLanguageTag(localeToLanguageTag(mConfiguration.locale));
|
||||||
}
|
}
|
||||||
int width, height;
|
int width, height;
|
||||||
if (mMetrics.widthPixels >= mMetrics.heightPixels) {
|
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
|
* Update the system resources configuration if they have previously
|
||||||
* been initialized.
|
* been initialized.
|
||||||
|
Reference in New Issue
Block a user