I've recently had a problem with Java locales in my system, and I was trying to run a project with this configuration:

```
-Duser.language=pt_BR
-Duser.country=BR

```

After googling, I found [this site](http://obscuredclarity.blogspot.com.br/2011/02/set-tomcats-default-locale.html) which had me changing my configuration to:

```
-Duser.language=pt
-Duser.region=BR
-Duser.country=BR

```

And the problem was gone. Additionaly I've found pages [like this](https://stackoverflow.com/a/64096/2353377) talking about using another property called `user.variant`.

I'm not after LC\_\* properties, I'm just trying to find out what's the difference between these four properties?

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

```

Thanks