@Override public ImmutableMap<String, Locale> load(Portal key) throws Exception { return Maps.uniqueIndex(key.getLocales(), Functions.toStringFunction()); } }
private ResolvedLocale resolve(Portal portal, PathSegments path, HttpHeaders headers, HttpRequestContext request, LocalParams parameters) { final Locale locale = headers.getLanguage(); final List<Locale> acceptables = headers.getAcceptableLanguages(); if (locale == null && (acceptables == null || acceptables.isEmpty())) { return null; } final Set<Locale> locales = portalSupportedLocales( portal.getDefaultLocale(), portal.getLocales()); if (locales.isEmpty()) { return null; } if (locale != null && locales.contains(locale)) { return new ResolvedLocale(path, locale, parameters); } if (acceptables != null) { for (Locale l : acceptables) { if (locales.contains(l)) { return new ResolvedLocale(path, l, parameters); } } } return null; }