Я пытаюсь научиться разрабатывать многоязычные веб-сайты с помощью Java Spring.После просмотра нескольких уроков я понял, как это работает.Но кажется, что я делаю некоторые ошибки.
Структура проекта:
src
└─── ? main
├─── ? java
│ └─── ? com
│ └─── ? example_project
│ └─── ? config
│ └─── WebMvcConfig
└─── ? resources
├─── ? i18n
│ ├─── messages_en.properties
│ └─── messages_fr.properties
├─── ? static
└─── ? templates
WebMvcConfig.java
@EnableWebMvc
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource msgSrc = new ReloadableResourceBundleMessageSource();
msgSrc.setBasename("classpath:i18n/messages");
msgSrc.setDefaultEncoding("UTF-8");
return msgSrc;
}
@Bean
public LocaleResolver localeResolver() {
CookieLocaleResolver resolver = new CookieLocaleResolver();
resolver.setDefaultLocale(new Locale("en"));
resolver.setCookieName("lang_cookie");
return resolver;
}
@Override
public void addInterceptors(InterceptorRegistry reg) {
LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
interceptor.setParamName("lang");
reg.addInterceptor(interceptor);
}
}
LandingController.java
@Controller
public class LandingController {
@Layout("layout/default")
@GetMapping("/")
public String index() { return "index"; }
}
index.html
<div th:fragment="content">
<ul>
<li><a th:href="@{/?lang=en}"><img src="/assets/images/en.png"></a></li>
<li><a th:href="@{/?lang=fr}"><img src="/assets/images/fr.png"></a></li>
</ul>
<p th:text="#{hello}"></p>
</div>
Он загружает только файл свойств "en", когда я нажимаю ссылку "fr" для его перезагрузки, но не загружаю файл свойств "fr".
Я не могу понять, в чем проблема.