簡體   English   中英

Spring Boot、Thymeleaf 電子郵件模板國際化

[英]Spring Boot, Thymeleaf email template internationalization

我正在嘗試根據用戶的首選語言(首選語言的 ID 存儲在用戶表中)更改電子郵件模板的語言。 在准備消息時,我將 Locale 傳遞給 Context,如下所示:

Locale locale = new Locale(user.getLanguage().getLocaleCode());
final Context ctx = new Context(locale);
ctx.setVariable("username", user.getUsername());
ctx.setVariable("address", user.getAddress());

當我記錄getLocaleCode()的結果時,它返回預期值,例如“sr”。 在我的 /resources/lang 文件夾中,我創建了 messages_sr.properties 文件。 但是出於某種原因,當我發送電子郵件時,它會始終使用默認的 messages.properties 中的語言。 這是我的配置文件:

@Configuration
public class LocaleConfig {

    @Bean
    public LocaleResolver localeResolver() {
        SessionLocaleResolver slr = new SessionLocaleResolver();
        slr.setDefaultLocale(Locale.US);
        return slr;
    }
    
    @Bean(name = "messageSource")
    public MessageSource messageSource() {
        ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
        messageSource.setBasename("classpath:lang/messages");
        messageSource.setDefaultEncoding("UTF-8");
        return messageSource;
    }
}

在 resources/lang 文件夾中,我有:

  • messages_en_US.properties
  • messages_sr.properties

根據我找到的文檔和示例,我找不到解決方案。 有人可以幫忙嗎?

謝謝。

https://stackoverflow.com/a/11152674/3849555啟發,請改用classpath*:lang/messages

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM