Reputation: 1069
Code
Locale locale = new Locale(Language.LANG, "");
String baseName = "i18n/messages";
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
ResourceBundle messages= ResourceBundle.getBundle(baseName, locale);
String value = messages.getString("greeting"); // Working
String value1 = messageSource.getMessage("greeting", null, locale); // Exception.
Stacktrace
Exception in thread "main" org.springframework.context.NoSuchMessageException: No message found under code 'greeting' for locale 'ru'.
at org.springframework.context.support.AbstractMessageSource.getMessage(AbstractMessageSource.java:161)
at ru.pcask.AdsmanagerApplication.main(AdsmanagerApplication.java:102)
Problem
messages.getString("greeting")
is working perfectly. But I'd like to use getMessage or something where I can use locale in the method rather than setting it beforehand.
How can I achieve that?
Upvotes: 0
Views: 962
Reputation: 51
you can use MessageSource and call getMessage(String s, Object[] obj, Locale locale)
@Autowired
private MessageSource messageSource;
String message = messageSource.getMessage("greeting", obj, locale);
Upvotes: 0