# HG changeset patch # User Jaroslav Tulach # Date 1424592014 -3600 # Node ID 681e61714a1dc07e36ee768766454e5362fbf3fb # Parent 75671373fa87fb9d61ab71e02f3ace7b8bb509e8 Locale.getDefault() reads real value from navigator.language & co. diff -r 75671373fa87 -r 681e61714a1d rt/emul/compact/src/main/java/java/util/Locale.java --- a/rt/emul/compact/src/main/java/java/util/Locale.java Sat Jan 10 19:38:00 2015 +0100 +++ b/rt/emul/compact/src/main/java/java/util/Locale.java Sun Feb 22 09:00:14 2015 +0100 @@ -45,6 +45,7 @@ import java.io.ObjectOutputStream; import java.io.ObjectStreamField; import java.io.Serializable; +import org.apidesign.bck2brwsr.core.JavaScriptBody; /** * A Locale object represents a specific geographical, political, @@ -634,8 +635,20 @@ * @return the default locale for this instance of the Java Virtual Machine */ public static Locale getDefault() { + String lang = language(); + if (lang != null) { + String[] arr = lang.split("-"); + return new Locale(arr[0], arr[1]); + } return Locale.US; } + + @JavaScriptBody(args = {}, body = "" + + "if (navigator.language) return navigator.language;\n" + + "if (navigator.userLangage) return navigator.userLangage;\n" + + "return null;\n" + ) + private static native String language(); /** * Gets the current value of the default locale for the specified Category @@ -654,7 +667,7 @@ * @since 1.7 */ public static Locale getDefault(Locale.Category category) { - return Locale.US; + return getDefault(); } /**