Localizzazione in Spring Boot
Di base gestire le linge in Spring Boot è abbastanza semplice.
Potete vedere la discussione sul forum.html.it per quanto riguarda le dritte che mi hanno dato.
In questo articolo vi faccio vedere i passaggi.
Cominciamo con il creare i file delle lingue, con il default che è l'italiano.
Quindi dentro resources create messages.properties:
saluti=CIAO!
E messages_en.properties:
saluti=HELLO!
Poi nell'application.properties aggiungete queste righe:
spring.messages.basename=messages, config.i18n.messages
spring.messages.common-messages=classpath:messages.properties
spring.messages.fallback-to-system-locale=false
Nel mio caso uso Spring Boot per creare una web api, quindi devo ottenere la lingua da url e rimando i dati corretti in formato JSON.
Nel nostro controller faremo una cosa del gerenere:
package com.example.test_springboot_java.controllers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.Locale;
@RestController
@RequestMapping(path = "/test")
public class TestController {
@Autowired
MessageSource messageSource;
@GetMapping(path = "/{lingua}", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.OK)
public String index(@PathVariable Locale lingua) {
System.out.println(lingua);
return messageSource.getMessage("saluti", null, lingua);
}
}
Spring Boot fa il mappging automatico; ovviamente potete anche personalizzare tutto.
Enjoy!
java spring boot locale messagesource
Commentami!