Merge
This commit is contained in:
commit
fe76ef7825
@ -1589,7 +1589,7 @@ public final class Locale implements Cloneable, Serializable {
|
|||||||
* @since 1.7
|
* @since 1.7
|
||||||
*/
|
*/
|
||||||
public String getDisplayScript() {
|
public String getDisplayScript() {
|
||||||
return getDisplayScript(getDefault());
|
return getDisplayScript(getDefault(Category.DISPLAY));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -563,6 +563,18 @@ GetJavaProperties(JNIEnv* env)
|
|||||||
{
|
{
|
||||||
char * display_encoding;
|
char * display_encoding;
|
||||||
|
|
||||||
|
// Windows UI Language selection list only cares "language"
|
||||||
|
// information of the UI Language. For example, the list
|
||||||
|
// just lists "English" but it actually means "en_US", and
|
||||||
|
// the user cannot select "en_GB" (if exists) in the list.
|
||||||
|
// So, this hack is to use the user LCID region information
|
||||||
|
// for the UI Language, if the "language" portion of those
|
||||||
|
// two locales are the same.
|
||||||
|
if (PRIMARYLANGID(LANGIDFROMLCID(userDefaultLCID)) ==
|
||||||
|
PRIMARYLANGID(LANGIDFROMLCID(userDefaultUILang))) {
|
||||||
|
userDefaultUILang = userDefaultLCID;
|
||||||
|
}
|
||||||
|
|
||||||
SetupI18nProps(userDefaultUILang,
|
SetupI18nProps(userDefaultUILang,
|
||||||
&sprops.language,
|
&sprops.language,
|
||||||
&sprops.script,
|
&sprops.script,
|
||||||
|
@ -56,6 +56,7 @@ public class LocaleCategory {
|
|||||||
Locale.getDefault().getVariant())).build();
|
Locale.getDefault().getVariant())).build();
|
||||||
checkDefault();
|
checkDefault();
|
||||||
testGetSetDefault();
|
testGetSetDefault();
|
||||||
|
testBug7079486();
|
||||||
} finally {
|
} finally {
|
||||||
// restore the reserved locale
|
// restore the reserved locale
|
||||||
Locale.setDefault(reservedLocale);
|
Locale.setDefault(reservedLocale);
|
||||||
@ -82,5 +83,24 @@ public class LocaleCategory {
|
|||||||
throw new RuntimeException("setDefault() should set all default locales for all categories");
|
throw new RuntimeException("setDefault() should set all default locales for all categories");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void testBug7079486() {
|
||||||
|
Locale zh_Hans_CN = Locale.forLanguageTag("zh-Hans-CN");
|
||||||
|
|
||||||
|
// make sure JRE has zh_Hans_CN localized string
|
||||||
|
if (zh_Hans_CN.getDisplayScript(Locale.US).equals(zh_Hans_CN.getDisplayScript(zh_Hans_CN))) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Locale.setDefault(Locale.US);
|
||||||
|
String en_script = zh_Hans_CN.getDisplayScript();
|
||||||
|
|
||||||
|
Locale.setDefault(Locale.Category.DISPLAY, zh_Hans_CN);
|
||||||
|
String zh_script = zh_Hans_CN.getDisplayScript();
|
||||||
|
|
||||||
|
if (en_script.equals(zh_script)) {
|
||||||
|
throw new RuntimeException("Locale.getDisplayScript() (no args) does not honor default DISPLAY locale");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# @test
|
# @test
|
||||||
# @bug 4700857 6997928
|
# @bug 4700857 6997928 7079486
|
||||||
# @summary tests for Locale.getDefault(Locale.Category) and
|
# @summary tests for Locale.getDefault(Locale.Category) and
|
||||||
# Locale.setDefault(Locale.Category, Locale)
|
# Locale.setDefault(Locale.Category, Locale)
|
||||||
# @build LocaleCategory
|
# @build LocaleCategory
|
||||||
|
Loading…
x
Reference in New Issue
Block a user