4
4
import java .util .Locale ;
5
5
import java .util .Map ;
6
6
import java .util .Optional ;
7
+ import javax .annotation .Nullable ;
7
8
import org .opentripplanner .framework .i18n .I18NString ;
8
9
9
10
public class GraphQLUtils {
10
11
11
- public static String getTranslation (I18NString input , DataFetchingEnvironment environment ) {
12
+ public static String getTranslation (
13
+ @ Nullable I18NString input ,
14
+ DataFetchingEnvironment environment
15
+ ) {
12
16
if (input == null ) {
13
17
return null ;
14
18
}
@@ -24,15 +28,18 @@ public static Locale getLocale(DataFetchingEnvironment environment) {
24
28
return getLocaleFromEnvironment (environment );
25
29
}
26
30
27
- public static Locale getLocale (DataFetchingEnvironment environment , String localeString ) {
31
+ public static Locale getLocale (
32
+ DataFetchingEnvironment environment ,
33
+ @ Nullable String localeString
34
+ ) {
28
35
if (localeString != null ) {
29
36
return Locale .forLanguageTag (localeString );
30
37
}
31
38
32
39
return getLocaleFromEnvironment (environment );
33
40
}
34
41
35
- public static Locale getLocale (DataFetchingEnvironment environment , Locale locale ) {
42
+ public static Locale getLocale (DataFetchingEnvironment environment , @ Nullable Locale locale ) {
36
43
if (locale != null ) {
37
44
return locale ;
38
45
}
@@ -42,18 +49,10 @@ public static Locale getLocale(DataFetchingEnvironment environment, Locale local
42
49
43
50
public static Locale getLocaleFromEnvironment (DataFetchingEnvironment environment ) {
44
51
// This can come from the accept-language header
45
- var userLocale = environment .getLocale ();
46
- var defaultLocale = getDefaultLocale (environment );
47
-
48
- if (userLocale == null ) {
49
- return defaultLocale .orElse (Locale .forLanguageTag ("*" ));
50
- }
51
-
52
- if (defaultLocale .isPresent () && acceptAnyLocale (userLocale )) {
53
- return defaultLocale .get ();
54
- }
55
-
56
- return userLocale ;
52
+ var envLocale = environment .getLocale ();
53
+ // This can come from a locale param
54
+ var localContextLocale = getDefaultLocale (environment );
55
+ return localContextLocale .orElse (envLocale );
57
56
}
58
57
59
58
private static Optional <Locale > getDefaultLocale (DataFetchingEnvironment environment ) {
@@ -63,8 +62,4 @@ private static Optional<Locale> getDefaultLocale(DataFetchingEnvironment environ
63
62
}
64
63
return Optional .ofNullable ((Locale ) localContext .get ("locale" ));
65
64
}
66
-
67
- private static boolean acceptAnyLocale (Locale locale ) {
68
- return locale .getLanguage ().equals ("*" );
69
- }
70
65
}
0 commit comments