Весенняя загрузка Интернационализация с Restful Web Service - PullRequest
0 голосов
/ 23 апреля 2020

Настройки и ответы IntelIj

Создание загрузочного приложения Spring

Создание источника сообщений Bean

@Bean
public MessageSource messageSource() {
    ReloadableResourceBundleMessageSource messageSource
            = new ReloadableResourceBundleMessageSource();
    messageSource.setBasename("classpath:messages");
    messageSource.setDefaultEncoding("UTF-8");
    messageSource.setCacheSeconds(5);
    return messageSource;
 }

Вкл каталог ресурсов создать два файла

messages.properties
   sayhello= Namaste

messages_np.properties
   sayhello= नमस्ते 

Создать CustomMessageSource

@Component
public class CustomMessageSource {

    private final MessageSource messageSource;

    @Autowired
    public CustomMessageSource(MessageSource messageSource) {
        this.messageSource = messageSource;
    }

    public String get(String code) {
        return messageSource.getMessage(code, null, getCurrentLocale());
    }

    public String get(String code, Object... objects) {
        return messageSource.getMessage(code, objects, getCurrentLocale());
    }

    private Locale getCurrentLocale() {
        // takes the current active locale
        Locale locale = LocaleContextHolder.getLocale();
        if (locale.getDisplayLanguage().equalsIgnoreCase("np")) {
            locale = new Locale("np", "Nepal");
        }
        return locale;
    }
}

создать контроллер и добавить запрос

@Autowired
CustomMessageSource messageSource;

@RequestMapping("/hi")
public String hi() {
    return messageSource.get("hello");
}

Изменить на UTF-8 и прозрачный нативное преобразование в ascii

[Если вы используете Intellij IDEA, GO для настройки и поиска кодировки файла]

[Ответ с Accept-Language en & np]

Ответ почтальона

...