Maven default locale not same with OS locale
You can use this command
set MAVEN_OPTS= -Duser.language=tr
Anyway the best solution is to put these informations in the POM file and never by command line. In particular you have to deal with the configuration of Maven-Surefire-Plugin
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<systemPropertyVariables>
<user.language>tr</user.language>
<user.region>TR</user.region>
</systemPropertyVariables>
</configuration>
</plugin>
Second Question: Another question if I may, I am running a web app in my locale but it supports lets say german, english.. And your system locale is DE. Can I get your system locale from your request? Or maybe the language you prefer by your browser?
You can take these informations from the request. Here is an example in a servlet.
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.Locale;
public class GetLocale extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException
{
Locale locale = request.getLocale();
String language = locale.getLanguage();
String country = locale.getCountry();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(language + ":" + country);
}
}
You can also use
<properties>
<argLine>-Duser.language=tr</argLine>
</properties>
This case works better when the argument is needed at the start of the JVM, as using maven-surefire-plugin
, your JVM is already running and the arguments won't be reloaded (that was my case using some initialization with @RunWith(SpringRunner.class)
and @SpringBootTest
to initialize a MockMvc
).