setMessageSource method
Sets the MessageSource used for resolving internationalized messages.
The message source provides internationalization (i18n) capabilities for applications that need to support multiple languages and locales.
Message Source Features:
- Parameterized Messages: Support for placeholders and arguments
- Locale Resolution: Automatic locale detection and fallback
- Hierarchical Sources: Parent-child message source relationships
- Reloadable Bundles: Hot-reload of message bundles in development
Example:
// Set up a resource bundle message source
final messageSource = ResourceBundleMessageSource();
messageSource.setBasename('messages');
messageSource.setDefaultEncoding('UTF-8');
messageSource.setCacheSeconds(300); // Cache for 5 minutes
context.setMessageSource(messageSource);
// Usage in application components
class InternationalizedService {
final MessageSource messageSource;
InternationalizedService(this.messageSource);
String getWelcomeMessage(String username, Locale locale) {
return messageSource.getMessage(
'welcome.message',
args: [username],
locale: locale,
defaultMessage: 'Welcome, $username!'
);
}
}
Implementation
@override
void setMessageSource(MessageSource messageSource) {
_messageSource = messageSource;
}