gpt4 book ai didi

java - Java 中的静态字符串本地化问题

转载 作者:行者123 更新时间:2023-12-02 11:59:00 27 4
gpt4 key购买 nike

目前,我有一个名为 Messages 的文件,它是一个包含多个静态字符串的类:

public class Messages {
public static final String MESSAGE_1 = "Message one";
public static final String MESSAGE_2 = "Message two";
...
}

重构此实现以支持多种语言的最佳方法是什么?字符串的名称应保持不变,但值应根据我传递的区域设置字符串进行更改。不确定如何实现。

最佳答案

  1. 在资源文件夹下创建单独的文件,名称为 messages_<locale>.properties例如 messages_de_DE.properties对于德国等。
  2. 在这些文件中放置键值对,就像您在任何属性文件中放置键值对一样,其中的文本位于文件名称的本地
  3. 并创建一个像这样的 bean。

    @Configuration
    class InternationalizationConfig {

    @Bean
    public LocaleResolver localeResolver() {
    SessionLocaleResolver slr = new SessionLocaleResolver();
    slr.setDefaultLocale(Locale.GERMAN);
    return slr;
    }
    @Bean
    public ReloadableResourceBundleMessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
    messageSource.setBasename("classpath:messages");
    messageSource.setCacheSeconds(3600);
    return messageSource;
    }

    }

无论你想在哪里放置特定于区域设置的字符串,只需 Autowiring MessageSource

@Autowired
MessageSource messageSource;
messageSource.getMessage(....)

关于java - Java 中的静态字符串本地化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47396431/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com