字符串本地化:getMessage



代码

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.

堆栈跟踪

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)

问题

messages.getString("greeting")运行良好。但我想使用getMessage或其他可以在方法中使用locale的东西,而不是预先设置它。

我怎样才能做到这一点?

您可以使用MessageSource并调用getMessage(String s,Object[]obj,Locale Locale(

@Autowired
private MessageSource messageSource;
String message = messageSource.getMessage("greeting", obj, locale);

最新更新