package com.github.aesteve.vertx.nubes.handlers.impl; import com.github.aesteve.vertx.nubes.i18n.LocaleResolverRegistry; import com.github.aesteve.vertx.nubes.reflections.injectors.typed.impl.LocaleParamInjector; import io.vertx.core.Handler; import io.vertx.core.http.HttpHeaders; import io.vertx.ext.web.RoutingContext; import java.util.Locale; public class LocaleHandler implements Handler<RoutingContext> { private final LocaleResolverRegistry localeResolverRegistry; public LocaleHandler(LocaleResolverRegistry localeResolverRegistry) { this.localeResolverRegistry = localeResolverRegistry; } @Override public void handle(RoutingContext context) { Locale loc = localeResolverRegistry.resolve(context); if (loc != null) { context.put(LocaleParamInjector.LOCALE_ATTR, loc.toLanguageTag()); context.response().headers().add(HttpHeaders.CONTENT_LANGUAGE, loc.toLanguageTag()); } context.next(); } }