Visualizzazione dei risultati da 1 a 3 su 3

Visualizzazione discussione

  1. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da fermat Visualizza il messaggio
    come faccio in base alla lingua passata dirgli quale file di testo prendere?
    ovviamente si potrebbe fare con un banale switch, ma non penso sia la soluzione migliore.
    solo che non ho capito come agganciare la lingua passata ad un resolver.
    Innanzitutto in Spring Boot non è per forza obbligatorio creare esplicitamente il bean del MessageSource. C'è una auto-configuration che si può sfruttare, ed è documentata qui: https://docs.spring.io/spring-boot/r...alization.html

    Ovvero, se si mettono dei file alla "radice" in classpath (src/main/resources/) con nome messages.properties e le varianti delle lingue (es. messages_en.properties, messages_it.properties ecc...), Spring Boot è in grado di autoconfigurare il MessageSource da solo.

    Se fai qualunque altra cosa di diverso, ovviamente è tutto a tuo carico, come appunto hai fatto.

    Riguardo il passaggio della lingua nel controller, la possibilità più semplice è quella di mappare direttamente il java.util.Locale nel path param, che è proprio ciò che poi serve ai getMessage del MessageSource.
    Ovvero:
    codice:
      @GetMapping(path = "/{lingua}", produces = MediaType.APPLICATION_JSON_VALUE)
      @ResponseStatus(HttpStatus.OK)
      public String index(@PathVariable("lingua") Locale lingua) {

    Spring Boot è in grado di mappare es. /en_US nel java.util.Locale corrispondente. Nota che è bene mettere sempre il value alla annotation, @PathVariable("lingua") in quanto la esposizione dei nomi dei parametri è possibile ma solo sotto certe condizioni.

    Se invece volessi mappare tu dei nomi "parlanti", es. /inglese, ovviamente la transcodifica è tutta a tuo carico.
    Ultima modifica di andbin; 08-04-2025 a 18:25
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.