2017-09-01 2 views
0

j'ai eu un problème de ressources muitle de messeage au démarrage du printemps comme celui-ci:Comment changer la source de messages avec les paramètres régionaux au démarrage de printemps?

ceci est mon application.yml:

... 
spring: 
    messages: 
     basename: i18n/messages_fr,i18n/messages_en 

c'est ma classe de test:

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; 
} 

}

Le problème est que je reçois toujours un message de i18n/messages_fr, peu importe ce que je définis les paramètres régionaux est "en" ou "fr".

Si je mets application.yml à:

basename: i18n/messages_en,i18n/messages_fr 

puis je me suis message de i18n/messages_en

Alors, est-il possible que je peux obtenir des messages avec des paramètres régionaux dynamiquement.

(Juste back-end, pas encore défini throught client avec localeResolver et addInterceptors, quelque chose comme ceci: http://www.baeldung.com/spring-boot-internationalization)

+0

Votre nom de base doit être 'i18n/message' le fichier correct est chargé en fonction de' Locale'. –

+0

Ce n'est pas le travail. J'ai une exception org.springframework.context.NoSuchMessageException: Aucun message trouvé sous le code 'test.title' pour les paramètres régionaux 'en'. – user2582163

+0

Si vous copiez collé ce que j'ai tapé oui car il manque un 's' ...' i18n/messages'. –

Répondre

0

Vous devez définir baseName comme i18n/messages pas i18n/messages_{lang}. Ensuite, en vérifiant votre localeResolver, le printemps décide quel fichier doit être lu.