package com.github.aesteve.vertx.nubes.i18n.impl;
import com.github.aesteve.vertx.nubes.i18n.LocaleResolver;
import io.vertx.ext.web.RoutingContext;
import java.util.List;
import java.util.Locale;
import java.util.Locale.LanguageRange;
import static io.vertx.core.http.HttpHeaders.ACCEPT_LANGUAGE;
public class AcceptLanguageLocaleResolver implements LocaleResolver {
@Override
public Locale resolve(RoutingContext context, List<Locale> availableLocales) {
String accept = context.request().getHeader(ACCEPT_LANGUAGE.toString());
if (accept == null) {
return null;
}
List<LanguageRange> ranges = LanguageRange.parse(accept);
if (ranges.isEmpty()) {
return null;
}
return Locale.lookup(ranges, availableLocales);
}
}