Ce tutoriel montre comment implémenter l'internationalisation (i18n) dans une application Spring Boot pour supporter plusieurs langues.
L'internationalisation est le processus de conception d'une application pour qu'elle puisse être adaptée à différentes langues et régions sans changements d'ingénierie. Ce projet démontre comment servir des messages traduits en fonction de la locale du client.
L'implémentation repose sur les mécanismes i18n intégrés de Spring Boot :
-
Fichiers de Messages (
ResourceBundle): Des fichiers de propriétés sont utilisés pour stocker les traductions.messages.properties(langue par défaut)messages_en.properties(Anglais)messages_fr.properties(Français)messages_es.properties(Espagnol)
-
ResourceBundleMessageSource: Un bean est configuré pour indiquer à Spring où trouver les fichiers de messages (avec le nom de basemessages). -
LocaleResolver: LeAcceptHeaderLocaleResolverest utilisé. Il détermine la langue à utiliser en se basant sur l'en-têteAccept-Languageenvoyé par le client dans la requête HTTP. -
MessageSource: Le service utilise l'injection deMessageSourcepour récupérer le message approprié en fonction de laLocalecourante.
- Lancez l'application Spring Boot.
- Utilisez un client REST comme
curlou Postman pour interroger l'API en spécifiant différentes langues via l'en-têteAccept-Language.
Exemples avec curl:
# Demander la ressource en Français
curl -H "Accept-Language: fr" http://localhost:8080/api/users/1
# Demander la ressource en Anglais
curl -H "Accept-Language: en" http://localhost:8080/api/users/1
# Demander la ressource en Espagnol
curl -H "Accept-Language: es" http://localhost:8080/api/users/1Dans chaque cas, le message dans la réponse sera traduit dans la langue demandée, démontrant que le mécanisme d'internationalisation fonctionne correctement.