Localizzazione in Spring Boot

Mattepuffo's logo
Localizzazione in Spring Boot

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!


Condividi

Commentami!