changeset 4489:c3a8d5feee94

7073906: Locale.getDefault() returns wrong Locale for Java SE 7 Reviewed-by: okutsu
author naoto
date Wed, 17 Aug 2011 11:09:06 -0700
parents dd218ad64d5c
children f59c83f515e6
files src/windows/native/java/lang/java_props_md.c
diffstat 1 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/windows/native/java/lang/java_props_md.c	Tue Aug 16 08:53:03 2011 +0800
+++ b/src/windows/native/java/lang/java_props_md.c	Wed Aug 17 11:09:06 2011 -0700
@@ -563,6 +563,18 @@
         {
             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,
                            &sprops.language,
                            &sprops.script,