Spring Boot supports Internationalization (i18n) by allowing applications to display messages in multiple languages based on the user's locale or language preference. It uses locale-specific resource files and automatically resolves the appropriate language at runtime.
Key Points: • Messages are stored in separate language-specific property files. • Spring Boot selects the appropriate language using Locale information. • LocaleResolver and MessageSource are the core components used for i18n support.
Example: Consider an e-commerce application used by customers in different countries.
English User: Welcome to our application
French User: Bienvenue dans notre application
German User: Willkommen in unserer Anwendung
The application displays messages according to the user's selected language without changing the application code.
Code Example:
messages.properties
welcome.message=Welcome to our application
messages_fr.properties
welcome.message=Bienvenue dans notre application
messages_de.properties
welcome.message=Willkommen in unserer AnwendungAccessing Messages:
@Autowired
private MessageSource messageSource;String message = messageSource.getMessage(
"welcome.message",
null,
Locale.FRANCE);Core Components:
1. MessageSource
• Loads messages from property files. • Resolves messages based on locale.
2. LocaleResolver
• Determines the user's locale. • Common implementations: • AcceptHeaderLocaleResolver • SessionLocaleResolver • CookieLocaleResolver
3. LocaleChangeInterceptor
• Allows users to switch language dynamically using request parameters.
Example:
http://localhost:8080/home?lang=fr
This changes the application language to French.
Configuration Example:
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver resolver =
new SessionLocaleResolver();
resolver.setDefaultLocale(
Locale.ENGLISH);
return resolver;
}Supported Message Files:
• messages.properties • messages_en.properties • messages_fr.properties • messages_de.properties • messages_hi.properties
Spring Boot automatically loads the correct file based on the user's locale.
Real-World Example:
An airline booking application supports:
• English • French • German • Hindi • Japanese
Users see:
• Error messages • Labels • Validation messages • Notifications
in their preferred language.
Benefits:
• Better user experience. • Supports global audiences. • Easy maintenance of translations. • No code changes required for adding new languages.
Interview Tip: A concise interview answer is: Spring Boot supports internationalization using locale-specific message property files, MessageSource for loading messages, and LocaleResolver for determining the user's language preference. Based on the user's locale, Spring Boot automatically displays messages in the appropriate language, making applications suitable for global users.