Spring boot ve Thymeleaf kullanarak çok dilli bir uygulama yapmaya çalışıyorum.Spring boot + Thymeleaf'da I18n
Farklı iletileri kaydetmek için birkaç özellik dosyası yaptım ancak yalnızca tarayıcı dilimde görüntüleyebiliyorum (tarayıcı yerel ayarını değiştirmek için uzantıları denedim ancak çalışmıyor gibi görünüyor), yine de bir Bu görevi yapmak için web sitemdeki butonu (dili değiştirmek), fakat nasıl yönetileceğini ve nasıl yönetileceğini bilmiyorum. Projenin
I18n yapılandırma sınıfı
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@EnableWebMvc
public class I18nConfiguration extends WebMvcConfigurerAdapter {
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("i18n/messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
}
Thymleaf HTML sayfası içinde
Yapısı:
boy Sana benim yapılandırma göstermek
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
th:with="lang=${#locale.language}" th:lang="${lang}">
<head>
<title>Spring Boot and Thymeleaf example</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h3>Spring Boot and Thymeleaf</h3>
<p>Hello World!</p>
<p th:text="${nombre}"></p>
<h1 th:text="#{hello.world}">FooBar</h1>
</body>
</html>
Mesajlar (Özellikler dosyaları)
messages_en_US.properties
hello.world = Hello people
messages_es.properties
hello.world = Hola gente
Aslında, İspanyolca'da ileti görüntüleniyor, nasıl değiştirdiğimi tam olarak bilmiyordum, eğer bana yardım ederseniz çok teşekkür ederim.
Aklıma gelen başka bir soru var ... İletiler yerine veritabanı dosyasındaki iletileri nasıl alabilirim?
Aptal soru: 'Yerel Ayarı' nasıl ayarlıyorsunuz? Bir ['LocaleResolver'] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/LocaleResolver.html) yapılandırdınız mı? İstediğiniz bölgeyi nasıl iletiyorsunuz? –
Öyle değil, sanırım bahar bunu tarayıcı yapılandırmasından alıyor. Düğmeye basarak yerel ayarı ayarlayayım mı? Bu şekilde çalışıp çalışmadığından emin değilim. –
[üst] başından başlayın (http://www.concretepage.com/spring-4/spring-4-mvc-internationalization-i18n-and-localization-l10n-annotation-example) ve devam edin.İhtiyacınız olan 3 şey var: 1) bir 'MessageSource', 2) 'LocaleResolver', belirli bir istek için hangi yerel ayarı kullanacağını ve (isteğe bağlı) 3) bir' LocaleChangeInterceptor' için istekte bulunabilmenizi, Yerel ayarı 'LocaleResolver' içinde ayarlayın. –