diff --git a/www-client/src/main/java/fr/agrometinfo/www/client/App.java b/www-client/src/main/java/fr/agrometinfo/www/client/App.java index 52b5c38e9e3db361c71151c3f14888464da2292e..fabf9d0a8fb5ac9fa0d1f2dce25519abd6801c04 100644 --- a/www-client/src/main/java/fr/agrometinfo/www/client/App.java +++ b/www-client/src/main/java/fr/agrometinfo/www/client/App.java @@ -1,9 +1,13 @@ package fr.agrometinfo.www.client; +import org.dominokit.domino.api.shared.extension.ContextAggregator; import org.dominokit.rest.DominoRestConfig; +import org.dominokit.rest.shared.request.RequestInterceptor; +import org.dominokit.rest.shared.request.ServerRequest; import org.gwtproject.event.shared.Event; import org.gwtproject.event.shared.EventBus; import org.gwtproject.event.shared.SimpleEventBus; +import org.gwtproject.i18n.shared.cldr.LocaleInfo; import org.pepstock.charba.client.Charba; import com.google.gwt.core.client.EntryPoint; @@ -20,6 +24,22 @@ import fr.agrometinfo.www.client.presenter.LoginPresenter; * @author Olivier Maury */ public class App implements EntryPoint { + /** + * Global interceptors allows us to intercept the requests of domino-rest and + * modify the requests before they are sent to the server. + * + * Add the locale from the interface to make sure server response match the + * interface. + */ + class LocaleInterceptor implements RequestInterceptor { + @Override + public void interceptRequest(final ServerRequest request, + final ContextAggregator.ContextWait<ServerRequest> contextWait) { + request.setHeader("Accept-Language", LocaleInfo.getCurrentLocale().getLocaleName()); + contextWait.complete(request); + } + } + /** * Dispatches {@link Event}s to interested parties. */ @@ -45,6 +65,7 @@ public class App implements EntryPoint { GWT.log("onModuleLoad()"); DominoRestConfig.initDefaults(); + DominoRestConfig.getInstance().addRequestInterceptor(new LocaleInterceptor()); DominoRestConfig.getInstance().setDefaultResourceRootPath(Window.Location.getPath() + "/rs"); // enabling Charba