Wybór języka użytkownika

0

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?

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>

1 użytkowników online, w tym zalogowanych: 0, gości: 1