Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';user.region、user.language、user.country和user.variant之间的区别是什么?_Java_Locale - Fatal编程技术网

Java 什么';user.region、user.language、user.country和user.variant之间的区别是什么?

Java 什么';user.region、user.language、user.country和user.variant之间的区别是什么?,java,locale,Java,Locale,我最近在我的系统中遇到了Java语言环境的问题,我尝试使用以下配置运行一个项目: -Duser.language=pt_BR -Duser.country=BR 在谷歌搜索之后,我发现了让我将配置更改为: -Duser.language=pt -Duser.region=BR -Duser.country=BR 问题就解决了。另外,我还发现一些页面在谈论使用另一个名为user.variant的属性 我不是在寻找LC_*properties,我只是想找出这四个属性之间的区别 user.lang

我最近在我的系统中遇到了Java语言环境的问题,我尝试使用以下配置运行一个项目:

-Duser.language=pt_BR
-Duser.country=BR
在谷歌搜索之后,我发现了让我将配置更改为:

-Duser.language=pt
-Duser.region=BR
-Duser.country=BR
问题就解决了。另外,我还发现一些页面在谈论使用另一个名为
user.variant
的属性

我不是在寻找LC_*properties,我只是想找出这四个属性之间的区别

user.language
user.region
user.country
user.variant

谢谢

请查看
语言环境的javadoc


它描述了语言、变体等。

如果有一天上面的链接中断

复制粘贴自

用户语言 alpha-2或alpha-3语言代码,或注册语言子标签,最多8个字母(用于将来的增强)。当一种语言同时具有alpha-2代码和alpha-3代码时,必须使用alpha-2代码。您可以在IANA语言子标签注册表中找到有效语言代码的完整列表(搜索“类型:语言”)。language字段不区分大小写,但Locale始终规范化为小写。 格式良好的语言值的形式为[a-zA-Z]{2,8}。请注意,这不是完整的BCP47语言产品,因为它不包括extlang。因为现代的三字母语言代码取代了它们,所以不需要它们。 例如:“en”(英语)、“ja”(日语)、“kok”(Konkani)

user.region/user.country 字母-2国家代码或UN M.49数字-3区号。您可以在IANA语言子标签注册表中找到有效国家和地区代码的完整列表(搜索“类型:地区”)。国家(地区)字段不区分大小写,但区域设置始终规范化为大写。 格式正确的国家/地区值的形式为[a-zA-Z]{2}|[0-9]{3} 例如:“美国”、“法国”、“029”(加勒比海)

用户变量 用于指示区域设置变化的任意值。如果存在两个或多个变量值,每个变量值都表示其自身的语义,则这些值应按重要性排序,最重要的值应首先用下划线(“”)分隔。变量字段区分大小写

注:IETF BCP 47对变体子标签进行了语法限制。此外,BCP 47子标签严格用于表示定义语言或其方言的其他变体,这些变体不包括在语言、脚本和区域子标签的任何组合中。您可以在IANA语言子标签注册表中找到有效变体代码的完整列表(搜索“类型:变体”)

然而,在历史上,Locale中的variant字段用于任何类型的变体,而不仅仅是语言变体。例如,Java SE运行时环境中提供的一些受支持的变体表示替代的文化行为,如日历类型或数字脚本。在BCP 47中,这种不识别语言的信息由扩展子标签或专用子标签支持

格式良好的变量值的形式为SUBTAG((“|’-”)SUBTAG)*,其中SUBTAG=[0-9][0-9a-zA-Z]{3}|[0-9a-zA-Z]{5,8}。(注意:BCP 47仅使用连字符(“-”)作为分隔符,这更为宽松)

示例:“polyton”(多声调希腊语),“POSIX”


谢谢,这澄清了很多。有时我们只是因为某种原因不看官方文件。唯一不完全清楚的是
user.country
user.region
属性是否具有相同的效果(即使文档将其称为“国家(地区)”)。我只是手动测试了一下,它们确实是一样的。