1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.mylasta.direction.sponsor;
17
18 import java.util.Locale;
19
20 import org.apache.commons.lang3.LocaleUtils;
21 import org.apache.logging.log4j.LogManager;
22 import org.apache.logging.log4j.Logger;
23 import org.codelibs.core.lang.StringUtil;
24 import org.codelibs.fess.mylasta.direction.FessConfig;
25 import org.codelibs.fess.util.ComponentUtil;
26 import org.dbflute.optional.OptionalObject;
27 import org.dbflute.optional.OptionalThing;
28 import org.dbflute.util.DfTypeUtil;
29 import org.lastaflute.web.ruts.process.ActionRuntime;
30 import org.lastaflute.web.servlet.request.RequestManager;
31 import org.lastaflute.web.servlet.request.UserLocaleProcessProvider;
32
33
34
35
36
37
38 public class FessUserLocaleProcessProvider implements UserLocaleProcessProvider {
39 private static final Logger logger = LogManager.getLogger(FessUserLocaleProcessProvider.class);
40
41 @Override
42 public boolean isAcceptCookieLocale() {
43 return false;
44 }
45
46 @Override
47 public OptionalThing<Locale> findBusinessLocale(final ActionRuntime runtimeMeta, final RequestManager requestManager) {
48 final FessConfig fessConfig = ComponentUtil.getFessConfig();
49 final String name = fessConfig.getQueryBrowserLangParameterName();
50 if (StringUtil.isNotBlank(name)) {
51 try {
52 return requestManager.getParameter(name).filter(StringUtil::isNotBlank).map(LocaleUtils::toLocale);
53 } catch (final Exception e) {
54 logger.debug("Failed to parse locale: name={}", name, e);
55 }
56 }
57 return OptionalObject.empty();
58 }
59
60 @Override
61 public OptionalThing<Locale> getRequestedLocale(final RequestManager requestManager) {
62 return OptionalObject.empty();
63 }
64
65
66
67
68 @Override
69 public String toString() {
70 final String hash = Integer.toHexString(hashCode());
71 return DfTypeUtil.toClassTitle(this) + ":{acceptCookieLocale=" + isAcceptCookieLocale() + "}@" + hash;
72 }
73 }