View Javadoc
1   package com.atlassian.refapp.sal.message;
2   
3   import com.atlassian.plugin.spring.scanner.annotation.export.ExportAsService;
4   import com.atlassian.sal.api.message.LocaleResolver;
5   import com.atlassian.sal.api.user.UserKey;
6   
7   import javax.inject.Named;
8   import javax.servlet.http.HttpServletRequest;
9   import java.util.HashSet;
10  import java.util.Locale;
11  import java.util.Set;
12  
13  @ExportAsService
14  @Named("localeResolver")
15  public class RefimplLocaleResolver implements LocaleResolver {
16      @Override
17      public Locale getLocale(HttpServletRequest request) {
18          String country = request.getParameter("locale.country");
19          String lang = request.getParameter("locale.lang");
20          String variant = request.getParameter("locale.variant");
21  
22          if (lang != null && country != null && variant != null) {
23              return new Locale(lang, country, variant);
24          } else if (lang != null && country != null) {
25              return new Locale(lang, country);
26          } else if (lang != null) {
27              return new Locale(lang);
28          } else if (request.getLocale() != null) {
29              return request.getLocale();
30          }
31  
32          return getLocale();
33      }
34  
35      @Override
36      public Locale getLocale() {
37          return Locale.getDefault();
38      }
39  
40      @Override
41      public Locale getLocale(UserKey userKey) {
42          return Locale.getDefault();
43      }
44  
45      @Override
46      public Set<Locale> getSupportedLocales() {
47          final Set<Locale> ret = new HashSet<Locale>();
48          ret.add(new Locale("en", "AU"));
49          ret.add(Locale.US);
50          ret.add(Locale.ENGLISH);
51          ret.add(Locale.FRENCH);
52          ret.add(Locale.GERMAN);
53          return ret;
54      }
55  }