Sto provando a creare un'applicazione multilingua utilizzando Spring boot e Thymeleaf.I18n in Spring boot + Thymeleaf
Ho fatto pochi file di proprietà per salvare i diversi messaggi ma sono solo in grado di visualizzarlo nella mia lingua del browser (ho provato le estensioni per cambiare le impostazioni del browser ma sembrano non funzionare), comunque volevo mettere un pulsante nel mio sito web per fare questo dovere (cambiando la lingua), ma non so come o dove trovare come gestirlo.
Gonna mostrare il mio config:
Struttura del progetto
classe di configurazione I18n
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;
}
}
pagina HTML Thymleaf
<!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>
Messaggi (file Beni)
messages_en_US.properties
hello.world = Hello people
messages_es.properties
hello.world = Hola gente
In realtà il messaggio viene visualizzato in spagnolo, non sono sicuro di come lo cambierei, quindi se poteste aiutarmi vi ringrazio molto.
C'è un'altra domanda che mi viene in mente ... Come posso ottenere i messaggi dal Database invece dal file delle proprietà?
Domanda stupida: come stai impostando il 'Locale'? Hai configurato un [LocaleResolver'] (http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/LocaleResolver.html)? Come stai passando il locale che vuoi? –
Non lo sono, immagino che Spring stia prendendo la configurazione del browser. Devo impostare le impostazioni locali in base alla pressione di un pulsante? Non sono sicuro se funzionerebbe in questo modo. –
Inizia da [in alto] (http://www.concretepage.com/spring-4/spring-4-mvc-internationalization-i18n-and-localization-l10n-annotation-example) e continua.Ci sono 3 cose che ti servono 1) un 'MessageSource', 2) un' LocaleResolver' per determinare per una particolare richiesta, quale locale usare e (facoltativo) 3) un 'LocaleChangeInterceptor' in modo che tu possa, da una richiesta, imposta la locale in 'LocaleResolver'. –