Stirling-PDF/src/main/java/stirling/software/SPDF/config/Beans.java

61 lines
2.2 KiB
Java
Raw Normal View History

2023-02-05 13:54:48 +01:00
package stirling.software.SPDF.config;
import java.util.Locale;
2023-02-05 13:54:48 +01:00
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
@Configuration
public class Beans implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
2023-05-01 22:57:48 +02:00
registry.addInterceptor(new CleanUrlInterceptor());
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
lci.setParamName("lang");
return lci;
}
2023-02-05 13:54:48 +01:00
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver slr = new SessionLocaleResolver();
2023-04-03 00:59:22 +02:00
String appLocaleEnv = System.getProperty("APP_LOCALE");
if (appLocaleEnv == null)
2023-04-03 00:59:22 +02:00
appLocaleEnv = System.getenv("APP_LOCALE");
Locale defaultLocale = Locale.UK; // Fallback to UK locale if environment variable is not set
if (appLocaleEnv != null && !appLocaleEnv.isEmpty()) {
Locale tempLocale = Locale.forLanguageTag(appLocaleEnv);
String tempLanguageTag = tempLocale.toLanguageTag();
2023-06-12 18:31:42 +02:00
if (appLocaleEnv.equalsIgnoreCase(tempLanguageTag)) {
2023-04-03 00:59:22 +02:00
defaultLocale = tempLocale;
} else {
2023-06-12 18:31:42 +02:00
tempLocale = Locale.forLanguageTag(appLocaleEnv.replace("_","-"));
tempLanguageTag = tempLocale.toLanguageTag();
if (appLocaleEnv.equalsIgnoreCase(tempLanguageTag)) {
defaultLocale = tempLocale;
} else {
System.err.println("Invalid APP_LOCALE environment variable value. Falling back to default Locale.UK.");
}
2023-04-03 00:59:22 +02:00
}
}
slr.setDefaultLocale(defaultLocale);
2023-02-05 13:54:48 +01:00
return slr;
}
2023-02-05 13:54:48 +01:00
}