Aplikacja w javie, spring mvc, spring security.
W jaki sposób najlepiej przechowywać i w jaki sposób uzyskać dostęp do wybranego przez użytkownika języka strony?
Zastanawiam się własnie, czy lepiej przechowywać dane wybranego języka np. w cookies czy w sesjach? Czy może jest jakiś sposób z użyciem spring security? A może istnieje jeszcze inny, całkiem odrębny sposób? W jaki sposób potem uzyskać wybrany przez użytkownika język w kontrolerze czy servisie?
0
2
Cookies, adres url, baza danych (jeśli zalogowany).
Ja pisząc sobie coś ostatnio obsługiwałem język jako parametr w query ?lang=pl
w taki sposób
W konfiguracji rozszerzającej WebMvcConfigurerAdapter
dodajesz sobie coś takiego
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver localeResolver = new SessionLocaleResolver();
localeResolver.setDefaultLocale(Locale.ENGLISH);
return localeResolver;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor localeChangeInterceptor = new
LocaleChangeInterceptor();
localeChangeInterceptor.setParamName("lang");
return localeChangeInterceptor;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
potem z resource'ów wczytujesz sobie messages
np. defaultowy dla twojego confia: messages.properties
albo per język: messages_en.properties
, messages_de.properties
i te de
, en
pochodzą z twojego parametru w URLu
message_pl.properties
login.card.title=Logowanie
login.card.username=Login
login.card.password=Hasło
message.properties
login.card.title=Sing in
login.card.username=Login
login.card.password=Password
i do htmla wrzucałem:
<label for="password" th:text="#{login.card.password}"></label>