locale helper
[svjatoslav_commons.git] / src / main / java / eu / svjatoslav / commons / network / LocaleHelper.java
1 package eu.svjatoslav.commons.network;
2
3 import javax.servlet.http.HttpServletRequest;
4
5 public class LocaleHelper {
6
7     public static Locale detectLocale(final HttpServletRequest request) {
8
9         final String sessionLocaleString = (String) request.getSession().getAttribute("locale");
10
11         Locale sessionLocale = localeFromString(sessionLocaleString);
12         if (sessionLocale == null) {
13             sessionLocale = Locale.ENG;
14         }
15
16         final Locale requestLocale = localeFromString(request.getParameter("locale"));
17         if (requestLocale != null) {
18             sessionLocale = requestLocale;
19         }
20
21         request.getSession().setAttribute("locale", sessionLocale.asString());
22
23         return sessionLocale;
24     }
25
26     public static Locale localeFromString(final String localeString) {
27         for (final Locale locale : Locale.values()) {
28             if (locale.asString().equals(localeString)) {
29                 return locale;
30             }
31         }
32
33         return null;
34     }
35
36 }