私はこのような春ブーツでmuitle messeageリソースの問題を得た:スプリングブートでロケールを使用してmessagesourceを変更するにはどうすればよいですか?
これは私のapplication.ymlです:
...
spring:
messages:
basename: i18n/messages_fr,i18n/messages_en
これは私のテストクラスです:
public class MessageSourceTest {
@Autowired
MessageSource messageSource;
public String getMessage(String key, String keyLang) {
Locale locale = Locale.forLanguageTag(keyLang); // keyLang = "en", or "fr"
String message = messageSource.getMessage(key, null, locale);
return message;
}
}
問題は、ロケールが "en"または "fr"に設定されていても、常にi18n/messages_frからメッセージを受け取ることです。私はapplication.yml設定した場合
は:
basename: i18n/messages_en,i18n/messages_fr
は、私は/ messages_en
だから、私は動的ロケールでメッセージを取得することができますどのような方法があるi18nとメッセージが表示されました。
(ただ、バックエンドで、localeResolverとaddInterceptorsとクライアントthroughtこのような何か設定されていません:http://www.baeldung.com/spring-boot-internationalization)を
あなたのベース名は 'i18n/message'でなければなりません。正しいファイルは' Locale'に基づいてロードされます。 –
それは仕事ではありません。 org.springframework.context.NoSuchMessageException例外があります: 'test.title'というロケール 'en'のコードの下にメッセージが見つかりません。 – user2582163
あなたが 's' ...' i18n/messages'を見つけられなかったので、あなたが貼り付けたものを貼り付けた場合、私は「はい」とタイプしました。 –