任何人都可以告诉我如何获取用户在Java
中的操作系统区域设置。我正在使用Spring MVC
创建具有国际化支持的Web应用程序,因此我需要 retreive 用户操作系统的区域设置。
我已尝试Locale.getDefault()
,但即使我的系统的区域设置为en-US
fr-FR
提供值
我知道如何从用户的浏览器中获取语言(使用Accept Header
),但我需要阅读操作系统语言设置。
答案 0 :(得分:1)
Locale.getDefault()
将获取服务器的区域设置,因此绝对不是您想要的。
Accept-Language
HTTP标头将指定客户端可接受的语言,这可能是Web浏览器通过查看客户端的操作系统语言来完成的。
然后,您必须解析该值,以便为您的Web应用程序找到匹配的区域设置。
答案 1 :(得分:0)
如果您想查找网络请求用户的区域设置,请尝试https://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getLocale()
答案 2 :(得分:0)
我们正在谈论Web应用程序,因此一般而言,您对用户的了解都是HTTP请求提供的(这是一种简化,但作为一般规则)。 HTTP请求提供的语言是Accept-Language标头,仅此而已。这是您可以获得的特定于浏览器的设置。获取Web用户的操作系统语言不是你给的,所以不,你不能得到它。
(有一些解决方法,例如,如果你想运行一个java applet来找到它,它可能是可能的。但是,这将是我建议反对的路径。)