package restx.i18n; import restx.AppSettings; import restx.RestxContext; import restx.RestxRequest; import restx.factory.Module; import restx.factory.Provides; import javax.inject.Named; import java.nio.charset.StandardCharsets; import java.util.Locale; /** * Date: 2/2/14 * Time: 08:31 */ @Module(priority = 100) public class I18nModule { @Provides @Named("Messages") public Messages messages(AppSettings appSettings) { if (RestxContext.Modes.PROD.equals(appSettings.mode())) { return new DefaultMessages("labels", StandardCharsets.UTF_8); } else { return new DefaultMutableMessages("labels", StandardCharsets.UTF_8); } } @Provides @Named("CurrentLocaleResolver") public CurrentLocaleResolver currentLocaleResolver(){ return new CurrentLocaleResolver() { @Override public Locale guessLocale(RestxRequest request) { return request.getLocale(); } }; } @Provides @Named("ROOT") public SupportedLocale rootSupportedLocale() { return new SupportedLocale(Locale.ROOT); } @Provides @Named("restx.i18n.labelsJsTemplate") public String labelsJsTemplate() { return "// RESTX Labels - customize this with restx.i18n.labelsJsTemplate named String\nwindow.labels = {LABELS};"; } }