Po përpiqem të bëj i18n të punojë me aplikacionin tim të boot-it, i cili përdor thymeleaf si motor shabllon.
Unë ndoqa disa udhëzime, të cilat më treguan se si të përcaktoja burimin e mesazhit dhe zgjidhësin lokal, kështu që bëra këtë klasë konfigurimi:
@Configuration
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter {
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource msgSrc = new ReloadableResourceBundleMessageSource();
msgSrc.setBasename("i18n/messages");
msgSrc.setDefaultEncoding("UTF-8");
return msgSrc;
}
@Bean
public LocaleResolver localeResolver() {
CookieLocaleResolver resolver = new CookieLocaleResolver();
resolver.setDefaultLocale(new Locale("en"));
resolver.setCookieName("myI18N_cookie");
return resolver;
}
@Override
public void addInterceptors(InterceptorRegistry reg) {
LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor();
interceptor.setParamName("locale");
reg.addInterceptor(interceptor);
}
}
Më pas, në dosjen time të burimeve (src/main/resources) bëra dosjen i18n dhe brenda vendosa messages.properties dhe messages_sl.properties
brenda është përcaktuar first.greeting = Hello World!
Dhe ky është modeli im i gjetheve të trumzës:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" th:with="lang=${#locale.language}" th:lang="${lang}">
<head>
<meta charset="UTF-8"/>
</head>
<body>
<a href="/?locale=en">English</a> | <a href="/?locale=sl">Slovenian</a>
<h3 th:text="#{first.greeting}"></h3>
</body>
</html>
Kontrolluesi im nuk është asgjë e veçantë, ai thjesht e përcjell këtë pamje kur e aksesoj dhe në skedarin e vetive të mia kam përcaktuar:
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.cache=false
Megjithatë, kur ngarkoj faqen, në vend të Hello World!, unë marr ??first.greeting_en?? ose ??first.greeting_sl?? , në varësi të vendndodhjes së caktuar.
Kudo që shikova pashë të njëjtin konfigurim, kështu që jam vërtet i humbur si ajo që më mungon.
Dhe këtu është struktura e projektit tim:
???? src
└─── ???? main
├─── ???? java
│ └─── ???? com
│ └─── ???? mjamsek
│ └─── ???? Simple_i18n
│ ├─── ???? conf
│ └─── ???? controller
└─── ???? resources
├─── ???? i18n
│ ├─── messages.properties
│ └─── messages_sl.properties
├─── ???? static
└─── ???? templates